Registrazione WebAuthn | Richiesta

Questa richiesta di opzioni di registrazione è essenziale per avviare in modo sicuro la registrazione WebAuthn. Chiede al server di:

 

 

Il browser deve ottenere le opzioni di creazione delle credenziali dal server per avviare una registrazione sicura delle credenziali WebAuthn. Questo viene tipicamente fatto tramite una richiesta HTTPS POST dal browser a un endpoint del server (ad esempio, /sgcWebAuthn/Registration/Options), che prepara parametri come la challenge, l'RP ID e le informazioni sull'utente.

 

Il corpo della richiesta contiene dati che identificano l'utente ed eventualmente forniscono preferenze di configurazione. Spesso si presenta così:

 

{
"username": "alice@example.com",
"displayName": "Alice Smith",
"authenticatorSelection": {
"authenticatorAttachment": "platform", // opzionale: platform o cross-platform
"userVerification": "preferred" // opzionale: required | preferred | discouraged
},
"attestation": "none", // oppure "direct", "indirect"
"residentKey": "discouraged" // opzionale
}

 

Il componente Server WebAuthn rimane in ascolto sull'endpoint configurato nella proprietà EndpointOptions.RegistrationOptions per la richiesta iniziale del browser di ottenere un PublicKeyCredentialCreationOptions. Quando il server riceve una nuova richiesta HTTP, viene chiamato l'evento OnWebAuthnRegistrationOptionsRequest ed è possibile accedere alla richiesta inviata dal client e annullarla impostando il parametro Accept su False.

 


procedure OnWebAuthnRegistrationOptionsRequest(Sender: TObject; const aRequest: TsgcWebAuthn_RegistrationOptions_Request; var Accept: Boolean);
begin
  if aRequest.Username = 'anonymous' then
    Accept := False;
end;