Guide du développeur de clés d'accès pour les tiers de confiance

Découvrez comment intégrer des clés d'accès à votre service.

Anatomie d'un système de clés d'accès

Un système de clés d'accès se compose de plusieurs éléments:

  • Partie de confiance: dans le contexte des clés d'accès, une partie de confiance (RP en abrégé) gère l'émission et l'authentification des clés d'accès. La RP doit exploiter un client (un site Web ou une application qui crée des clés d'accès ou s'authentifie avec des clés d'accès) et un serveur pour enregistrer, stocker et vérifier les identifiants générés par les clés d'accès sur le client. Une application mobile de clé d'accès doit être liée à un domaine de serveur RP à l'aide du mécanisme d'association fourni par le système d'exploitation, tel que Digital Asset Links.
  • Authenticator: appareil informatique, tel qu'un téléphone mobile, une tablette, un ordinateur portable ou de bureau, capable de créer et de valider des clés d'accès à l'aide de la fonctionnalité de verrouillage de l'écran proposée par le système d'exploitation.
  • Gestionnaire de mots de passe: logiciel installé sur le ou les appareils de l'utilisateur final qui diffuse, stocke et synchronise les clés d'accès, comme le Gestionnaire de mots de passe de Google.

Flux d'inscription

Utilisez l'API WebAuthn sur un site Web ou la bibliothèque Gestionnaire d'identifiants sur une application Android pour créer et enregistrer une clé d'accès.

Pour créer une clé d'accès, vous devez fournir quelques éléments clés:

  • RP ID: indiquez l'ID du tiers de confiance sous la forme d'un domaine Web.
  • Informations utilisateur: l'ID de l'utilisateur, son nom d'utilisateur et un nom à afficher.
  • Identifiants à exclure: informations sur les clés d'accès précédemment stockées pour éviter un enregistrement en double.
  • Types de clés d'accès: indique si l'appareil lui-même ("authentificateur de plate-forme") doit être utilisé en tant qu'authentificateur ou comme clé de sécurité détachable ("authentificateur multiplate-forme / itinérance"). En outre, les appelants peuvent spécifier s'ils doivent rendre les identifiants détectables afin que l'utilisateur puisse sélectionner un compte avec lequel se connecter.

Une fois qu'un RP demande la création d'une clé d'accès et que l'utilisateur la valide à l'aide d'un déverrouillage d'écran, une clé d'accès est créée et un identifiant de clé publique est renvoyé. Envoyez-le au serveur et stockez l'ID d'identification et la clé publique pour l'authentification ultérieure.

Flux d'inscription

Découvrez en détail comment créer et enregistrer une clé d'accès:

Flux d'authentification

Utilisez l'API WebAuthn sur un site Web ou la bibliothèque Gestionnaire d'identifiants sur une application Android pour vous authentifier avec une clé d'accès enregistrée.

Pour vous authentifier avec une clé d'accès, vous devez fournir quelques éléments clés:

  • RP ID: indiquez l'ID du tiers de confiance sous la forme d'un domaine Web.
  • Défi: défi généré par le serveur qui empêche les attaques par rejeu.

Une fois qu'un RP demande une authentification avec une clé d'accès et que l'utilisateur la valide à l'aide du déverrouillage de l'écran, un identifiant de clé publique est renvoyé. Envoyez-la au serveur et vérifiez la signature avec la clé publique stockée.

Flux d'authentification

Découvrez en détail comment vous authentifier avec une clé d'accès:

Intégrations côté serveur

Lors de la création d'une clé d'accès, le serveur doit fournir des paramètres de clé tels qu'une question d'authentification, des informations utilisateur, des identifiants d'identification à exclure, etc. Il valide ensuite les identifiants de clé publique créés envoyés par le client et stocke la clé publique dans la base de données. Pour s'authentifier avec une clé d'accès, le serveur doit valider soigneusement les identifiants et valider la signature pour permettre à l'utilisateur de se connecter.

Toutefois, créer vous-même un serveur de clés d'accès n'est pas efficace dans le temps et peut entraîner des bugs susceptibles de provoquer un incident de sécurité critique. Nous vous recommandons d'utiliser l'une des bibliothèques Open Source disponibles ou une solution pouvant vous aider à accélérer l'intégration des clés d'accès.

Pour obtenir la liste des bibliothèques Open Source, consultez la section sur les bibliothèques de passekeys.dev ou la liste des bibliothèques WebAuthn fournie par le crowdsourcing. Pour trouver une solution, FIDO Alliance propose une liste de serveurs FIDO2 certifiés.

Mécanismes d'authentification existants (anciens)

Lorsque vous acceptez les clés d'accès sur votre service existant, la transition de l'ancien mécanisme d'authentification, tel que les mots de passe aux clés d'accès, ne s'effectue pas en une journée. Nous savons que vous avez tendance à éliminer la méthode d'authentification plus faible dès que possible, mais cela peut prêter à confusion ou ne pas laisser certains d'entre eux. Nous vous recommandons de conserver la méthode d'authentification existante pour le moment.

Plusieurs raisons peuvent l'expliquer:

  • Certains utilisateurs se trouvent dans un environnement incompatible avec les clés d'accès: la prise en charge des clés d'accès est étendue à de nombreux systèmes d'exploitation et navigateurs, mais les utilisateurs d'anciennes versions ne peuvent pas encore utiliser de clés d'accès.
  • L'écosystème des clés d'accès est encore en pleine évolution: l'écosystème des clés d'accès évolue. Les détails de l'expérience utilisateur et la compatibilité technique entre les différents environnements peuvent être améliorés.
  • Les utilisateurs ne sont peut-être pas encore prêts à vivre avec une clé d'accès: certains hésitent à découvrir de nouvelles choses. À mesure que l'écosystème des clés d'accès évoluera, ils découvriront leur fonctionnement et leur utilité.

Réexaminer votre mécanisme d'authentification existant

Bien que les clés d'accès rendent votre authentification plus simple et plus sûre, conserver les anciens mécanismes revient à laisser un trou. Nous vous recommandons de revoir et d'améliorer vos mécanismes d'authentification existants.

Mots de passe

Créer des mots de passe sécurisés et les gérer pour chaque site Web sont des tâches difficiles pour les utilisateurs. Il est vivement recommandé d'utiliser un gestionnaire de mots de passe intégré au système ou un gestionnaire autonome. Si vous apportez une légère modification au formulaire de connexion, les sites Web et les applications peuvent faire une énorme différence en termes de sécurité et d'expérience de connexion. Découvrez comment effectuer ces modifications:

Authentification à deux facteurs

Bien que l'utilisation d'un gestionnaire de mots de passe aide les utilisateurs à gérer les mots de passe, tous ne les utilisent pas. Demander un identifiant supplémentaire appelé mot de passe à usage unique (OTP) est une pratique courante pour protéger ces utilisateurs. Les mots de passe à usage unique sont généralement fournis via un e-mail, un SMS ou une application d'authentification telle que Google Authenticator. Étant donné que les mots de passe à usage unique sont généralement un texte court généré de façon dynamique uniquement pendant une période limitée, ils réduisent le risque de piratage de compte. Ces méthodes ne sont pas aussi robustes qu'une clé d'accès, mais elles sont bien plus efficaces que de laisser aux utilisateurs un simple mot de passe.

Si vous sélectionnez l'envoi par SMS d'un mot de passe à usage unique, suivez les bonnes pratiques ci-dessous pour simplifier l'expérience utilisateur lors de la saisie du mot de passe à usage unique.

Fédération d'identité

La fédération d'identité est une autre option qui permet aux utilisateurs de se connecter facilement et de manière sécurisée. Avec la fédération d'identité, les sites Web et les applications peuvent autoriser les utilisateurs à se connecter à l'aide de leur identité fournie par un fournisseur d'identité tiers. Par exemple, Se connecter avec Google offre d'excellentes conversions aux développeurs, et les utilisateurs trouvent qu'il est plus facile et préférable que l'authentification par mot de passe. La fédération d'identité est complémentaire des clés d'accès. Elles sont idéales pour l'inscription, car le site Web ou l'application peut obtenir des informations de base sur le profil de l'utilisateur en une seule étape, tandis que les clés d'accès sont idéales pour simplifier la réauthentification.

N'oubliez pas qu'après l'abandon des cookies tiers par Chrome en 2024, certains systèmes de fédération d'identité pourraient être affectés en fonction de leur conception. Pour atténuer l'impact, une nouvelle API de navigateur appelée API Federated Credential Management (FedCM) est en cours de développement. Si vous gérez un fournisseur d'identité, consultez les détails pour savoir si vous devez adopter FedCM.

La connexion par lien magique est une méthode d'authentification via laquelle un service fournit un lien de connexion par e-mail afin que l'utilisateur puisse cliquer dessus pour s'authentifier. Bien que cela aide les utilisateurs à se connecter sans se souvenir d'un mot de passe, le passage du navigateur/de l'application au client de messagerie s'avère problématique. En outre, comme le mécanisme d'authentification repose sur l'e-mail, le faible niveau de sécurité du fournisseur de messagerie peut compromettre les comptes des utilisateurs.

Ressources de formation

Web

Pour intégrer des clés d'accès à votre site Web, utilisez l'API Web Authentication (WebAuthn). Pour en savoir plus, consultez les ressources suivantes:

Android

Pour intégrer des clés d'accès à votre application Android, utilisez la bibliothèque Gestionnaire d'identifiants. Pour en savoir plus, consultez les ressources suivantes:

Expérience utilisateur

Découvrez les recommandations concernant l'expérience utilisateur pour les clés d'accès: