WebAuthn Registration | Request

Esta requisição de opções de registro é essencial para inicializar o registro WebAuthn com segurança. Ela solicita ao servidor para:

 

 

O navegador deve obter as opções de criação de credencial do servidor para iniciar um registro seguro de credencial WebAuthn. Isso normalmente é feito através de uma requisição HTTPS POST do navegador para um endpoint do servidor (por exemplo, /sgcWebAuthn/Registration/Options), que prepara parâmetros como o challenge, RP ID e informações do usuário.

 

O corpo da requisição contém dados que identificam o usuário e possivelmente fornecem preferências de configuração. Frequentemente, ele se parece com isto:

 

{
  "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
}

 

O Componente Servidor WebAuthn escuta no endpoint configurado na propriedade EndpointOptions.RegistrationOptions a requisição inicial do navegador para obter um PublicKeyCredentialCreationOptions. Quando o servidor recebe uma nova Requisição HTTP, o evento OnWebAuthnRegistrationOptionsRequest é chamado e você pode acessar a requisição enviada pelo cliente e cancelar a requisição definindo o parâmetro Accept como False.

 


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