Passer au contenu principal
Auth0 offre un flux intégré d’inscription à la et d’authentification avec Universal Login. Toutefois, si vous souhaitez créer votre propre interface utilisateur, vous pouvez utiliser l’API MFA pour y parvenir. Lorsque le courriel est activé comme facteur, tous les utilisateurs dont le courriel est vérifié pourront l’utiliser pour effectuer la MFA.

La disponibilité varie selon le forfait Auth0

La disponibilité de cette fonctionnalité dépend à la fois de votre implémentation de connexion et de votre forfait Auth0 ou de votre entente personnalisée. Pour en savoir plus, consultez Tarification.

Prérequis

Avant de pouvoir utiliser les API MFA, vous devez activer le type d’octroi MFA pour votre application. Accédez à Auth0 Dashboard > Applications > Paramètres avancés > Types d’octroi et sélectionnez MFA.

Inscription par courriel

Pour permettre aux utilisateurs d’inscrire d’autres adresses courriel en plus du courriel vérifié associé à leur identité principale, vous devez suivre les étapes ci-dessous.

Obtenir un jeton MFA

Selon le moment où vous déclenchez l’inscription, vous pouvez obtenir un pour utiliser l’API MFA de différentes façons :

Inscrire l’authentificateur

Faites une requête POST au point de terminaison MFA Associate pour inscrire l’authentificateur de l’utilisateur. Le jeton Bearer requis par ce point de terminaison est le jeton MFA obtenu à l’étape précédente. Utilisez les paramètres suivants :
ParamètreValeur
authentication_types[oob]
oob_channels[email]
emailemail@address.com, l’adresse courriel de l’utilisateur.
Si la requête réussit, vous recevez une réponse comme celle-ci :
{
    "authenticator_type": "oob",
    "binding_method": "prompt",
    "oob_code" : "Fe26..nWE",
    "oob_channel": "email",
    "recovery_codes": [ "N3BGPZZWJ85JLCNPZBDW6QXC" ]
  }
Si vous obtenez l’erreur User is already enrolled, c’est que l’utilisateur a déjà un facteur MFA inscrit. Avant d’associer un autre facteur à l’utilisateur, vous devez lui faire passer une vérification au moyen du facteur existant. S’il s’agit de la première fois que l’utilisateur associe un authentificateur, vous remarquerez que la réponse inclut recovery_codes. Les codes de récupération servent à accéder au compte de l’utilisateur s’il perd l’accès au compte ou à l’appareil utilisé pour son authentification à deux facteurs. Ces codes sont à usage unique, et de nouveaux codes sont générés au besoin.

Confirmer l’inscription par courriel

L’utilisateur devrait recevoir un courriel contenant le code à six chiffres qu’il pourra fournir à l’application. Pour terminer l’inscription, effectuez une requête POST vers le point de terminaison /oath/token. Incluez le oob_code renvoyé dans la réponse précédente ainsi que le binding_code avec la valeur figurant dans le courriel. Si l’appel réussit, vous recevrez une réponse au format suivant contenant le jeton d’accès :
{
  "id_token": "eyJ...i",
  "access_token": "eyJ...i",
  "expires_in": 600,
  "scope": "openid profile",
  "token_type": "Bearer"
}
À ce stade, l’authentificateur est entièrement associé et prêt à être utilisé, et vous disposez des jetons d’authentification de l’utilisateur. Vous pouvez à tout moment vérifier si un authentificateur a été confirmé en appelant le point de terminaison MFA Authenticators. Si l’authentificateur est confirmé, la valeur renvoyée pour active est true. Au besoin, vous pouvez personnaliser les courriels que les utilisateurs reçoivent. Consultez Personnaliser les modèles de courriel pour en savoir plus.

Vérification par courriel

Obtenir un jeton MFA

Obtenez un jeton MFA en suivant les étapes décrites dans Authentification avec Resource Owner Password Grant et MFA.

Récupérer les authentificateurs inscrits

Pour demander une vérification à l’utilisateur, vous avez besoin du authenticator_id du facteur que vous souhaitez utiliser. Vous pouvez répertorier tous les authentificateurs inscrits à l’aide du point de terminaison MFA Authenticators :

Soumettre l’utilisateur à une vérification OTP

Pour déclencher une vérification par courriel, envoyez une requête POST au point de terminaison MFA Challenge en utilisant l’authenticator_id correspondant et le mfa_token.

Terminez l’authentification avec le code reçu

Si l’opération réussit, vous recevez la réponse suivante :
{
  "challenge_type": "oob",
  "oob_code": "abcd1234...",
  "binding_method": "prompt"
}
Votre application doit inviter l’utilisateur à saisir le code et l’envoyer dans la requête, dans le paramètre binding_code, lors de l’appel suivant au point de terminaison oauth``/token : Si l’appel réussit, vous recevrez une réponse au format ci-dessous contenant le jeton d’accès :
{
  "id_token": "eyJ...i",
  "access_token": "eyJ...i",
  "expires_in": 600,
  "scope": "openid profile",
  "token_type": "Bearer"
}

Personnaliser la MFA

La MFA personnalisable avec les flux Resource Owner Password Grant, Embedded ou Jeton d’actualisation est en accès anticipé. En utilisant cette fonctionnalité, vous acceptez les conditions d’essai gratuit applicables de la Master Subscription Agreement d’Okta. Pour en savoir plus sur les phases de lancement d’Auth0, consultez Phases de lancement des produits. Pour participer à l’accès anticipé, communiquez avec Auth0 Support.
La MFA personnalisable permet aux utilisateurs de s’inscrire et de répondre aux vérifications avec les facteurs de leur choix pris en charge par votre application. Lors de l’authentification au point de terminaison oauth/token, la réponse renvoie l’erreur mfa_required, qui inclut le mfa_token à utiliser avec l’API MFA, ainsi que le paramètre mfa_requirements contenant une liste d’authentificateurs :
{
  "error": "mfa_required",
  "error_description": "Multifactor authentication required",
  "mfa_token": "Fe26...Ha",
  "mfa_requirements": {
    "challenge": [
      { "type": "otp" },
      { "type": "push-notification" },
      { "type": "phone" },
      { "type": "recovery-code" }
      { "type": "email"} //fonctionne uniquement avec challenge
    ]
  }
}
Utilisez le mfa_token pour appeler le point de terminaison mfa/authenticator afin d’obtenir la liste de tous les facteurs que l’utilisateur a inscrits et de trouver le type pris en charge par votre application. Vous devez également obtenir la valeur authenticator_type correspondante pour lancer les vérifications :
[
  {
    "type": "recovery-code",
    "id": "recovery-code|dev_qpOkGUOxBpw6R16t",
    "authenticator_type": "recovery-code",
    "active": true
  },
  {
    "type": "otp",
    "id": "totp|dev_6NWz8awwC8brh2dN",
    "authenticator_type": "otp",
    "active": true
  }
]
Forcez la vérification MFA en appelant le point de terminaison request/mfa/challenge. Personnalisez davantage votre flux MFA avec les Actions d’Auth0. Pour en savoir plus, consultez Actions Triggers: post-challenge - API Object.

En savoir plus