Het doel is om de authenticiteit en integriteit van de door de client geretourneerde gegevens te verifiëren, te waarborgen dat de credential aan de verwachte gebruiker is gebonden, en een public key credential veilig te registreren voor toekomstige authenticatie.
De server must validate de client response volgende these steps:
{
"id": "base64url-encoded credential ID",
"rawId": "base64url-encoded ID bytes",
"response": {
"clientDataJSON": "base64url",
"attestationObject": "base64url"
},
"type": "public-key"
}
Als de respons die door de client wordt verstuurd geldig is, wordt de gebeurtenis OnWebAuthnRegistrationSuccessful aangeroepen en kan de Credential Record veilig worden opgeslagen in een database voor toekomstige aanmeldingsvalidaties.
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;
Als er een fout optreedt bij het valideren van de clientrespons, wordt de gebeurtenis OnWebAuthnRegistrationError aangeroepen en kunt u de reden voor de fout openen via de parameter aError.
procedure OnWebAuthnRegistrationError(Sender:
TObject; const aRequest: TsgcWebAuthn_RegistrationVerify_Request; const
aRegistration: TsgcWebAuthn_Registration; const aError: string);
begin
Log('#webauthn_registration_error: ' + aError);
end;