Passer au contenu principal
Auth0 vous permet de configurer l’authentification Passwordless par courriel et par téléphone directement sur une connexion de base de données. Au lieu de créer une connexion distincte pour l’authentification par code à usage unique (OTP), vous pouvez offrir l’authentification Passwordless directement à partir de votre connexion de base de données. Cela réduit la complexité de l’implémentation et simplifie l’expérience de connexion pour les utilisateurs finaux.
L’authentification Passwordless pour les connexions de base de données n’est pas prise en charge avec Classic Login.

Fonctionnement

Auth0 utilise une approche d’authentification Identifier-First dans laquelle les utilisateurs sont vérifiés au moyen de l’authentification OTP :
  1. Un utilisateur final saisit un identifiant pour se connecter avec le Universal Login d’Auth0.
  2. Auth0 recherche les méthodes d’authentification associées à chaque identifiant configuré dans votre connexion de base de données.
  3. L’option la plus appropriée est présentée à l’utilisateur en fonction de default_method et des méthodes d’authentification disponibles (par exemple, recevoir un OTP par courriel ou par téléphone, ou entrer un mot de passe).
  4. Si l’OTP est la méthode d’authentification retenue, Auth0 envoie un code à l’adresse courriel ou au numéro de téléphone de l’utilisateur.
  5. L’utilisateur saisit le code et est authentifié. Si vous avez configuré des passkeys, l’utilisateur est invité à suivre le processus d’inscription progressive aux passkeys.

Avant de commencer

  • Configurez votre locataire pour utiliser le profil d’authentification Identifier-First.
  • Si vous prévoyez utiliser l’OTP par téléphone (SMS ou voix), vous devez activer le paramètre Unified Phone Experience sous Branding > Phone Provider.
  • Les attributs doivent être activés dans la connexion de base de données.
  • Si vous prévoyez utiliser des connexions Passwordless existantes (héritées) conjointement avec l’authentification sans mot de passe sur des connexions de base de données, et que vous ne souhaitez pas configurer vos connexions Passwordless existantes pour utiliser Unified Phone Provider :
    1. Accédez à Auth0 Dashboard > Authentication > Passwordless.
    2. Sélectionnez Configure pour SMS.
    3. Assurez-vous que le paramètre Use Tenant-Level Messaging Provider est désactivé.

Configurer les attributs (identifiants)

Lorsque vous configurez l’authentification Passwordless par courriel et par téléphone dans des connexions de base de données, vous devez d’abord déterminer quels attributs vous voulez que les utilisateurs finaux fournissent à l’inscription et à la connexion. Consultez le type d’identifiant et la méthode d’authentification correspondante :
IdentifiantMéthode(s) d’authentification
CourrielMot de passe, OTP par courriel, clé d’accès
TéléphoneMot de passe, OTP par téléphone, clé d’accès
Nom d’utilisateurMot de passe
Pour les identifiants de courriel et de téléphone, si le mot de passe n’est pas activé, vous devez activer la vérification OTP pour l’inscription. Vous pouvez configurer les attributs de courriel et de téléphone comme facultatifs à l’inscription, afin que les utilisateurs puissent s’inscrire uniquement avec un courriel ou uniquement avec un numéro de téléphone. Lorsqu’un utilisateur s’authentifie au moyen d’un OTP par courriel, email_verified est automatiquement défini à true dans son profil. Lorsqu’un utilisateur s’authentifie au moyen d’un OTP par téléphone, phone_verified est automatiquement défini à true.
Si vous voulez que les utilisateurs finaux s’authentifient avec des clés d’accès, vous devez configurer une autre méthode d’authentification, comme le courriel ou le téléphone. L’authentification uniquement par clé d’accès n’est pas prise en charge.
Pour en savoir plus, consultez Activer et configurer les attributs pour les identifiants flexibles.

Créer une nouvelle connexion de base de données

Si vous n’avez pas de connexion de base de données existante, créez-en une à l’aide de l’Auth0 Dashboard ou de la Management API.
  1. Accédez à Auth0 Dashboard > Authentication > Database. Sélectionnez Create DB Connection pour créer la connexion.
  2. Entrez un nom unique pour votre connexion.
  3. Choisissez un ou plusieurs attributs que les utilisateurs finaux pourront utiliser pour se connecter ou s’inscrire.
  4. Sélectionnez votre ou vos méthodes d’authentification. Vous pourrez les configurer plus en détail une fois la connexion créée.
  5. Activez Disable Sign Ups si vous ne voulez pas que les utilisateurs puissent s’inscrire à l’aide de points de terminaison publics.
  6. Activez Promote Connection to Domain Level si vous voulez utiliser cette connexion avec des applications tierces.
  7. Sélectionnez Create.
Pour une véritable connexion Passwordless, effectuez aussi les étapes suivantes :
  1. Dans votre nouvelle connexion, sélectionnez l’onglet Attributes.
  2. Pour désactiver Username comme identifiant, sélectionnez Configure, puis désactivez Use Username as Identifier.
  3. Pour configurer les identifiants de courriel et de téléphone, sélectionnez Configure.
  • Pour les attributs de courriel, sélectionnez One-Time Password (OTP) sous Verification Methods et activez Verify email on sign up pour une configuration véritablement sans mot de passe. Cela garantit que email_verified est défini automatiquement afin que les utilisateurs soient toujours invités à fournir un OTP à la connexion et à l’inscription.
  1. Sélectionnez Save.
  2. Configurez les paramètres des méthodes d’authentification correspondant aux identifiants choisis. Vous ne pouvez pas désactiver le mot de passe à moins que phone_otp et/ou email_otp soient configurés.
  3. Sous les paramètres de mot de passe, sélectionnez Policy et choisissez Block pour :
    • Mot de passe à la connexion
    • Mot de passe à l’inscription
    • Modification du mot de passe en libre-service (mise à jour automatique)
  4. Activez Support users without a password.
    Vous pourriez obtenir une erreur si vous n’activez pas Support users without a password.
  5. Sélectionnez Save. Dans l’invite, sélectionnez Continue pour confirmer que vous comprenez que les utilisateurs existants pourraient être touchés.
  6. Accédez à l’onglet Applications et activez la connexion pour votre application ou votre API.

Mettre à jour les connexions existantes

Si vous avez des connexions de base de données existantes, mettez à jour les paramètres de Passwordless dans Auth0 Dashboard ou via la Management API.
  1. Ouvrir la connexion : Accédez à Auth0 Dashboard > Authentication > Database et sélectionnez la connexion que vous souhaitez mettre à jour.
  2. Activer les attributs : Sous l’onglet Attributes, sélectionnez Activate pour activer la nouvelle configuration des attributs.
  3. Ajouter les attributs Email et Phone : Choisissez + Add Attributes et ajoutez Email et Phone Number s’ils ne sont pas déjà présents.
    Pour une connexion Passwordless (OTP) véritablement sans mot de passe, l’identifiant username n’est pas pris en charge.
  4. Activer les méthodes d’authentification OTP : Sous l’onglet Authentication Methods :
    • Configurez Phone pour Allow Phone OTP et enregistrez vos modifications.
    • Configurez Email pour Allow Email OTP et enregistrez vos modifications.
  5. Bloquer l’authentification par mot de passe : Dans les paramètres Password, choisissez Policy et sélectionnez Block pour :
    • Password on Login
    • Password on Signup
    • Self-service change password
    Activez Support users without a password.
    Vous pourriez recevoir une erreur si vous n’activez pas Support users without a password.
  6. Enregistrer : Sélectionnez Save.

Utiliser les Actions Auth0

Pour en savoir plus sur les facteurs d’authentification Passwordless des connexions de base de données, configurez des attributs à l’aide des Actions Auth0.

Déclencheur post-connexion

Le déclencheur post-login s’exécute après l’authentification d’un utilisateur, mais avant que le serveur d’autorisation ne renvoie un jeton. L’objet event.authentication dans Auth0 Dashboard > Actions > Triggers > Post Login expose les méthodes suivantes :
MéthodeParamètreDescription
OTP par courrielemailOTP par courriel utilisé pour authentifier l’utilisateur comme premier facteur.
OTP par SMSsmsOTP par téléphone (SMS) utilisé pour authentifier l’utilisateur comme premier facteur.
OTP par appel vocaltelOTP par téléphone avec appel vocal utilisé pour authentifier l’utilisateur comme premier facteur.
Mot de passepwdMot de passe utilisé pour authentifier l’utilisateur comme premier facteur.
email_verified et phone_verified sont définis automatiquement dans le profil de l’utilisateur lorsqu’un utilisateur s’authentifie au moyen d’un OTP par courriel ou d’un OTP par téléphone. Si vous utilisiez auparavant une Action post-connexion pour définir manuellement ces indicateurs, vous pouvez supprimer cette solution de contournement.
Utilisez event.authentication pour :
  • Déterminer quel facteur Passwordless l’utilisateur a utilisé (email, sms, tel ou pwd)
  • Ajouter des claims personnalisées aux jetons selon la méthode d’authentification
  • Exécuter une logique conditionnelle selon la façon dont l’utilisateur s’est authentifié

Exemple

L’exemple suivant lit event.authentication.methods afin de détecter quel facteur Passwordless l’utilisateur a validé, puis l’ajoute sous forme de revendication personnalisée au jeton d’identité.
exports.onExecutePostLogin = async (event, api) => {
  if (!event.authentication?.methods || event.authentication.methods.length === 0) {
    return;
  }

  if (event.connection.name !== 'YOUR_AUTH0_CONNECTION') {
    return;
  }

  const firstFactor = event.authentication.methods[0];

  if (firstFactor.name === 'email') {
    api.idToken.setCustomClaim('https://your-app.com/auth_method', 'email_otp');
  } else if (firstFactor.name === 'sms' || firstFactor.name === 'tel') {
    api.idToken.setCustomClaim('https://your-app.com/auth_method', 'phone_otp');
  } else if (firstFactor.name === 'pwd') {
    api.idToken.setCustomClaim('https://your-app.com/auth_method', 'password');
  }
};

Déclencheur post-challenge

Le déclencheur post-challenge s’exécute une fois que les utilisateurs ont terminé une vérification, comme la réinitialisation du mot de passe, la validation du téléphone ou la MFA. L’objet event.authentication dans Auth0 Dashboard > Actions > Triggers > password-reset-post-challenge expose les attributs suivants :
AttributParamètreDescription
CourrielemailRéinitialisation du mot de passe par courriel avec OTP ou lien magique.
Téléphonephone_numberRéinitialisation du mot de passe avec OTP par téléphone.

Exemple

L’exemple suivant lit event.authentication.methods pour détecter quel facteur Passwordless a permis de réussir la vérification et l’ajoute au jeton d’identité sous forme de revendication personnalisée.
exports.onExecutePostChallenge = async (event, api) => {
  if (!event.authentication?.methods || event.authentication.methods.length === 0) {
    return;
  }

  if (event.connection.name !== 'YOUR_AUTH0_CONNECTION') {
    return;
  }

  const firstFactor = event.authentication.methods[0];

  if (firstFactor.name === 'email') {
    api.idToken.setCustomClaim('https://your-app.com/challenge_method', 'email_otp');
  } else if (firstFactor.name === 'phone_number') {
    api.idToken.setCustomClaim('https://your-app.com/challenge_method', 'phone_otp');
  }
};

Avantages

  • Implémentation simplifiée : Moins de connexions à configurer et à maintenir. Aucune liaison de comptes n’est nécessaire, sauf si vous utilisez des connexions sociales/fédérées avec des connexions de base de données.
  • Expérience utilisateur améliorée : Proposez des combinaisons d’OTP par courriel et par téléphone avec des mots de passe, des clés d’accès et des connexions sociales/fédérées, le tout dans la même expérience « identifiant d’abord » de Universal Login.
  • Flux d’inscription flexibles : Configurez les attributs de courriel et de téléphone comme facultatifs lors de l’inscription, afin de permettre aux utilisateurs de s’inscrire avec seulement un courriel ou seulement un numéro de téléphone — idéal pour des expériences d’abord mobiles ou uniquement par courriel.
  • OTP vocal : L’OTP vocal est inclus comme premier facteur lorsqu’il est configuré dans l’Unified Phone Experience.

Limites

  • Disponible uniquement pour les flux basés sur Universal Login; n’est pas encore pris en charge pour l’authentification basée sur l’API.
  • Passwordless n’est pas pris en charge pour les connexions de base de données avec Classic Login.
  • Passwordless pour les connexions de base de données ne prend pas en charge Implicit Signup & Login.
  • Dans les connexions Passwordless héritées, il n’y avait aucune différence dans l’expérience utilisateur entre l’inscription et la connexion. Les connexions de base de données font une distinction entre l’expérience d’inscription et l’expérience de connexion, ce qui exige une inscription et une connexion explicites.
    • Si un utilisateur sans identité Auth0 accède au flux de connexion, le système ne l’inscrira pas automatiquement. L’utilisateur reçoit une erreur après avoir validé l’OTP.
    • Si un utilisateur ayant une identité Auth0 accède au flux d’inscription, l’utilisateur reçoit une erreur après avoir validé l’OTP.

En savoir plus