Authenticating a user’s FIDO credential is handled in four(4) steps:
In the first step after a user submits their registration, a preauthenticate() webservice request is sent to SKFS; this returns a challenge and other directives/hints (inside PublicKeyCredentialCreationOptions) to serve as input to the WebAuthn API built into browsers:
In the third step, a verifyForUsername() web-service is sent to SKFS with the Signed Response (and associated metadata). When SKFS has verified the credential’s metadata and its compliance with the security policy configured on SKFS, a username is returned in the response:
In the fourth and final step, an authenticate() web-service is sent to SKFS with the Username and Signed Response (and associated metadata). When SKFS has verified the credential’s metadata and its compliance with the security policy configured on SKFS, the credential is registered in SKFS: