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;