- Step 1: Retrieve an authentication request
- Step 2: Confirm the authentication request through the Hanko Authenticator via out-of-band communication
- Step 3: Use the Hanko API to verify successful authentication
Sequence diagram for the authentication flow with the Hanko Authenticator
Step 1: Retrieve an authentication request
First we need to initiate the authentication of an authenticator device by issuing aPOST request to the UAF endpoint ({API_URL}/v1/uaf/requests) of the Hanko API. The POST request body must include the appropriate operation type (i.e. AUTH for authentication), a userId and a username.
PENDING. The links section of the Hanko request contains an API endpoint reference that allows us to retrieve a status of the Hanko request. We will later use this to verify whether the authentication process was successful.
Step 2: Confirm the authentication request
The Hanko API will send a push notification to our mobile device which triggers the Hanko Authenticator to inform us that an authentication request was initiated and prompt us to confirm that we initiated the authentication request. To continue with the authentication process:- The Hanko Authenticator will display metadata pertaining to the authentication request (e.g. date, geo-location of the request origin) and prompt you to confirm the authentication request to ensure that it was indeed you who initiated the authentication process.
- The Hanko Authenticator will then retrieve the current pending authentication request from the Hanko API and provide the authenticator with the FIDO server challenge contained in the request.
- When prompted, perform an authentication gesture either by using the biometric capabilities of your mobile devices or - if your mobile device does not have any biometric capabilities - provide the mobile device PIN.
- The Hanko Authenticator will return the UAF authenticator response including the signed challenge from the initial FIDO request and validate and finalize the authentication request.
Step 3: Verify successful authentication
We can verify that the authentication was successful by using thestatus link contained in the Hanko request we retrieved in Step 1.
status property of the returned Hanko request should be OK.
status change can be detected.