Présentation
Lorsqu'ils utilisent des clés d'accès synchronisées, les utilisateurs s'authentifient auprès d'un fournisseur de clés d'accès.
Pour créer et vous authentifier à l'aide de clés d'accès, vous utiliserez l'API WebAuthn pour le Web ou l'API Gestionnaire d'identifiants pour les applications Android. Ces API gèrent la communication entre le client et le fournisseur de clés d'accès.
Bien que ces API soient appelées à partir d'un client tel qu'une page Web ou une application Android, vous devez implémenter le reste des fonctionnalités sur le serveur pour terminer vos cas d'utilisation de l'authentification.
L'implémentation d'une clé d'accès comprend deux fonctionnalités:
- Enregistrement de la clé d'accès. Utilisez l'API WebAuthn ou l'API Gestionnaire d'identifiants pour permettre à l'utilisateur de créer une clé d'accès. Stockez la clé publique associée sur le serveur.
- Authentification via une clé d'accès Obtenez une question d'authentification auprès du serveur et utilisez l'API WebAuthn ou l'API Gestionnaire d'identifiants pour permettre à l'utilisateur de signer cette question avec sa clé d'accès. Vérifiez la signature sur le serveur. Si la signature est valide, authentifiez l'utilisateur.
Bibliothèques côté serveur
Bien qu'il soit possible d'implémenter de toutes pièces la fonctionnalité des clés d'accès côté serveur, nous vous recommandons de vous appuyer sur une bibliothèque.
Un serveur qui prend en charge la création et l'authentification de clés d'accès est appelé serveur FIDO2 (serveur FIDO en abrégé). Par extension, nous ferons référence ici aux bibliothèques côté serveur qui implémentent la prise en charge des clés d'accès en tant que bibliothèques côté serveur FIDO.
Pourquoi utiliser une bibliothèque ?
L'utilisation d'une bibliothèque FIDO côté serveur présente plusieurs avantages:
- Temps passé et expérience des développeurs La spécification WebAuthn est complexe. Les bibliothèques FIDO côté serveur peuvent fournir des API simples pour implémenter des clés d'accès, ce qui peut vous faire économiser du temps et des ressources de développement.
- Facilité de gestion. La spécification WebAuthn est encore susceptible d'être modifiée. L'utilisation de la dernière version d'une bibliothèque activement gérée permet de maintenir votre implémentation à jour.
- Sécurité et conformité. Vous souhaitez que l'implémentation de votre clé d'accès soit conforme à la spécification WebAuthn et à ses exigences de sécurité. Les bibliothèques FIDO côté serveur peuvent vous aider à sécuriser votre implémentation et à la rendre conforme à la spécification. Selon votre produit et votre secteur d'activité, votre implémentation peut également être soumise à des réglementations qui vous obligent à utiliser des normes de sécurité spécifiques pour l'authentification.
Si possible, envisagez de soutenir financièrement les projets Open Source sur lesquels s'appuie votre produit.
Bibliothèques
- Le dépôt GitHub awesome-webauthn comprend une liste de bibliothèques côté serveur sélectionnées par la communauté. Vous y trouverez des bibliothèques pour JavaScript, TypeScript, Go, Python, etc.
- Une collection de bibliothèques est disponible sur passkeys.dev. Elle est gérée par le groupe de communauté W3C WebAuthn Adoption.
- FIDO Alliance fait référence à un ensemble de serveurs FIDO2.