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é 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, relying party) gère l'émission et l'authentification des clés d'accès. Le fournisseur d'identité 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 valider 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 associée à un domaine de serveur RP à l'aide du mécanisme d'association fourni par l'OS, tel que Digital Asset Links.
  • Authenticator : appareil informatique tel qu'un téléphone mobile, une tablette, un ordinateur portable ou un ordinateur de bureau, qui peut créer et 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 les appareils de l'utilisateur final qui sert, stocke et synchronise les clés d'accès, comme le Gestionnaire de mots de passe de Google.

Parcours d'inscription

Utilisez l'API WebAuthn sur un site Web ou la bibliothèque Credential Manager 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 composants clés :

  • ID de la partie de confiance : indiquez l'ID de la partie de confiance sous la forme d'un domaine Web.
  • Informations sur l'utilisateur : ID, nom d'utilisateur et nom à afficher de l'utilisateur.
  • Identifiants à exclure : informations sur les clés d'accès précédemment stockées pour éviter les enregistrements en double.
  • Types de clés d'accès : indiquez si vous souhaitez utiliser l'appareil lui-même ("authentificateur de plate-forme") comme authentificateur ou une clé de sécurité amovible ("authentificateur multiplate-forme / en itinérance"). De plus, les appelants peuvent indiquer si les identifiants doivent être détectables afin que l'utilisateur puisse sélectionner un compte avec lequel se connecter.

Lorsqu'une partie de confiance demande la création d'une clé d'accès et que l'utilisateur la valide en déverrouillant l'é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'identifiant et la clé publique pour l'authentification future.

Parcours 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 Credential Manager 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 :

  • ID de la partie de confiance : indiquez l'ID de la partie de confiance sous la forme d'un domaine Web.
  • Question d'authentification : question d'authentification générée par le serveur qui empêche les attaques par relecture.

Lorsqu'un RP demande une authentification avec une clé d'accès et que l'utilisateur la valide avec le déverrouillage de l'écran, un identifiant de clé publique est renvoyé. Envoyez-le au serveur et validez 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 clés tels qu'un défi, des informations sur l'utilisateur, des ID d'identifiants à exclure, etc. Il vérifie ensuite l'identifiant de clé publique créé envoyé par le client et stocke la clé publique dans la base de données. Pour l'authentification avec une clé d'accès, le serveur doit valider soigneusement l'identifiant et vérifier la signature pour permettre à l'utilisateur de se connecter.

Pour en savoir plus, consultez nos guides côté serveur :

Mécanismes d'authentification existants (anciens)

Lorsque vous prendrez en charge les clés d'accès sur votre service existant, la transition de l'ancien mécanisme d'authentification (comme les mots de passe) vers les clés d'accès ne se fera pas en un jour. Nous savons que vous serez tenté d'éliminer la méthode d'authentification la plus faible dès que possible, mais cela pourrait semer la confusion chez les utilisateurs ou en laisser certains de côté. 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 compatibilité avec les clés d'accès s'étend à de nombreux systèmes d'exploitation et navigateurs, mais les utilisateurs qui utilisent des versions plus anciennes ne peuvent pas encore les utiliser.
  • L'écosystème des clés d'accès n'est pas encore mature : l'écosystème des clés d'accès évolue. Les détails de l'UX et la compatibilité technique entre les différents environnements peuvent être améliorés.
  • Les utilisateurs ne sont peut-être pas encore prêts à utiliser une clé d'accès : certaines personnes hésitent à adopter de nouvelles technologies. À mesure que l'écosystème des clés d'accès évolue, les utilisateurs comprendront comment elles fonctionnent et pourquoi elles leur sont utiles.

Revoir votre mécanisme d'authentification existant

Bien que les clés d'accès simplifient et sécurisent votre authentification, le fait de conserver les anciens mécanismes revient à laisser une faille. 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 est une tâche difficile pour les utilisateurs. Nous vous recommandons vivement d'utiliser un gestionnaire de mots de passe intégré au système ou autonome. En apportant une petite modification au formulaire de connexion, les sites Web et les applications peuvent améliorer considérablement la sécurité et l'expérience de connexion. Découvrez comment apporter ces modifications :

Authentification à deux facteurs

Bien que l'utilisation d'un gestionnaire de mots de passe aide les utilisateurs à gérer leurs mots de passe, tous ne l'utilisent pas. Il est courant de demander un identifiant supplémentaire appelé mot de passe à usage unique (OTP) pour protéger ces utilisateurs. Les codes secrets sont généralement fournis par e-mail, par SMS ou par une application d'authentification telle que Google Authenticator. Comme les codes secrets à usage unique sont généralement de courts textes générés de manière dynamique et valables uniquement pendant une période limitée, ils réduisent la probabilité de piratage de compte. Ces méthodes ne sont pas aussi robustes qu'une clé d'accès, mais elles sont bien meilleures que de laisser les utilisateurs avec un simple mot de passe.

Si vous sélectionnez le SMS comme méthode d'envoi d'un code secret à usage unique, consultez les bonnes pratiques suivantes pour simplifier l'expérience utilisateur lors de la saisie du code.

Fédération d'identité

La fédération d'identité est une autre option permettant aux utilisateurs de se connecter de manière sécurisée et facile. Grâce à la fédération d'identité, les sites Web et les applications peuvent permettre aux utilisateurs de se connecter à l'aide de leur identité provenant d'un fournisseur d'identité tiers. Par exemple, Se connecter avec Google génère d'excellentes conversions pour les développeurs, et les utilisateurs le trouvent plus facile et préférable à l'authentification par mot de passe. La fédération d'identité est complémentaire des clés d'accès. C'est un excellent moyen de s'inscrire, car le site Web ou l'application peuvent obtenir des informations de profil de base de l'utilisateur en une seule étape. Les clés d'accès sont quant à elles 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é pourront être affectés en fonction de leur conception. Pour atténuer cet impact, une nouvelle API de navigateur appelée Federated Credential Management API (FedCM en abrégé) 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 dans laquelle un service envoie 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 avoir à se souvenir d'un mot de passe, le fait de passer du navigateur/de l'application au client de messagerie peut être source de friction. De plus, comme le mécanisme d'authentification repose sur l'adresse e-mail, la faible sécurité du fournisseur de messagerie peut mettre en danger 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 Credential Manager. Pour en savoir plus, consultez les ressources suivantes :

Expérience utilisateur

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