Mobile Authentication Use Cases
This section shows how to configure each Nevis Mobile Authentication use case with nevisAdmin 4 patterns.
Before you configure any use case, set up the nevisFIDO component itself. See nevisFIDO Setup.
The central pattern
Every use case on this page connects to the same nevisFIDO backend. In most projects that backend is a nevisFIDO UAF Instance pattern, which both deploys nevisFIDO and holds the settings that apply across use cases, such as the link type, the Firebase configuration and the policies.
If nevisFIDO is deployed by a different project, assign a nevisFIDO UAF Connector pattern instead. The nevisFIDO field of every use case pattern accepts either, so the pages below apply unchanged. The settings described on this page then live in the project that owns the instance.
If you create more than one nevisFIDO UAF Instance, connect each one to a different Virtual Host.
The URLs that nevisFIDO allocates on a virtual host are fixed, that is, they always start with /nevisfido/, and they map to exactly one nevisFIDO backend. A second instance on the same virtual host would claim the same URLs. nevisAdmin 4 rejects such a configuration during validation.
Every pattern that takes part in the same flow must be assigned to the same Virtual Host. Each pattern exposes its own paths, and it exposes them only where it is assigned.
nevisAdmin 4 validates each pattern on its own, so a configuration split across two virtual hosts generates and deploys without a single error. The failure appears at runtime, as a 404 on whichever path was left on the other host, which is hard to trace back to the cause. If a flow works up to a certain call and then stops, compare the Virtual Host field of every pattern involved before looking anywhere else.
Settings that apply to more than one use case
A few settings do not belong to any single use case. They are configured once on the nevisFIDO backend (on the nevisFIDO UAF Instance pattern in the project that owns the instance) and then gate several of the flows below, which is why a use case can be configured completely and still not work.
| Setting | What depends on it | If it is not set |
|---|---|---|
| Link Type, together with Deep Link or Custom URI Link | Onboarding, every out-of-band flow that shows a QR code or a link, and all mobile-only operations | The rendered code or link cannot reach the mobile application |
| Firebase Configuration | Push notification delivery, used by transaction confirmation and out-of-band authentication | No push notification is sent, so the operation is never delivered unless another channel is configured |
| Policies | Every registration and authentication operation | default.json is mandatory, and it is applied whenever an operation does not name a policy |
Set these before configuring the individual use cases. See Policies and Mobile-Only Operations with Deep Links and Custom URIs.
The name of a field in the user interface is not always the key used in the project files. Link Type is stored under the key link, not linkType.
This only matters if you edit a nevisAdmin 4 project directly in its Git repository rather than in the user interface. An unrecognized key is not applied, so the setting silently keeps its previous value. If you filled in Deep Link but the link type never took effect, nevisAdmin 4 reports Configuration is unused. Set 'Link Type' to 'Deep Link'. during generation.
Credential lifecycle
These use cases create, use and remove the FIDO UAF credential on the user device. They follow the order in which a credential is normally used.
- Onboarding - let a user set up the mobile app and register a credential as part of a self-registration flow, before the user has any other authentication means.
- Registration - register a mobile device for a user who is already authenticated.
- Authentication - authenticate a user with a registered device, either as the only factor or as a second factor.
- Transaction Confirmation - have the user confirm the details of a specific operation, such as a payment, on the mobile device.
- Deregistration - remove a registered device, for example when the user replaces the phone.
Managing registered devices
- Device Management - let the mobile application query and update its own device information, such as dispatch targets and registered authenticators, and pick up pending out-of-band operations.
The paths that back this are exposed by the nevisFIDO UAF Device Service pattern, but several of the use cases above already expose them. Check whether you need the pattern before adding it.
Controlling how authentication happens
These use cases do not add a separate flow. They constrain the flows above.
- Policies - decide which authenticators are acceptable, for example whether a PIN is sufficient or biometrics are required.
- App Attestation - verify that the app talking to nevisFIDO is your genuine, unmodified app.
Reaching the mobile app
- Mobile-Only Operations with Deep Links and Custom URIs - run any of the operations above on a single device, where the browser and the mobile app are on the same phone.
This is a matter of how the out-of-band message reaches the app, not a separate use case. The setting that controls it, the link type, is part of the nevisFIDO UAF Instance pattern.
Related documentation
- Nevis Mobile Authentication Concept and Integration Guide - the technical background behind these use cases.
- Nevis Access App - the ready-to-use authenticator app.
- Nevis Mobile Authentication SDK - build mobile authentication into your own app.