/passwordless/start avec une connexion Passwordless dédiée, vous pouvez plutôt utiliser votre connexion de base de données existante. Pour utiliser l’authentification sans mot de passe avec Universal Login, consultez Authentification sans mot de passe sur les connexions de base de données.
L’autorisation Passwordless OTP n’est pas offerte pour les applications de type application monopage (SPA). Si votre interface utilisateur est une application monopage, effectuez les requêtes
/otp/challenge et /oauth/token à partir d’une application dorsale pour laquelle l’autorisation Passwordless OTP est activée.POST /otp/challenge— envoyer un code à usage unique au courriel ou au téléphone de l’utilisateur.POST /oauth/token— échanger le code saisi par l’utilisateur contre des jetons.
Comment ça fonctionne
- L’utilisateur saisit une adresse courriel ou un numéro de téléphone dans votre application.
- Votre application appelle le point de terminaison
POST /otp/challenge. - Le serveur d’autorisation Auth0 envoie un code à usage unique à l’adresse courriel ou au numéro de téléphone de l’utilisateur.
- Le serveur d’autorisation Auth0 renvoie une valeur
auth_session. Stockez cette valeur : aucun autre état n’est requis. - L’utilisateur reçoit le code et le saisit dans l’interface utilisateur de votre application.
- Votre application appelle le point de terminaison
POST /oauth/tokenavecauth_sessionet le code saisi par l’utilisateur. - Le serveur d’autorisation Auth0 vérifie le code associé à
auth_sessionet renvoie un jeton d’ID et un jeton d’accès (et, facultativement, un jeton d’actualisation).
auth_session renvoyée à l’étape 4. Auth0 détermine si la requête concerne une connexion ou une inscription, et si l’AMF est requise : vous n’avez pas à gérer cela vous-même. Pour en savoir plus, consultez Comment Auth0 détermine s’il s’agit d’une connexion ou d’une inscription.
Avant de commencer
- Configurez
email_otpet/ouphone_otpcomme méthodes d’authentification dans votre connexion de base de données. Pour en savoir plus, consultez Passwordless Authentication on Database Connections. - Activez la vérification OTP pour les inscriptions si vous souhaitez que les utilisateurs s’inscrivent au moyen du flux d’inscription implicite. Pour en savoir plus, consultez Passwordless Authentication on Database Connections.
- Activez le type d’octroi Passwordless OTP dans Auth0 Dashboard ou l’API Management. Pour en savoir plus, consultez Mettre à jour les types d’octroi.
- Les applications confidentielles, telles que les applications Web dorsales, doivent envoyer
client_secretdans les deux requêtes. Les clients publics, tels que les applications natives, n’ont pas à le faire. - Pour l’OTP vocal, activez Unified Phone Experience afin de pouvoir utiliser la voix comme canal de transmission.
Initier la demande d’OTP
auth_session opaque.
Paramètres
Le nom du champ (
email ou phone_number) indique à Auth0 quel canal utiliser. Il n’est pas nécessaire d’envoyer un type d’identifiant distinct.
Réponse
/otp/challenge renvoie 200 OK que l’utilisateur existe ou non. Cela empêche l’énumération des utilisateurs. Un pirate ne peut pas utiliser l’endpoint pour déterminer quels identifiants sont associés à des comptes. Traitez auth_session comme une chaîne opaque : stockez-la et transmettez-la telle quelle lors de la requête suivante.
Échangez le code contre des jetons
auth_session de la requête précédente.
Paramètres
Réponse
Inscription implicite
allow_signup: false. Vous pouvez transmettre allow_signup: true à POST /otp/challenge pour qu’une vérification OTP réussie crée le compte si l’utilisateur n’existe pas encore et que l’inscription est activée pour la connexion.
allow_signup: false: Auth0 ne crée jamais d’utilisateur. Les identifiants inconnus échouent lors de l’échange de jetons.allow_signup: true: Si l’utilisateur n’existe pas et que la connexion autorise l’inscription, le compte est créé lors de la vérification de l’OTP et les jetons sont émis à la même étape.
Comment Auth0 distingue la connexion de l’inscription
auth_session. Lors de l’échange de jetons, Auth0 recherche la session et effectue l’action appropriée.
Par conception, le cas d’un compte bloqué renvoie la même erreur qu’un OTP incorrect afin que la réponse ne révèle jamais si un compte existe.
Authentification multifacteur
POST /oauth/token renvoie une erreur mfa_required avec le code 403 :
mfa_token pour envoyer une requête à l’API MFA afin de soumettre une demande de vérification et de vérifier le facteur supplémentaire. Ce processus est conforme au fonctionnement de la MFA pour tous les autres types d’autorisation Auth0.
Réponses d’erreur
error et une error_description lisible par l’utilisateur. Les échecs de validation des paramètres (400) comprennent également un tableau validation_errors qui indique les champs concernés.
POST /otp/challenge
POST /oauth/token
Limites de débit
POST /otp/challenge est limité à 50 requêtes par heure et par adresse IP, en plus des limites de débit globales de l’Authentication API. Tout dépassement de cette limite renvoie 429 Too Many Requests.
Les réponses soumises à une limite de débit comprennent les en-têtes suivants :
Limites
- Les applications monopages (SPA) ne peuvent pas utiliser ces endpoints directement, car le grant Passwordless OTP ne peut pas être activé pour les applications de type SPA. Faites transiter les requêtes par une application côté serveur pour laquelle ce grant est activé.
- Les applications confidentielles doivent envoyer
client_secretdans les deux requêtes. - Authentication API authentifie les utilisateurs à l’aide de connexions de base de données configurées avec un OTP par courriel ou par téléphone. Elle ne remplace pas
/passwordless/startpour les connexions passwordless dédiées par courriel ou SMS.