- Clés d’identification de la connexion universelle pour les applications Web.
- API de clés d’identification pour les applications mobiles natives (iOS, Android) et les applications Web.
- Connexion intégrée pour les applications Web et natives
Avant de commencer
Configurer un domaine personnaliséLes clés d’identification natives nécessitent l’utilisation d’un . Avant de continuer, assurez-vous d’avoir configuré un domaine personnalisé pour votre locataire. Pour en savoir plus, consultez Domaines personnalisés.Configurer votre politique de clés d’identificationAvant de pouvoir implémenter des clés d’identification natives pour les applications Android ou iOS, vous devez configurer une politique de clés d’identification dans votre locataire Auth0. Pour préparer votre locataire, suivez les étapes de la section Configurer la politique de clés d’identification.Préparer votre applicationToutes les applications utilisant les API de clés d’identification doivent ajouter le type d’autorisation
Passkey et configurer le Relying Party ID (RP ID). Selon votre plateforme, vous devrez peut-être aussi configurer des paramètres supplémentaires au moyen de votre ou de la .Comment ça fonctionne
Les API de clés d’identification utilisent une combinaison de l’Authentication API d’Auth0 et d’API d’identifiants propres à la plateforme pour intégrer les flux de défi directement dans votre application. Pour les applications mobiles natives, cela signifie utiliser les API de plateforme iOS ou Android. Pour les applications Web, cela signifie utiliser l’API de navigateur WebAuthn. Cela vous permet de créer une expérience intégrée d’inscription et de connexion qui ne repose pas sur la redirection des utilisateurs vers leur navigateur pour effectuer l’authentification. L’exemple suivant illustre ce qu’un nouvel utilisateur peut vivre pendant le flux d’inscription par clé d’identification :- Un nouvel utilisateur lance votre application mobile et accède à l’écran de connexion. Comme il s’agit d’un nouvel utilisateur, il sélectionne S’inscrire.
- À l’écran suivant, l’utilisateur saisit son adresse courriel et sélectionne Créer un compte.
- Ensuite, on demande à l’utilisateur s’il souhaite créer une clé d’identification pour votre application. Pour continuer, l’utilisateur sélectionne Continuer.
- Pour générer une clé d’identification, l’utilisateur doit s’authentifier localement sur son appareil au moyen de données biométriques ou d’une autre méthode d’authentification, comme la saisie d’un NIP.
- Une fois l’authentification locale terminée, une nouvelle clé d’identification est enregistrée sur l’appareil de l’utilisateur et synchronisée avec son fournisseur de clés d’identification, comme le Trousseau iCloud ou le Gestionnaire de mots de passe Google.
- Une fois la clé d’identification enregistrée, l’utilisateur poursuit votre processus d’enregistrement de nouvel utilisateur pour finaliser son compte.
Configurer les paramètres de l’appareil
- iOS
- Android
- Web
Configurer les paramètres de l’appareil dans Auth0 Dashboard :
- Accédez à Applications > Applications et sélectionnez votre application.
- Au bas de l’onglet Paramètres, sélectionnez Paramètres avancés.
- Choisissez l’onglet Paramètres de l’appareil.
- Dans la section iOS, saisissez vos ID provenant d’Apple :
- Team ID
- App ID
- Sélectionnez Enregistrer les modifications.
-
Auth0 héberge automatiquement le fichier
apple-app-site-associationsur le domaine personnalisé de votre locataire à l’adressehttps://YOUR_CUSTOM_DOMAIN/.well-known/apple-app-site-association, en fonction du Team ID et de l’App ID que vous configurez. Vous n’avez pas besoin d’héberger ce fichier vous-même. -
Dans Xcode, activez le droit Associated Domains et ajoutez une entrée pour votre domaine personnalisé dans un format semblable :
webcredentials:YOUR_CUSTOM_DOMAIN.
Activer le type d’autorisation Passkey
Pour activer le type d’autorisation Passkey sur toutes les plateformes :
- Accédez à Applications > Applications et sélectionnez votre application.
- Dans la section Paramètres avancés, sélectionnez l’onglet Types d’autorisation.
- Activez le type d’autorisation Clé d’identification, puis sélectionnez Enregistrer les modifications.
- Mettez à jour
grant_typespour inclureurn:okta:params:oauth:grant-type:webauthn. - Pour les applications natives, utilisez l’objet
mobilepour spécifier les paramètres d’appareil iOS et Android au besoin.
Relying party ID (rpId)
Pour que les utilisateurs finaux puissent s’authentifier avec une seule clé d’identification dans différents types d’applications ou dans des types d’applications ayant différents sous-domaines, définissez le relying party ID sur le domaine racine ou parent dans Auth0 Dashboard > Paramètres du locataire.
Implémenter les flux de clés d’identification
Vous pouvez définir les flux de clés d’identification suivants pour votre application :- Flux d’inscription : permet aux nouveaux utilisateurs de générer et d’enregistrer une clé d’identification pendant le processus d’enregistrement de l’utilisateur.
- Flux de connexion : permet à un utilisateur existant qui s’est déjà enrôlé aux clés d’identification de s’authentifier avec sa clé d’identification enregistrée pendant le processus de connexion.
- Flux d’enrôlement : permet aux utilisateurs existants d’ajouter une clé d’identification à leur compte après l’authentification.
Flux d’inscription
Un utilisateur amorce le flux d’inscription par clé d’identification lors de sa première tentative de connexion à votre application. Si l’utilisateur fournit un identifiant qui existe déjà, nous recommandons de l’inviter plutôt à effectuer le flux de connexion. Sinon, l’action échouera.- Votre application amorce le défi d’inscription en appelant le terminal
POST /passkey/register:
- Si vous ne spécifiez pas de
realm, le répertoire par défaut de votre locataire est utilisé. - Par défaut,
emailest l’identifiant requis. Si vous avez activé Flexible Identifiers pour votre connexion de base de données, vous pouvez utiliser une combinaison deemail,phone_numberouusernameà la place.
- Auth0 renvoie
PublicKeyCredentialCreationOptionsnécessaire à la création de clés d’identification, ainsi qu’un IDauth_session:
- Votre application crée une clé d’identification sur l’appareil de l’utilisateur à l’aide du
PublicKeyCredentialCreationOptionsrenvoyé. La méthode dépend de votre plateforme :
- iOS
- Android
- Web
Utilisez
ASAuthorizationPlatformPublicKeyCredentialProvider pour créer l’identifiant avec Face ID, Touch ID ou le NIP de l’appareil. Pour en savoir plus, consultez la documentation d’enregistrement iOS.- Votre application utilise les informations d’identifiant issues du processus d’enregistrement pour appeler le terminal
POST /oauth/tokenafin d’échanger les identifiants contre des jetons :
- Auth0 crée un nouveau compte d’utilisateur et renvoie les jetons demandés, comme le montre l’exemple de réponse ci-dessous :
Flux de connexion
Un utilisateur existant amorce le flux de connexion par clé d’identification lorsqu’il tente de se connecter à votre application. Ce flux s’applique uniquement aux utilisateurs existants qui ont enregistré des clés d’identification dans leur compte lors de l’inscription initiale.- Votre application appelle le terminal
POST /passkey/challengepour amorcer le défi de connexion :
Si vous ne spécifiez pas de
realm, le répertoire par défaut de votre locataire est utilisé.- Auth0 renvoie
PublicKeyCredentialRequestOptionsainsi qu’unauth_session:
- Votre application utilise le
PublicKeyCredentialRequestOptionsrenvoyé pour récupérer une clé d’identification à partir de l’appareil de l’utilisateur. La méthode dépend de votre plateforme :
- iOS
- Android
- Web
Utilisez
ASAuthorizationPlatformPublicKeyCredentialProvider pour récupérer l’identifiant avec Face ID, Touch ID ou le NIP de l’appareil. Pour en savoir plus, consultez la documentation de connexion iOS.- Votre application utilise les informations d’identifiant issues du processus de connexion pour appeler le terminal
POST /oauth/tokenafin d’échanger les identifiants contre des jetons :
- Auth0 authentifie les identifiants et renvoie les jetons demandés :
Flux d’enrôlement
Le flux d’enrôlement permet aux utilisateurs d’ajouter une clé d’identification à leur compte après s’être déjà authentifiés au moyen d’une autre méthode, comme un nom d’utilisateur et un mot de passe. Lorsqu’un utilisateur existant et authentifié souhaite enrôler une nouvelle clé d’identification, utilisez la My Account API.Avant de commencer
Avant d’amorcer le flux d’enrôlement, assurez-vous de ce qui suit :
- Activez la My Account API pour votre locataire.
- Récupérez un jeton d’accès ayant la permission
create:me:authentication_methodspour le terminal/me.
- Votre application authentifiée appelle le terminal
POST /me/v1/authentication-methodsavec le jeton d’accès :
- Auth0 renvoie un défi et un ID de session :
- Votre application utilise le
PublicKeyCredentialCreationOptionsrenvoyé pour créer une clé d’identification sur l’appareil de l’utilisateur, en suivant les mêmes étapes propres à la plateforme que le flux d’inscription :
- iOS
- Android
- Web
Utilisez
ASAuthorizationPlatformPublicKeyCredentialProvider pour créer l’identifiant avec Face ID, Touch ID ou le NIP de l’appareil. Pour en savoir plus, consultez la documentation d’enregistrement iOS.- Une fois que l’utilisateur a créé la clé d’identification avec son authentifiant, appelez le terminal
POST /me/v1/authentication-methods/passkey|new/verifypour terminer l’enrôlement :
Relying party ID
Une clé d’identification créée dans l’une de vos applications peut servir à se connecter à vos autres applications, qu’il s’agisse d’applications natives ou Web, lorsque ces applications partagent le même relying party ID (rpId). Cela fonctionne parce que les fournisseurs de clés d’identification (Trousseau iCloud, Gestionnaire de mots de passe Google, 1Password, Dashlane et autres) synchronisent les identifiants entre les appareils de l’utilisateur au sein du même fournisseur.
Déplacer les utilisateurs entre les plateformes
Dans la plupart des cas, les utilisateurs n’ont pas besoin de balayer un code QR ni d’utiliser un deuxième appareil. Le flux dépend du fait que la clé d’identification soit déjà disponible ou non sur l’appareil qu’ils utilisent :- Même fournisseur, appareil différent (le plus courant) : un utilisateur enrôle une clé d’identification dans votre application iOS; son Trousseau iCloud la synchronise vers son Mac, où il peut se connecter immédiatement à votre application Web. Il en va de même pour les clés d’identification Android synchronisées au moyen du Gestionnaire de mots de passe Google vers Chrome sur un Chromebook ou un PC Windows connecté au même compte Google.
- Entre écosystèmes ou appareil partagé (moins courant) : si la clé d’identification n’est pas disponible sur l’appareil utilisé (par exemple, une clé d’identification d’iPhone utilisée sur un PC Windows ou un ordinateur public), le navigateur propose un code QR pour s’authentifier au moyen du téléphone de l’utilisateur à l’aide du transport hybride (CTAP 2.2). L’utilisateur conserve sa clé d’identification sur son téléphone; le code QR ne fait que relier les deux appareils pour cette connexion unique.
Choisir votre relying party ID
LerpId détermine quelles origines peuvent utiliser une clé d’identification. Auth0 définit le rpId sur votre domaine personnalisé par défaut. Choisissez le rpId qui correspond le mieux à la portée sur laquelle vous souhaitez que les clés d’identification fonctionnent — et pas plus large.
Recommandé : utilisez un domaine parent dont la portée couvre vos surfaces d’authentification et de produit, comme auth.example.com ou accounts.example.com. Une clé d’identification créée avec “rpId=auth.example.com fonctionne sur auth.example.com et sur tout sous-domaine de celui-ci (par exemple, app.auth.example.com, m.auth.example.com).
Évitez d’utiliser votre eTLD+1 (apex enregistrable) comme rpId — par exemple, example.com. Définir le rpId à ce niveau permet à chaque sous-domaine de example.com de demander et d’utiliser ces clés d’identification, y compris les sites de marketing, les services hébergés par des tiers ou les domaines exploités par d’autres équipes. Cela étend le périmètre de confiance bien au-delà de votre surface d’authentification.
Pour en savoir plus sur le relying party ID, lisez Analyse approfondie du RP ID.
Scénarios multidomaines et de marque
Si vous desservez plusieurs domaines de marque (p. ex.,login.brand1.com et login.brand2.com), les clés d’identification ne fonctionnent pas automatiquement de l’un à l’autre — chaque domaine possède son propre rpId. Lisez Clés d’identification avec plusieurs domaines personnalisés pour obtenir des conseils sur les modèles d’enrôlement, de communication et de migration propres à chaque domaine.
Liste de vérification de la configuration
Une fois que vous avez choisi unrpId, assurez-vous que toutes vos applications le partagent :
- Utilisez un seul domaine personnalisé comme
rpIdpour chaque application native et Web qui doit partager des clés d’identification. - Pour les applications natives, configurez les Paramètres de l’appareil dans Auth0 Dashboard avec vos Team ID/App ID iOS et votre nom de package/empreinte SHA-256 Android. Auth0 héberge automatiquement les fichiers
apple-app-site-associationetassetlinks.jsonsur votre domaine personnalisé. - Pour les applications Web, servez votre origine Web à partir du
rpIdou d’un de ses sous-domaines, et ajoutez-la aux Origines Web autorisées pour le CORS.
En savoir plus
Vous pouvez consulter les ressources suivantes lors de l’implémentation de l’authentification par clé d’identification pour votre application :-
API d’Auth0
- Authentication API : passez en revue les terminaux d’authentification par clé d’identification.
- My Account API : renseignez-vous sur les terminaux d’enrôlement de clés d’identification.
- Documentation de la My Account API : découvrez l’activation, les permissions et le CORS.
- Documentation des plateformes
-
Ressources supplémentaires
- passkeys.dev : un guide complet d’implémentation des clés d’identification.