WebAuthn Server

· Fonctionnalités

From sgcWebSockets 2025.4.0 Enterprise, the  WebAuthn Protocol est pris en charge (actuellement en BÊTA). 

WebAuthn (Web Authentication) est un standard web développé par le World Wide Web Consortium (W3C) et la FIDO Alliance pour permettre une authentification sécurisée, sans mot de passe sur le web. Il fait partie du framework FIDO2 plus large et vise à réduire la dépendance aux mots de passe traditionnels, qui sont souvent vulnérables au phishing, au credential stuffing et à d'autres attaques.

À la base, WebAuthn permet aux utilisateurs de s'authentifier en utilisant la cryptographie à clé publique. Au lieu d'un nom d'utilisateur et d'un mot de passe, les utilisateurs enregistrent une unique paire publique-clé privée avec une application web (la Relying Party). La clé privée est stockée en toute sécurité sur un authenticator, tel que une clé de sécurité matérielle, un smartphone ou un appareil biométrique intégré—tandis que la clé publique est stockée sur le serveur.

Lors de l'authentification, le serveur émet un challenge qui doit être signé par la clé privée de l'utilisateur. Le challenge signé est renvoyé et vérifié en utilisant la clé publique, garantissant à la fois l'intégrité et l'origine de la réponse. Cette approche empêche l'interception ou la réutilisation des identifiants.

WebAuthn prend en charge une gamme d'authenticators et d'appareils, ce qui le rend flexible pour les développeurs comme pour les utilisateurs. Il permet également l'authentification multi-facteursteurs (MFA) lorsqu'il est combiné avec d'autres facteurs comme les PIN ou la biométrie, améliorant considérablement la sécurité sans sacrifier la facilité d'utilisation.

Formats d'attestation pris en charge

Différents formats d'attestation définissent comment ces données sont structurées et vérifiées. Trois formats couramment utilisés sont android-key, packed, et d'autres comme fido-u2f, apple ou none. Par défaut tous les formats d'attestation sont activés, tu trouveras ci-dessous la liste des formats d'attestation pris en charge:


WebAuthn Flow


serveur WebAuthn Component

Le TsgcWSAPIServer_WebAuthn component fournit a simple mais powerful solution to implement le WebAuthn Relying Party server, enabling sans mot de passe in ton web application. A WebAuthn application consists sur un serveur WebAuthn que handles le serveur-side registration et authentification et un client-side application que usually est un javascript application.


Voici un simple configuration de la serveur WebAuthn:


  // ... create the servers
  HTTPServer := TsgcWebSocketHTTPServer.Create(nil);
  WebAuthnServer := TsgcWSAPIServer_WebAuthn.Create(nil);
  WebAuthnServer.Server := HTTPServer;
  // ... enable for testing
  WebAuthnServer.EndpointsOptions.Test.Enabled := True;
  // ... WebAuthn options
  WebAuthnServer.WebAuthnOptions.RelyingParty := 'localhost';
  // ... bindings
  Server.Port := 443;
  HTTPServer.SSLOptions.Port := 443;
  HTTPServer.Bindings.Clear;
  With HTTPServer.Bindings.Add do
  begin
    Port := 443;
    IP := '127.0.0.1';
  end;
  HTTPServer.SSLOptions.Certificate := 'sgc.pem';
  HTTPServer.SSLOptions.KeyFile := 'sgc.pem';  
  HTTPServer.SSL := True;
  // ... active
  HTTPServer.Active := True; 

Delphi serveur WebAuthn Demo

Le following Delphi WebAuthn Demo shows comment register a nouveau credential et use après to authenticate l'utilisateur.