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 quelques composants:
- Partie de confiance: dans le contexte des clés d'accès, un tiers de confiance gère l'émission et l'authentification des clés d'accès. Le 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 avec 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 vérifier 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.
Parcours 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 composants clés:
- RP ID: indiquez l'ID du tiers de confiance sous la forme d'un domaine Web.
- Informations sur l'utilisateur: l'ID de l'utilisateur, son nom et un nom à afficher.
- 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: permet d'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"). 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 avec 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 une 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: Authentification simplifiée pour vos applications avec des clés d'accès grâce à 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 l'authentification avec une clé d'accès, vous devez fournir quelques composants 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, des identifiants de clé publique sont renvoyés. 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 des formulaires
- Sur Android: Authentification simplifiée pour vos applications avec des clés d'accès grâce à 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 clés tels qu'un défi, des informations utilisateur, les ID d'identifiants à exclure, etc. Il vérifie 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 l'authentification avec une clé d'accès, le serveur doit soigneusement valider les identifiants et valider 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 d'une clé d'accès côté serveur
- 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 prenez en charge 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 envie d'éliminer la méthode d'authentification la plus faible dès que possible, mais cela peut prêter à confusion ou ne pas laisser de côté certains d'entre eux. Nous vous recommandons de conserver la méthode d'authentification existante pour le moment.
Plusieurs raisons peuvent l'expliquer:
- Il existe des utilisateurs dans un environnement incompatible avec les clés d'accès: la compatibilité des clés d'accès s'étend largement à plusieurs systèmes d'exploitation et navigateurs, mais ceux qui utilisent d'anciennes versions ne peuvent pas encore se servir de clés d'accès.
- L'écosystème des clés d'accès n'est pas encore mature: il é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: d'autres hésitent à se lancer dans de nouvelles choses. Au fur et à mesure de l'évolution de l'écosystème des clés d'accès, ils auront une idée de leur fonctionnement et de leur utilité.
Réexaminer votre mécanisme d'authentification existant
Alors que les clés d'accès rendent votre authentification plus simple et plus sûre, conserver les anciens mécanismes revient à laisser une marge. 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 des tâches difficiles pour les utilisateurs. Nous vous recommandons vivement d'utiliser un gestionnaire de mots de passe intégré au système ou un gestionnaire autonome. Si vous modifiez légèrement le formulaire de connexion, les sites Web et les applications peuvent avoir un impact considérable sur leur sécurité et l'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. Il est courant de demander un identifiant supplémentaire appelé mot de passe à usage unique (OTP) 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. Les mots de passe à usage unique correspondent généralement à un texte court généré dynamiquement et valable uniquement pendant une durée limitée, ce qui réduit le risque de piratage de compte. Ces méthodes ne sont pas aussi robustes qu'une clé d'accès, mais beaucoup mieux que de laisser les utilisateurs avec un simple mot de passe.
Si vous sélectionnez l'envoi d'un mot de passe à usage unique par SMS, suivez les bonnes pratiques ci-dessous pour simplifier l'expérience utilisateur lors de la saisie de ce mot de passe à usage unique.
- Bonnes pratiques concernant les formulaires OTP envoyés par SMS (Web)
- Validation automatique des 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 peuvent obtenir des informations de profil de base de l'utilisateur en une seule étape, tandis que les clés d'accès sont idéales pour simplifier la réauthentification.
Gardez à l'esprit 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 l'impact, une nouvelle API de navigateur appelée Federated Credential Management (FedCM) est en cours de développement. Si vous exécutez 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 par 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 basculement entre le navigateur/l'application et le client de messagerie peut s'avérer compliqué. En outre, comme le mécanisme d'authentification repose sur l'adresse e-mail, la faible 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 de formulaire: article expliquant comment concevoir une connexion sans mot de passe à l'aide de 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: 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 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 des formulaires 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 un 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 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 à l'aide de l'API Gestionnaire d'identifiants : 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 l'API Gestionnaire d'identifiants pour fournir une authentification simple et sécurisée dans votre application à l'aide de clés d'accès ou de mots 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: