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.
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 les connexions sans mot de passe
- Sur Android: Intégrer l'authentification simplifiée à vos applications avec des clés d'accès à l'aide de l'API Gestionnaire d'identifiants
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.
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 la saisie automatique du formulaire
- Sur Android: Intégrer l'authentification simplifiée à vos applications avec des clés d'accès à l'aide de l'API Gestionnaire d'identifiants
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:
- Bonnes pratiques concernant le formulaire de connexion (Web)
- Bonnes pratiques concernant le formulaire d'inscription (Web)
- Connecter un utilisateur avec le Gestionnaire d'identifiants (Android)
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.
- Bonnes pratiques concernant les formulaires OTP envoyés par SMS (Web)
- Validation automatique par SMS avec l'API SMS Retriever (Android)
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.
- API Federated Credential Management (Web, FedCM)
- Présentation de la fonctionnalité 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 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:
- Créer une clé d'accès pour les connexions sans mot de passe: article expliquant comment autoriser les utilisateurs à créer des clés d'accès pour un site Web.
- Se connecter avec une clé d'accès via la saisie automatique d'un formulaire: article expliquant comment concevoir une connexion sans mot de passe avec des clés d'accès tout en tenant compte des utilisateurs de mots de passe existants.
- Implémenter des clés d'accès avec le remplissage automatique de formulaire dans une application Web: cet atelier de programmation vous explique comment implémenter des clés d'accès avec saisie automatique de formulaire dans une application Web afin de créer une connexion plus simple et plus sûre.
- Découvrez comment implémenter des clés d'accès avec le remplissage automatique de formulaire dans une application Web: vidéo d'atelier qui couvre l'atelier de programmation Implémenter des clés d'accès avec saisie automatique de formulaire dans une application Web pour implémenter des clés d'accès avec saisie automatique de formulaire dans une application Web afin de créer une connexion plus simple et plus sûre.
- Créer votre première application WebAuthn: atelier de programmation qui vous permet d'apprendre à créer une fonctionnalité de réauthentification simple avec une clé d'accès sur votre site Web.
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:
- Connecter votre utilisateur avec le Gestionnaire d'identifiants: article expliquant comment intégrer le Gestionnaire d'identifiants sur Android. Le Gestionnaire d'identifiants est une API Jetpack compatible avec plusieurs méthodes de connexion, telles que le nom d'utilisateur et le mot de passe, les clés d'accès et des solutions de connexion fédérée (comme Se connecter avec Google) dans une seule API.
- Intégrer une authentification simplifiée à vos applications avec des clés d'accès à l'aide de l'API Credential Manager : article expliquant comment intégrer des clés d'accès via le Gestionnaire d'identifiants sur Android.
- Découvrez comment simplifier les parcours d'authentification à l'aide de l'API Gestionnaire d'identifiants dans votre application Android : découvrez comment implémenter cette API pour fournir une authentification fluide et sécurisée dans votre application à l'aide de clés d'accès ou d'un mot de passe.
- Exemple d'application du Gestionnaire d'identifiants : exemple de code qui exécute le Gestionnaire d'identifiants en fonction des clés d'accès.
- Intégrer le Gestionnaire d'identifiants à votre solution de fournisseur d'identifiants | Développeurs Android
Expérience utilisateur
Découvrez les recommandations concernant l'expérience utilisateur pour les clés d'accès: