Session-less protected REST APIs
This article describes session-less services in the Loginapp REST API's protected REST API.
It applies to the following end-points:
- All end-points under: /protected/my/.
- The end-point /protected/secret-questions.
For most of the session-less protected REST APIs, there is a corresponding flow-based API in the Protected self-service REST APIs. 
Whenever possible, prefer the flow-based variant over the services listed here.
Authentication and authorization
Requests to the session-less protected REST APIs need to be authenticated and authorized. The corresponding configuration is:
Loginapp >> Session-less REST Endpoints >> Request Authentication and Request Authorization.
- Request Authentication: Defines how users or REST clients are authenticated (e.g. Basic Auth, client certificates, or OAuth tokens).
- Access Controller: Defines what services are accessible by the authenticated user or REST client.
- The following plugins are available: - “Resource Access Controller”: role-based access policy based on REST resource paths (e.g. rules like “ IF $user has role 'admin' THEN allow POST on path /protected/xxx”)
- “Enabling All Access Controller”: use this plugin to disable authorization and allow all services to authenticated users.
 
You may use the Airlock Gateway's one-shot authentication flow to secure the protected API upfront.
This has the following security advantages:
- Authentication enforcement and coarse-grained access control are done on the Airlock Gateway
- The API may be strictly enforced using the Airlock Gateways “API enforcement” feature
To do so, proceed as follows:
- Setup the one-shot authentication flow according to HTTP request authentication (One-Shot flow)
- Use an identity propagator to transport the verified user identity to the IAM REST API
- Use a request authentication plugin to authenticate the propagated identity.
- On the Airlock Gateway, create a separate mapping for the protected APS (as described in Airlock Gateway for Airlock IAM configuration)
- Enable API Enforcement
- Restrict access to specific roles.
 
Service List
| Service | Description | Config path relative to Loginapp >> Session-less REST Endpoints | 
|---|---|---|
| Password Change | Allows a user to change the password. | User Self-Service Settings >> Password Settings | 
| User Information | Returns information about the authenticated user. | User Self-Service Settings >> User Information Self-Service) | 
| mTAN Self-Service | List stored MTAN numbers (mobile phone numbers), change MTAN meta-data (e.g. label), and change MTAN number (involves sending an OTP to the new number, and verifying it). | User Self-Service Settings >> mTAN Self-Service (Legacy) | 
| Cronto Self-Service | Self-service to order Cronto activation letters. | User Self-Service Settings >> Cronto Self-Service (Legacy) | 
| Secret Questions | List possible questions and store answers to secret questions. | User Token Settings >> Secret Question Settings | 
| Device Token Registration | User Token Settings >> Device Registration Settings |