Mobile Auth / FIDO UAF
In-band Mobile Authentication Realm
Plugin: nevisadmin-plugin-nevisfido
Sets up In-Band Authentication to protect REST services.
If you want to protect a web application and use mobile authentication from a web browser, use Out-of-band Mobile Authentication instead.
In a nutshell, the pattern configures Nevis for the following use case:
- The user opens the mobile application and accesses a protected resource, for which they have no authorization yet.
- The mobile application prompts the user to authenticate.
- The mobile app sends a request to
/auth/fidouafto authenticate. - The user is now authenticated, the mobile application is able to access the protected REST service.
Before executing mobile authentication, the user has to register their mobile device.
The required APIs can be set up using In-band Mobile Registration Service pattern.
Application Access Tokens
Tokens assigned here may be created after successful authentication.
To produce and forward a token to an application backend,
reference the same token from the application's Additional Settings property.
nevisFIDO
Assign a nevisFIDO instance. This instance will be responsible for providing the in-band authentication services.
Key Store
Assign a pattern which provides the key store for nevisAuth to connect to nevisFIDO with client TLS.
Trust Store
Assign a pattern which provides the trust store for nevisAuth to connect to nevisFIDO.
nevisAuth
The nevisAuth Instance where the authentication flow will be configured.
Key Store
Define the key store to use for 2-way HTTPs connections from nevisProxy to nevisAuth.
Trust Store
Defines the trust store that nevisProxy uses to validate the nevisAuth HTTPs endpoint.
Hostname Validation
Enable to verify that the hostname on the certificate presented by nevisAuth matches the configured hostname in the nevisAuth Instance or nevisAuth Connector pattern.
Internal SecToken Trust Store
Defines the trust store nevisProxy uses for validating the signature of the NEVIS SecToken issued by nevisAuth.
OriginalURL SecretKey
If set, the parameter OriginalUrl.Enable of the IdentityCreationFilter will be set to true and the parameter OriginalUrl.SecretKey to the configured value.
This parameter solves many issues with multiple tabs, multiple frames, and incorrect redirects after login.
Custom Parameters (IdentityCreationFilter)
Add custom init-param elements to each IdentityCreationFilter generated by this pattern.
Most realms generate only 1 IdentityCreationFilter named Authentication_<name>,
which is used to protect the application.
Multi-line values, as required for conditional configuration,
can be entered by replacing the line-breaks with \n.
Examples:
| Key | Value |
|---|---|
| BodyReadSize | 64000 |
| InterceptionRedirect | Condition:ENV:HTTP_USER_AGENT:mozilla|Mozilla\ninitial\nnever |
| ClientCert | want |
Custom Parameters (SecurityRoleFilter)
Add custom init-param elements to the SecurityRoleFilter generated by this pattern.
Multi-line values, as required for conditional configuration,
can be entered by replacing the line-breaks with \n.
Custom Parameters (Esauth4ConnectorServlet)
Add custom init-param elements to the Esauth4ConnectorServlet generated by this pattern.
That servlet is called Connector_<name>.
Multi-line values, as required for conditional configuration,
can be entered by replacing the line-breaks with \n.
Examples:
| Key | Value |
|---|---|
| EnablePollTerminatedCalls | true |
Login Renderer
Choose a login renderer.
In Kubernetes deployments, assignment of a renderer is mandatory.
Assign either a nevisLogrend Instance or a Proxy Login Renderer pattern.
The renderer has to be compatible with the Default Template (see Login Template tab).
In classic VM deployments, a default login renderer will be created when no pattern is assigned.
In case of nevisLogrend, the instance will be called default and deployed on the same host as nevisProxy.
Key Store
Configure a key store to use for 2-way TLS connections to nevisLogrend.
If no pattern is assigned no key store will be created.
The connection will be either 1-way TLS or plain HTTP, depending on the URL of nevisLogrend.
This configuration does not apply when a Proxy Login Renderer is used.
Trust Store
Configure a trust store to use for TLS connections to nevisLogrend.
If no pattern is assigned an automatic trust store will be created.
This configuration does not apply when plain HTTP or the Proxy Login Renderer is used.
Hostname Validation
When enabled the server cert has to match the hostname of nevisLogrend.
This configuration does not apply when plain HTTP or the Proxy Login Renderer is used.
nevisLogrend / Application default.properties
Add or overwrite properties in the default.properties of the nevisLogrend Application.
This is an advanced setting. Use only when there is no other alternative and consider creating a support ticket with your use case.
Check Login Application Configuration for supported properties.
We recommend not overwriting any language related properties, as the languages have to be in sync with nevisAuth.
You can configure the supported languages on the nevisAuth Instance.
This setting requires that nevisLogrend is used for GUI rendering.
Check the help of Login Renderer for details.
Initial Session Timeout
Define the idle timeout of the initial session. The user must complete the authentication within this time.
Authenticated Session Timeout
Define the idle timeout of an authenticated session.
Max Session Lifetime
Define the maximum lifetime of an authenticated session. The session will be removed after that time even if active.
Update Session Timestamp Interval
Sets the minimum time interval between two updates of the session timestamp.
If the parameter is set to "0", the system will update the session timestamp each time a request accesses a session.
The Initial Session Timeout is used as Update Session Timestamp Interval if it is shorter than the duration configured here.
In-band Mobile Registration Service
Plugin: nevisadmin-plugin-nevisfido
Provides services for In-Band Registration.
For in-band registration no browser is required. All actions are triggered by the mobile app.
The user typically has to click a registration button in the app to get started. On successful registration, credentials are created on the mobile device and in nevisIDM.
A Generic credential is generated as well which makes the mobile device a dispatch target, to which push notifications can be sent. For more information, see Dispatch Target Management.
For the access app this use case is provided for testing purposes only. However, in-band registration may be used in production when using the mobile SDK.
In-band registration requires non-mobile authentication.
This pattern can generate a simple username and password flow into the assigned realm. There are several limitations with this flow:
- the flow cannot be adapted.
- the password must be active and not expired, as there is no support for enforced password change.
For production use cases we recommend configuring your own flow
and expose that on a separate path using Standalone Authentication Flow.
Virtual Host(s)
Assign a Virtual Host which shall serve as entry point.
Authentication Realm
Assign an In-band Mobile Authentication Realm or Authentication Realm here.
Assignment is required.
The assigned realm will be used to protect the path /nevisfido/uaf/1.1/request/registration/.
If Authentication Service is enabled, a simple authentication flow will be added to this realm.
Application Access Token
Propagate a token to the backend application. The token informs the application about the authenticated user.
For instance, assign Nevis SecToken if the application uses Ninja or
SAML Token for applications which are able to consume SAML Responses.
nevisFIDO
Assign a nevisFIDO instance.
This instance will be responsible for providing the device registration services.
Authentication Service
If enabled, an endpoint will be provided at the Authentication Service Path.
The mobile app may use this endpoint to authenticate and get a cookie.
With this cookie, the registration operation can be initiated.
This is a convenience feature.
The configuration that is generated is similar to the configuration described here.
To match this example, the Authentication Service Path should be /auth/pwd but we suggest using a more specific path.
There are several alternatives to how you can provide authentication:
- use
Standalone Authentication Flowto provide an authentication endpoint for this realm using authentication steps. - authenticate the registration operation using the
Initial Authentication Flowof the assignedAuthentication Realm.
Authentication Service Path
Configure the path of the authentication service.
Client Name
Enter the name of the nevisIDM Client.
Mobile Deregistration Service
Plugin: nevisadmin-plugin-nevisfido
Set up processes required for mobile device deregistration.
The services are called by the mobile app, e.g., when you delete your account in the mobile app.
This use case uses FIDO UAF Credential Deregistration to deregister FIDO credentials.
Virtual Host(s)
A virtual host assigned will be used to expose the protected services.
Authentication Realm
The nevisFIDO APIs required for mobile device deregistration must be protected by In-Band Authentication. The deregistration request service removes the FIDO UAF credentials without challenging the user again, so only the authenticated owner of those credentials may reach it.
Assign an In-band Mobile Authentication Realm here. No other realm type is supported.