WebAuthn | Authenticatie

WebAuthn-authenticatie stelt gebruikers in staat in te loggen met eerder geregistreerde openbare-sleutelcredentials. Het omvat het valideren van een ondertekende challenge met de opgeslagen openbare sleutel van de gebruiker uit de registratie.

 

 

Authenticatieopties

 

Voor verificatie moet de client de verificatiestroom starten met een nieuw HTTP-verzoek naar het Authentication Options Endpoint dat is geconfigureerd in de TsgcWSAPIServer_WebAuthn-server. Standaard is het eindpunt /sgcWebAuthn/Authentication/Options; als uw server luistert op het domein https://www.test.com, moet de client een nieuw verzoek sturen naar de URL https://www.test.com/sgcWebAuthn/Authentication/Options.

 

Client verzendt de bewering (authenticatiereactie) via POST naar de server

 

{"username":"test","user_verification":"preferred"}

 

De server Generates PublicKeyCredentialRequestOptions

 

{
"challenge": "9d0d61edf30b45f8b88aef7087f9117716e2b7d8b0ee4460b06142f39dd0ec9f",
"timeout": 60000,
"rpId": "localhost",
"allowCredentials": [
{
"id": "yeA4BVRlrAfLG-KzqsL_rlI4ffhuKHK8uoEkVoab065UkS82Zqlh9VFQHIYwOuOo",
"type": "public-key",
"transports": [
"nfc",
"usb"
]
}
],
"userVerification": "preferred",
"hints": [],
"attestation": "none",
"attestationFormats": [],
"extensions": {}
}

 

 

Authenticatie Verificatie

 

Voor verificatie moet de client de verificatiestroom starten met een nieuw HTTP-verzoek naar het Authentication Verify Endpoint dat is geconfigureerd in de TsgcWSAPIServer_WebAuthn-server. Standaard is het eindpunt /sgcWebAuthn/Authentication/Verify; als uw server luistert op het domein https://www.test.com, moet de client een nieuw verzoek sturen naar de URL https://www.test.com/sgcWebAuthn/Authentication/Verify.

 

De browser vraagt de gebruiker om zijn authenticator te gebruiken (bijv. vingerafdruk, YubiKey). De authenticator ondertekent de challenge met de privésleutel gekoppeld aan de credential-ID. Het geretourneerde credential omvat:

 

 

Hieronder vindt u een JSON-voorbeeld van het clientverzoek:

 

{
"id": "yeA4BVRlrAfLG-KzqsL_rlI4ffhuKHK8uoEkVoab065UkS82Zqlh9VFQHIYwOuOo",
"rawId": "yeA4BVRlrAfLG-KzqsL_rlI4ffhuKHK8uoEkVoab065UkS82Zqlh9VFQHIYwOuOo",
"response": {
"authenticatorData": "SZYN5YgOjGh0NBcPZHZgW4_krrmihjLHmVzzuoMdl2MFAAAABw",
"clientDataJSON": "eyJ0eXBlIjoid2ViYXV0aG4uZ.....",
"signature": "MEQCIAJRqvvys8....",
"userHandle": "36b9d6a84204487382fee62e7e67a80d"
},
"type": "public-key",
"clientExtensionResults": {},
"authenticatorAttachment": "cross-platform"
}

 

De server leest het verzoek van de client, valideert dat de inloggegevens zijn opgeslagen en verifieert de handtekening. Als de handtekening geldig is, wordt de gebeurtenis OnWebAuthnAuthenticationSuccessful aangeroepen.

 

 

 

Authenticatiestroom

Verkrijg meer informatie over het Authentication Flow-proces via de volgende links: