Análise detalhada do sgcWebSockets WebAuthn Server

· Componentes

O componente TsgcWSAPIServer_WebAuthn é um módulo de servidor Delphi/FPC que implementa o lado relying-party do protocolo WebAuthn sobre HTTPS. Ele se integra ao TsgcWebSocketHTTPServer ou ao TsgcWebSocketServer e expõe endpoints no estilo REST para registro e autenticação. 

Mecânica dos endpoints

Por padrão, o componente registra rotas sob /sgcWebAuthn:

FinalidadeEndpoint padrãoDescrição
Opções de registro/Registration/OptionsO cliente solicita um desafio e informações da relying-party antes de chamar navigator.credentials.create
Verificação de registro/Registration/VerifyO navegador envia a nova credencial, o objeto de attestation e os dados do cliente para validação no servidor
Opções de autenticação/Authentication/OptionsO servidor fornece uma lista de IDs de credencial permitidos e um desafio
Verificação de autenticação/Authentication/VerifyO navegador envia a asserção (authenticatorData + assinatura) para verificação
Helper JavaScript/WebauthnEntrega um script auxiliar que encapsula as chamadas WebAuthn padrão do navegador
Página de teste/TestUma página HTML rápida para exercitar a API durante o desenvolvimento


Os endpoints podem ser remapeados por meio de EndpointOptions para se ajustarem a esquemas de roteamento existentes. 

Propriedades principais

  1. RelyingParty (RPID / RPName) – Nome DNS obrigatório que identifica o domínio lógico das credenciais. Garanta que ele corresponda ao domínio efetivo da sua aplicação.
  2. Origins & TopOrigins – Listas separadas por ponto e vírgula de origens válidas. Origins cobre os domínios primários; TopOrigins é usado ao incorporar em iframes.
  3. AllowCrossOrigins – Se definido como True, iframes de origem cruzada podem solicitar autenticação. Isso exige TopOrigins cuidadosamente curado e validação no lado do servidor.
  4. Algorithms – Identificadores de algoritmo COSE suportados (por exemplo, ES256, RS256, EdDSA). Isso controla quais tipos de chave pública o servidor aceitará.
  5. TimeoutMS – Timeout sugerido ao cliente para concluir operações WebAuthn.
  6. UserVerification – Política para verificação do usuário (preferred, required, discouraged).
  7. Attestation – Especifica se o attestation é none, indirect ou direct. O attestation direto exige validação da cadeia de certificados de attestation.
  8. Metadata Service (MDS) – Quando habilitado, o componente consulta arquivos do FIDO Metadata Service para confirmar a confiabilidade do modelo do autenticador. Campos:
    • MDS_FileName – JSON de metadados em cache local (baixado da FIDO).
    • RootCert_FileName – Certificado raiz para verificar assinaturas de metadados.
  9. ChallengeOptions – Permite comprimento personalizado e fonte de aleatoriedade para os desafios gerados.
  10. CredentialStorage – Embora não seja uma propriedade direta, o componente espera que a aplicação persista as chaves públicas das credenciais, os contadores de assinatura e os user handles.

Ciclo de vida dos eventos

Registro

Autenticação

Esses eventos permitem controle refinado sobre cada etapa do protocolo, desde a geração de opções até o processamento de asserções.