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.
Découvrez en détail comment créer et enregistrer une clé d'accès :
- Sur le Web : créer une clé d'accès pour se connecter sans mot de passe
- Sur Android : Authentification simplifiée pour vos applications avec des clés d'accès grâce à l'API Credential Manager
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.
Découvrez en détail comment vous authentifier avec une clé d'accès :
- Sur le Web : Se connecter avec une clé d'accès via le remplissage automatique de formulaire
- Sur Android : Authentification simplifiée pour vos applications avec des clés d'accès grâce à l'API Credential Manager
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 :
- Présentation de l'implémentation côté serveur des clés d'accès
- Enregistrement de clés d'accès côté serveur
- Authentification par clé d'accès 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 :
- Bonnes pratiques concernant le formulaire de connexion (Web)
- Bonnes pratiques concernant les formulaires d'inscription (Web)
- Connecter un utilisateur avec Credential Manager (Android)
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.
- Bonnes pratiques concernant le formulaire OTP par SMS (Web)
- Vérification automatique par SMS avec l'API SMS Retriever (Android)
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.
- API Federated Credential Management (Web, FedCM)
- Présentation de Se connecter avec Google pour le Web (Web, Se connecter avec Google)
- Présentation de la connexion avec One Tap sur Android (Android, connexion avec One Tap)
"Liens magiques"
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 :
- Créer une clé d'accès pour se connecter sans mot de passe : article expliquant comment permettre aux utilisateurs de créer des clés d'accès pour un site Web.
- Se connecter avec une clé d'accès via le remplissage automatique de formulaire : article expliquant comment concevoir une connexion sans mot de passe à l'aide de clés d'accès tout en gérant les utilisateurs de mot de passe existants.
- Implémenter des clés d'accès avec le remplissage automatique de formulaire dans une application Web : atelier de programmation qui vous permet d'apprendre à implémenter des clés d'accès avec le remplissage automatique de formulaire dans une application Web pour créer une procédure de connexion plus simple et sécurisée.
- Aidez les utilisateurs à gérer efficacement les clés d'accès : pour exploiter pleinement le potentiel des clés d'accès, il est essentiel de réfléchir attentivement à l'expérience utilisateur liée à leur gestion. Ce document présente des consignes et des fonctionnalités facultatives pour concevoir un système de gestion des clés d'accès intuitif, sécurisé et robuste.
- Clés d'accès sécurisées et fluides : checklist de déploiement : cette checklist vous guidera à travers les aspects clés de l'implémentation des clés d'accès pour obtenir une expérience utilisateur (UX) optimale.
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 :
- Connecter un utilisateur avec Credential Manager : article expliquant comment intégrer Credential Manager sur Android. Credential Manager est une API Jetpack qui prend en charge plusieurs méthodes de connexion, comme le nom d'utilisateur et le mot de passe, les clés d'accès et les solutions de connexion fédérée (comme Se connecter avec Google) dans une seule API.
- Authentification simplifiée pour vos applications avec des clés d'accès grâce à l'API Credential Manager : article expliquant comment intégrer des clés d'accès via Credential Manager sur Android.
- Découvrez comment simplifier les parcours d'authentification à l'aide de l'API Credential Manager dans votre application Android : Découvrez comment implémenter l'API Credential Manager pour fournir une authentification fluide et sécurisée dans votre application à l'aide de clés d'accès ou de mots de passe.
- Exemple d'application Credentials Manager : exemple de code qui exécute le Gestionnaire d'identifiants compatible avec les clés d'accès.
- Intégrer le Gestionnaire d'identifiants à la solution de votre fournisseur d'identifiants | Développeurs Android
Expérience utilisateur
Découvrez les recommandations concernant l'expérience utilisateur avec les clés d'accès :