Inscription WebAuthn | Requête

Cette requête d'options d'enregistrement est essentielle pour amorcer l'enregistrement WebAuthn de manière sécurisée. Elle demande au serveur de :

 

 

Le navigateur doit obtenir les options de création de credential depuis le serveur pour initier l'enregistrement sécurisé d'un credential WebAuthn. Cette opération est généralement effectuée via une requête HTTPS POST du navigateur vers un point de terminaison serveur (par ex. /sgcWebAuthn/Registration/Options), qui prépare des paramètres tels que le challenge, l'RP ID et les informations utilisateur.

 

Le corps de la requête contient des données qui identifient l'utilisateur et fournissent éventuellement des préférences de configuration. Il ressemble souvent à ceci :

 

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

 

Le composant serveur WebAuthn écoute sur le point de terminaison configuré dans la propriété EndpointOptions.RegistrationOptions la requête initiale du navigateur pour obtenir un PublicKeyCredentialCreationOptions. Lorsque le serveur reçoit une nouvelle requête HTTP, l'événement OnWebAuthnRegistrationOptionsRequest est appelé et vous pouvez accéder à la requête envoyée par le client et annuler la requête en définissant le paramètre Accept à False.

 


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