WebAuthn Kaydı | Sonuç

Amaç, istemci tarafından döndürülen verilerin gerçekliğini ve bütünlüğünü doğrulamak, kimlik bilgisinin beklenen kullanıcıya bağlı olduğundan emin olmak ve gelecekteki kimlik doğrulama için bir genel anahtar kimlik bilgisini güvenli bir şekilde kaydetmektir.

 

Sunucu, istemci yanıtını şu adımları izleyerek doğrulamalıdır:

 

 

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

 

 

 

Kayıt Başarılı

İstemci tarafından gönderilen yanıt geçerliyse, OnWebAuthnRegistrationSuccessful olayı çağrılır ve Credential Record gelecekteki oturum açma doğrulamaları için güvenli bir şekilde bir veritabanına saklanabilir.

 


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;

Kayıt Hatası

İstemci yanıtını doğrularken herhangi bir hata olursa, OnWebAuthnRegistrationError olayı çağrılır ve hatanın nedenine aError parametresinde erişebilirsiniz.

 


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