- Clés d’accès Universal Login pour les applications Web.
- API de clés d’accès pour les applications mobiles natives (iOS, Android) et les applications Web.
- Connexion intégrée pour les applications Web et natives
Avant de commencer
Configurez un domaine personnaliséLes clés d’accès natives exigent l’utilisation d’un . Avant de continuer, assurez-vous d’avoir configuré un domaine personnalisé pour votre tenant. Pour en savoir plus, consultez Custom Domains.Configurez votre politique de clés d’accèsAvant de pouvoir mettre en œuvre les clés d’accès natives pour les applications Android ou iOS, vous devez configurer une politique de clés d’accès dans votre tenant Auth0. Pour préparer votre tenant, suivez les étapes de Configure Passkey Policy.Préparez votre applicationToutes les applications qui utilisent les API de clés d’accès doivent ajouter l’autorisation
Passkey et configurer le Relying Party ID (RP ID). Selon votre plateforme, vous devrez peut-être également configurer des paramètres supplémentaires dans votre ou au moyen de la .Fonctionnement
- Un nouvel utilisateur lance votre application mobile et accède à l’écran de connexion. Comme il est nouvel utilisateur, il sélectionne S’inscrire.
- À l’écran suivant, l’utilisateur saisit son adresse courriel et sélectionne Créer un compte.
- L’utilisateur doit ensuite indiquer s’il souhaite créer une clé d’accès pour votre application. Pour continuer, il sélectionne Continuer.
- Pour générer une clé d’accès, l’utilisateur doit s’authentifier localement sur son appareil à l’aide 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’accès est enregistrée sur l’appareil de l’utilisateur et synchronisée avec son fournisseur de clés d’accès, comme iCloud Keychain ou Google Password Manager.
- Une fois la clé d’accès enregistrée, l’utilisateur poursuit le processus d’enregistrement d’un nouvel utilisateur afin de finaliser son compte.
Configurer les paramètres de l’appareil
- iOS
- Android
- Web
Configurer les paramètres de l’appareil dans le tableau de bord Auth0 :
- Accédez à Applications > Applications et sélectionnez votre application.
- Au bas de l’onglet Settings, sélectionnez Advanced Settings.
- Sélectionnez l’onglet Device Settings.
- Dans la section iOS, saisissez vos identifiants Apple :
- Team ID
- App ID
- Sélectionnez Save Changes.
-
Auth0 héberge automatiquement le fichier
apple-app-site-associationsur le domaine personnalisé de votre tenant, à l’adressehttps://YOUR_CUSTOM_DOMAIN/.well-known/apple-app-site-association, selon le Team ID et l’App ID que vous configurez. Vous n’avez pas besoin d’héberger ce fichier vous-même. -
Dans Xcode, activez l’autorisation Associated Domains et ajoutez une entrée pour votre domaine personnalisé dans un format semblable :
webcredentials:YOUR_CUSTOM_DOMAIN.
Activez le type d’autorisation Passkey
Passkey sur toutes les plateformes :
- Accédez à Applications > Applications et sélectionnez votre application.
- Dans la section Advanced Settings, sélectionnez l’onglet Grant Types.
- Activez le type d’autorisation Passkey, puis sélectionnez Save Changes.
- Mettez à jour
grant_typespour inclureurn:okta:params:oauth:grant-type:webauthn. - Pour les applications Native, utilisez l’objet
mobileafin de spécifier les paramètres des appareils iOS et Android, au besoin.
ID de la partie utilisatrice (rpId)
Implémenter des flux de clés d’accès
- Flux d’inscription : permet aux nouveaux utilisateurs de générer et d’enregistrer une clé d’accès lors de leur inscription.
- Flux de connexion : permet aux utilisateurs existants déjà enrôlés pour les clés d’accès de s’authentifier à l’aide de leur clé d’accès enregistrée lors de la connexion.
- Flux d’enrôlement : permet aux utilisateurs existants d’ajouter une clé d’accès à leur compte après l’authentification.
Flux d’inscription
- Votre application lance le défi d’inscription en envoyant une requête à l’endpoint
POST /passkey/register:
- Si vous ne précisez pas de
realm, l’annuaire de votre tenant est utilisé. - Par défaut,
emailest l’identifiant requis. Si vous avez activé Flexible Identifiers pour votre connexion à la base de données, vous pouvez plutôt utiliser une combinaison deemail,phone_numberetusername.
- Auth0 renvoie les
PublicKeyCredentialCreationOptionsnécessaires à la création de passkeys, ainsi qu’un IDauth_session:
- Votre application crée une passkey sur l’appareil de l’utilisateur à l’aide des
PublicKeyCredentialCreationOptionsrenvoyées. La méthode dépend de votre plateforme :
- iOS
- Android
- Web
Utilisez
ASAuthorizationPlatformPublicKeyCredentialProvider pour créer les informations d’identification avec Face ID, Touch ID ou le NIP de l’appareil. Pour en savoir plus, consultez la documentation sur l’enregistrement dans iOS.- Votre application utilise les informations d’identification issues du processus d’enregistrement pour appeler le point de terminaison
POST /oauth/tokenafin d’échanger les informations d’identification contre des jetons :
- Auth0 crée un compte d’utilisateur et renvoie les jetons demandés, comme dans l’exemple de réponse suivant :
Flux de connexion
- Votre application envoie une requête au endpoint
POST /passkey/challengepour lancer le défi de connexion :
Si vous ne précisez pas de
realm, l’annuaire par défaut de votre tenant est utilisé.- Auth0 renvoie
PublicKeyCredentialRequestOptionsavec uneauth_session:
- Votre application utilise les
PublicKeyCredentialRequestOptionsrenvoyées pour récupérer une passkey sur l’appareil de l’utilisateur’. La méthode varie selon votre plateforme :
- iOS
- Android
- Web
Utilisez
ASAuthorizationPlatformPublicKeyCredentialProvider pour récupérer les informations d’identification à l’aide de Face ID, de Touch ID ou du NIP de l’appareil. Pour en savoir plus, consultez la documentation sur la connexion iOS.- Votre application utilise les informations d’identification du processus de connexion pour appeler le endpoint
POST /oauth/tokenet échanger les informations d’identification contre des jetons :
- Auth0 authentifie les identifiants et renvoie les jetons demandés :
Enrôlement
Avant de commencer
Avant de commencer l’enrôlement, assurez-vous de suivre ces étapes :
- Activez la My Account API pour votre tenant.
- Obtenez un jeton d’accès doté de la portée
create:me:authentication_methodspour le point de terminaison/me.
- Votre application authentifiée envoie une requête au point de terminaison
POST /me/v1/authentication-methodsavec le jeton d’accès :
- Auth0 renvoie un challenge et un ID de session :
- Votre application utilise les
PublicKeyCredentialCreationOptionsrenvoyées pour créer une clé d’accès sur l’appareil de l’utilisateur en suivant les mêmes étapes propres à la plateforme que dans le flux d’inscription :
- iOS
- Android
- Web
Utilisez
ASAuthorizationPlatformPublicKeyCredentialProvider pour créer les identifiants avec Face ID, Touch ID ou le NIP de l’appareil. Pour en savoir plus, consultez la documentation sur l’enregistrement pour iOS.- Une fois que l’utilisateur a créé la clé d’accès à l’aide de son authentificateur, appelez le point de terminaison
POST /me/v1/authentication-methods/passkey|new/verifypour terminer l’enregistrement :
ID de partie utilisatrice
rpId). Cela est possible parce que les fournisseurs de clés d’accès (iCloud Keychain, Google Password Manager, 1Password, Dashlane et d’autres) synchronisent les identifiants entre les appareils de l’utilisateur au sein d’un même fournisseur.
Faire passer les utilisateurs d’une plateforme à l’autre
- Même fournisseur, appareil différent (le cas le plus courant) : un utilisateur enregistre une passkey dans votre application iOS ; son Keychain iCloud la synchronise avec son Mac, où il peut se connecter immédiatement à votre application Web. Il en va de même pour les passkeys Android synchronisées via Google Password Manager avec Chrome sur un Chromebook ou un PC Windows connecté au même compte Google.
- Écosystèmes différents ou appareil partagé (moins courant) : si la passkey n’est pas disponible sur l’appareil utilisé par l’utilisateur (par exemple, une passkey d’iPhone utilisée sur un PC Windows ou un ordinateur public), le navigateur propose un code QR pour s’authentifier à l’aide du téléphone de l’utilisateur au moyen du transport hybride (CTAP 2.2). L’utilisateur conserve sa passkey sur son téléphone ; le code QR ne fait le lien entre les deux appareils que pour cette connexion.
Choisissez votre ID de partie de confiance
rpId détermine quelles origines peuvent utiliser une clé d’accès. Par défaut, Auth0 définit le rpId sur votre domaine personnalisé. Choisissez le rpId qui correspond le mieux à la portée dans laquelle vous voulez que les clés d’accès fonctionnent — sans aller au-delà.
Recommandation : Utilisez un domaine parent qui englobe vos interfaces d’authentification et de produit, comme auth.example.com ou accounts.example.com. Une clé d’accès créée avec “rpId=auth.example.com fonctionne sur auth.example.com et sur tous ses sous-domaines (par exemple, app.auth.example.com, m.auth.example.com).
Évitez d’utiliser votre eTLD+1 (domaine racine 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’accès, y compris les sites de marketing, les services hébergés par des tiers ou les domaines exploités par d’autres équipes. Cela élargit la limite de confiance bien au-delà de votre interface d’authentification.
Pour en savoir plus sur l’ID de partie de confiance, consultez RP ID Deep Dive.
Scénarios à plusieurs domaines et images de marque
login.brand1.com et login.brand2.com), les clés d’accès ne fonctionnent pas automatiquement d’un domaine à l’autre : chaque domaine possède son propre rpId. Consultez Clés d’accès avec plusieurs domaines personnalisés pour obtenir des conseils sur l’inscription, la communication et les stratégies de migration propres à chaque domaine.
Liste de contrôle de la configuration
rpId, assurez-vous que toutes vos applications l’utilisent :
- Utilisez un même domaine personnalisé comme
rpIdpour toutes les applications natives et web qui doivent partager des clés d’accès. - Pour les applications natives, configurez les paramètres de l’appareil dans le Auth0 Dashboard avec votre Team ID/App ID iOS et le nom du package/l’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 de l’un de ses sous-domaines, et ajoutez-la aux Allowed Web Origins pour CORS.
En savoir plus
-
API Auth0
- Authentication API : Consultez les endpoints d’authentification par passkey.
- My Account API : Consultez les endpoints d’inscription de passkey.
- Documentation de My Account API : Découvrez l’activation, les scopes et CORS.
- Documentation des plateformes
-
Ressources supplémentaires
- passkeys.dev : Un guide complet de mise en œuvre des passkeys.