WebAuthn Registration | Result

Das Ziel besteht darin, die Authentizität und Integrität der vom Client zurückgegebenen Daten zu verifizieren, sicherzustellen, dass das Credential an den erwarteten Benutzer gebunden ist, und ein öffentliches Schlüssel-Credential sicher für die zukünftige Authentifizierung zu registrieren.

 

Der Server muss die Client-Antwort anhand der folgenden Schritte validieren:

 

 

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

 

 

 

Registrierung erfolgreich

Wenn die vom Client gesendete Antwort gültig ist, wird das Ereignis OnWebAuthnRegistrationSuccessful aufgerufen, und der Credential Record kann für künftige Login-Validierungen sicher in einer Datenbank gespeichert werden.

 


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;

Registrierungsfehler

Wenn beim Validieren der Client-Antwort ein Fehler auftritt, wird das Ereignis OnWebAuthnRegistrationError aufgerufen, und Sie können den Grund für den Fehler im Parameter aError abrufen.

 


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