WebAuthn Inscription | Résultat

L'objectif est de vérifier l'authenticité et l'intégrité des données renvoyées par le client, de s'assurer que les informations d'identification sont liées à l'utilisateur attendu et d'enregistrer en toute sécurité une clé publique d'identification pour les authentifications futures.

 

Le serveur doit valider la réponse du client en suivant ces étapes :

 

 

{
"id": "base64url-encoded credential ID",
"rawId": "base64url-encoded ID bytes",
"response": {
"clientDataJSON": "base64url",
"attestationObject": "base64url"
},
"type": "public-key"
}

 

 

 

Inscription réussie

Si la réponse envoyée par le client est valide, l'événement OnWebAuthnRegistrationSuccessful est appelé et l'enregistrement de credential peut être stocké en toute sécurité dans une base de données pour les validations de connexions futures.

 


procedure OnWebAuthnRegistrationSuccessful(Sender: TObject; const aRegistration: TsgcWebAuthn_Registration; 
  const aCredentialRecord: TsgcWebAuthn_CredentialRecord; var Accept: Boolean);
begin
  // store in a db
  DB.Credentials.Append;
  DB.Credentials.FieldByName('Credentials').AsString := aCredentialRecord.AsJSON;
  DB.Credentials.Post;
end;

Erreur d'enregistrement

S'il y a une erreur lors de la validation de la réponse du client, l'événement OnWebAuthnRegistrationError est appelé et vous pouvez accéder à la raison de l'erreur dans le paramètre aError.

 


procedure OnWebAuthnRegistrationError(Sender:
    TObject; const aRequest: TsgcWebAuthn_RegistrationVerify_Request; const
    aRegistration: TsgcWebAuthn_Registration; const aError: string);
begin
  Log('#webauthn_registration_error: ' + aError);
end;