To żądanie opcji rejestracji jest niezbędne do bezpiecznego zainicjowania rejestracji WebAuthn. Prosi serwer o:
Przeglądarka musi pobrać opcje tworzenia poświadczeń z serwera, aby zainicjować bezpieczną rejestrację poświadczeń WebAuthn. Zazwyczaj odbywa się to za pośrednictwem żądania HTTPS POST z przeglądarki do punktu końcowego serwera (np. /sgcWebAuthn/Registration/Options), który przygotowuje parametry takie jak wyzwanie, RP ID i informacje o użytkowniku.
Treść żądania zawiera dane identyfikujące użytkownika i ewentualnie preferencje konfiguracyjne. Zazwyczaj wygląda następująco:
{
"username": "alice@example.com",
"displayName": "Alice Smith",
"authenticatorSelection": {
"authenticatorAttachment": "platform", // opcjonalnie: platform lub cross-platform
"userVerification": "preferred" // opcjonalnie: required | preferred | discouraged
},
"attestation": "none", // lub "direct", "indirect"
"residentKey": "discouraged" // opcjonalnie
}
Składnik serwera WebAuthn nasłuchuje na punkcie końcowym skonfigurowanym we właściwości EndpointOptions.RegistrationOptions na początkowe żądanie przeglądarki w celu uzyskania PublicKeyCredentialCreationOptions. Gdy serwer odbiera nowe żądanie HTTP, wywoływane jest zdarzenie OnWebAuthnRegistrationOptionsRequest, umożliwiające dostęp do żądania wysłanego przez klienta i anulowanie żądania przez ustawienie parametru Accept na False.
procedure OnWebAuthnRegistrationOptionsRequest(Sender: TObject; const aRequest: TsgcWebAuthn_RegistrationOptions_Request; var Accept: Boolean);
begin
if aRequest.Username = 'anonymous' then
Accept := False;
end;