WebAuthn Rejestracja | Wynik

Celem jest weryfikacja autentyczności i integralności danych zwróconych przez klienta, upewnienie się, że poświadczenie jest powiązane z oczekiwanym użytkownikiem, oraz bezpieczna rejestracja poświadczenia klucza publicznego do przyszłego uwierzytelniania.

 

Serwer musi zweryfikować odpowiedź klienta zgodnie z następującymi krokami:

 

 

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

 

 

 

Rejestracja zakończona pomyślnie

Jeśli odpowiedź wysłana przez klienta jest prawidłowa, wywoływane jest zdarzenie OnWebAuthnRegistrationSuccessful, a rekord poświadczeń można bezpiecznie zapisać w bazie danych do przyszłych walidacji logowania.

 


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;

Błąd rejestracji

W przypadku wystąpienia błędu podczas walidacji odpowiedzi klienta wywoływane jest zdarzenie OnWebAuthnRegistrationError, a przyczyna błędu jest dostępna w parametrze aError.

 


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