TsgcWSAPIServer_WebAuthn

Uniquement OpenSSL 3.

Introduction

Le composant TsgcWSAPIServer_WebAuthn fournit une solution simple mais puissante pour implémenter le serveur de partie de confiance WebAuthn, permettant une authentification sans mot de passe dans votre application web. Une application WebAuthn se compose d'un serveur WebAuthn qui gère l'inscription et l'authentification côté serveur, et d'une application côté client qui est généralement une application JavaScript.

 

WebAuthn nécessite l'utilisation de connexions sécurisées (SSL/TLS), donc les bibliothèques OpenSSL doivent être déployées et configurées avec le serveur.

 

Seule l'API OpenSSL 3.0.0+ est prise en charge, les versions précédentes d'OpenSSL peuvent ne pas fonctionner.

 

Configuration

 

Le TsgcWSAPIServer_WebAuthn doit être attaché à un serveur HTTP, TsgcWebSocketHTTP_Server ou TsgcWebSocketServer_HTTPAPI, en utilisant la propriété Server. Vous pouvez configurer les points de terminaison du serveur qui géreront les options d'enregistrement et d'authentification, ainsi que les options WebAuthn telles que les algorithmes pris en charge, les origines, et plus encore.

 

Options des points de terminaison

Ici vous pouvez configurer les points de terminaison du serveur qui géreront les requêtes HTTP/JavaScript pour utiliser WebAuthn comme authentificateur. Le composant est déjà configuré avec des points de terminaison par défaut, mais vous pouvez tous les modifier selon vos besoins.

 

 

Exemple : si votre serveur écoute sur le domaine www.test.com, la requête vers les options d'authentification sera par défaut http://www.test.com/sgcWebAuthn/Authentication/Options

 

Options WebAuthn

Dans cette propriété, vous pouvez configurer les options principales du composant serveur WebAuthn.

 

 

WebAuthn utilise les origines pour appliquer les contraintes de politique same-origin, essentielles pour prévenir le phishing et les attaques cross-site. Lors des processus d'enregistrement et d'authentification WebAuthn, l'origine est strictement validée par le navigateur et l'authentificateur.

 

 

 

Dans WebAuthn, crossOrigin est un paramètre booléen qui indique si l'opération WebAuthn est effectuée depuis un contexte d'origine croisée, par exemple une iframe intégrée depuis une origine différente du contexte de navigation de niveau supérieur.

Ce paramètre a été introduit pour aider les navigateurs et les authentificateurs à gérer en toute sécurité les demandes d'authentification dans les environnements intégrés — un scénario courant dans les applications web modernes.

 

 

WebAuthn prend en charge une variété d'algorithmes cryptographiques pour la génération et la vérification des identifiants de clé publique. Ces algorithmes sont utilisés lors de l'enregistrement des identifiants (avec navigator.credentials.create()) et de l'authentification (avec navigator.credentials.get()), et ils garantissent une signature et une validation sécurisées des défis à l'aide de paires de clés asymétriques. Le serveur est configuré par défaut avec ES256 et RS256 qui sont les algorithmes les plus courants. Vous pouvez modifier à tout moment les algorithmes pris en charge depuis la propriété Algorithms. Les algorithmes suivants sont pris en charge :

 

 

Dans WebAuthn, l'attestation est un mécanisme optionnel qui permet à l'authentificateur (ex : appareil ou clé de sécurité) de fournir des informations sur son fabricant, son modèle et ses caractéristiques de sécurité lors de la création d'une credential. Ces informations aident la Partie de confiance (RP) à décider si elle doit faire confiance à l'authentificateur.

 

Différents formats d'attestation définissent la façon dont 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. Vous pouvez trouver ci-dessous la liste des formats d'attestation pris en charge :

 

 

 

 

 

 

 

Dans l'API WebAuthn, AllowCredentials est un champ optionnel utilisé lors du processus d'authentification (via navigator.credentials.get()). Il spécifie une liste d'identifiants de credential autorisés à authentifier l'utilisateur pour un Relying Party (RP) particulier. Ce mécanisme permet au RP de contrôler quels credentials sont considérés comme valides pour une tentative de connexion. La propriété credentials comporte les champs suivants :

 

 

 

 

Protocole WebAuthn

 

 

 

 

 

Référence