Passer au contenu principal
Auth0 fournit un flux intégré d’inscription à la et d’authentification à l’aide de Universal Login. Toutefois, si vous souhaitez créer votre propre interface utilisateur, vous pouvez utiliser l’API MFA pour ce faire.

Prérequis

Avant de pouvoir utiliser les API MFA, vous devez activer le type d’autorisation MFA pour votre application. Accédez à Auth0 Dashboard > Applications > Advanced Settings > Grant Types et sélectionnez MFA.

Inscrire avec OTP

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

Effectuez 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. Pour effectuer l’inscription avec OTP, définissez le paramètre authenticator_types sur [otp]. Si la requête réussit, vous recevez une réponse semblable à celle-ci :
{
  "authenticator_type": "otp",
  "secret": "EN...S",
  "barcode_uri": "otpauth://totp/tenant:user?secret=...&issuer=tenant&algorithm=SHA1&digits=6&period=30",
  "recovery_codes": [ "N3B...XC"]
}
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 demander de se vérifier avec le 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 ne peuvent être utilisés qu’une seule fois, et de nouveaux codes sont générés au besoin.

Confirmer l’inscription à l’OTP

Pour confirmer l’inscription, l’utilisateur final devra saisir le secret obtenu à l’étape précédente dans une application de génération d’OTP comme Google Authenticator. Il peut saisir le secret en balayant un code QR avec le barcode_uri ou en entrant manuellement le code secret dans cette application OTP. Vous devriez offrir aux utilisateurs un moyen d’obtenir le secret sous forme de texte s’ils ne peuvent pas balayer le code QR (par exemple, s’ils procèdent à l’inscription à partir d’un appareil mobile ou s’ils utilisent une application OTP sur ordinateur). Une fois le secret saisi, l’application OTP affichera un code à 6 chiffres que l’utilisateur devra entrer dans votre application. L’application devra ensuite envoyer une requête POST au , en incluant cette valeur otp. Si l’appel a réussi, 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 des authentificateurs MFA. Si l’authentificateur est confirmé, la valeur renvoyée pour active est true.

Défi par OTP

Obtenir un jeton MFA

Obtenez un jeton MFA en suivant les étapes décrites dans S’authentifier à l’aide de l’octroi de mot de passe du propriétaire de la ressource et de MFA.

Récupérer les authentificateurs inscrits

Vous pouvez obtenir la liste de tous les authentificateurs inscrits à l’aide du point de terminaison MFA Authenticators : Vous obtiendrez une liste d’authentificateurs au format suivant :
[
    {
        "id": "recovery-code|dev_qpOkGUOxBpw6R16t",
        "authenticator_type": "recovery-code",
        "active": true
    },
    {
        "id": "totp|dev_6NWz8awwC8brh2dN",
        "authenticator_type": "otp",
        "active": true
    }
]

Finaliser l’authentification à l’aide du code reçu

L’utilisateur recevra un code à usage unique, que vous lui demanderez ensuite. Vous pouvez vérifier le code et obtenir des jetons d’authentification à l’aide du point de terminaison Token d’OAuth0, en indiquant le code à usage unique dans le paramètre otp : Si l’appel a réussi, 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 l’Accord-cadre d’abonnement d’Okta. Pour en savoir plus sur les phases de lancement d’Auth0, consultez Phases de lancement du produit. Pour participer à l’accès anticipé, communiquez avec l’assistance Auth0.
La MFA personnalisable permet aux utilisateurs d’inscrire les facteurs de leur choix pris en charge par votre application et de répondre aux vérifications associées. 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, avec 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 auxquels l’utilisateur s’est inscrit et de repérer un facteur du type pris en charge par votre application. Vous devez également obtenir l’authenticator_type correspondant pour émettre des défis :
[
  {
    "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
  }
]
Imposez le défi MFA en appelant le point de terminaison request/mfa/challenge. Personnalisez davantage votre flux MFA avec Auth0 Actions. Pour en savoir plus, consultez Déclencheurs des Actions : post-challenge - objet API.

En savoir plus