Esta solicitud de opciones de registro es esencial para inicializar el registro WebAuthn de forma segura. Solicita al servidor que:
El navegador debe obtener opciones de creación de credenciales del servidor para iniciar un registro seguro de credenciales WebAuthn. Esto se realiza normalmente mediante una solicitud HTTPS POST desde el navegador a un endpoint del servidor (p. ej., /sgcWebAuthn/Registration/Options), que prepara parámetros como el desafío, el RP ID y la información del usuario.
El cuerpo de la solicitud contiene datos que identifican al usuario y posiblemente proporciona preferencias de configuración. Habitualmente tiene el siguiente aspecto:
{
"username": "alice@example.com",
"displayName": "Alice Smith",
"authenticatorSelection": {
"authenticatorAttachment": "platform", // optional: platform or cross-platform
"userVerification": "preferred" // optional: required | preferred | discouraged
},
"attestation": "none", // or "direct", "indirect"
"residentKey": "discouraged" // optional
}
El componente servidor WebAuthn escucha en el endpoint configurado en la propiedad EndpointOptions.RegistrationOptions la solicitud inicial del navegador para obtener un PublicKeyCredentialCreationOptions. Cuando el servidor recibe una nueva solicitud HTTP, se llama al evento OnWebAuthnRegistrationOptionsRequest y puede acceder a la solicitud enviada por el cliente y cancelarla estableciendo el parámetro Accept en False.
procedure OnWebAuthnRegistrationOptionsRequest(Sender: TObject; const aRequest: TsgcWebAuthn_RegistrationOptions_Request; var Accept: Boolean);
begin
if aRequest.Username = 'anonymous' then
Accept := False;
end;