Passer au contenu principal
Auth0 fournit un flux intégré d’inscription et d’authentification avec Universal Login. Toutefois, si vous souhaitez créer votre propre interface utilisateur, vous pouvez utiliser l’API MFA pour le 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.

S’inscrire par SMS ou appel vocal

Obtenir un jeton MFA

Selon le moment où vous lancez 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 inscrire par SMS ou appel vocal, utilisez un numéro de téléphone qui peut être vérifié par SMS ou par appel vocal. Précisez les paramètres ci-dessous pour appeler le point de terminaison. Le paramètre oob_channels indique comment vous voulez envoyer le code à l’utilisateur (SMS ou appel vocal).
ParamètreValeur
authentication_types[oob]
oob_channels[sms] ou [voice]
phone_number+11...9, le numéro de téléphone au format E.164
Si la requête réussit, vous recevez une réponse comme celle-ci :
{
  "authenticator_type": "oob",
  "binding_method": "prompt",
  "recovery_codes": [ "N3BGPZZWJ85JLCNPZBDW6QXC" ],
  "oob_channel": "sms",
  "oob_code": "ata6daXAiOi..."
}
`
Si vous obtenez une 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 d’abord lui demander de valider son identité au moyen du facteur existant. Si c’est la première fois que l’utilisateur associe un authentificateur, vous remarquerez que la réponse contient recovery_codes. Les codes de récupération permettent d’accéder au compte de l’utilisateur en cas de perte d’accès au compte ou à l’appareil utilisé pour l’authentification du deuxième facteur. Il s’agit de codes à usage unique, et de nouveaux codes sont générés au besoin.

Confirmer l’inscription par SMS ou appel vocal

Les utilisateurs devraient recevoir un message contenant un code à 6 chiffres qu’ils doivent fournir à l’application. Pour finaliser l’inscription, effectuez une requête POST vers le . Vous devez inclure le oob_code renvoyé dans la réponse précédente, ainsi que le binding_code correspondant à la valeur reçue dans le message. Si l’appel a réussi, vous recevrez une réponse dans le 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"
}

Vérification par SMS ou appel vocal

Obtenir un jeton MFA

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

Récupérer les authentificateurs inscrits

Pour lancer une demande de vérification pour l’utilisateur, vous avez besoin de l’authenticator_id du facteur que vous voulez utiliser. Vous pouvez lister tous les authentificateurs inscrits à l’aide du point de terminaison des authentificateurs MFA : Vous obtiendrez une liste d’authentificateurs au format suivant :
[
    {
        "id": "recovery-code|dev_O4KYL4FtcLAVRsCl",
        "authenticator_type": "recovery-code",
        "active": true
    },
    {
        "id": "sms|dev_NU1Ofuw3Cw0XCt5x",
        "authenticator_type": "oob",
        "active": true,
        "oob_channel": "sms",
        "name": "XXXXXXXX8730"
    },
        {
        "id": "voice|dev_NU1Ofuw3Cw0XCt5x",
        "authenticator_type": "oob",
        "active": true,
        "oob_channel": "voice",
        "name": "XXXXXXXX8730"
    }
]

Vérifier l’utilisateur avec un OTP

Pour lancer la vérification, envoyez une requête POST au point de terminaison MFA Challenge avec l’authenticator_id correspondant et le mfa_token.

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

Si l’opération réussit, vous recevez la réponse suivante :
{
  "challenge_type": "oob",
  "oob_code": "asdae35fdt5...",
  "binding_method": "prompt"
}
Votre application doit demander à l’utilisateur de saisir le code à 6 chiffres envoyé dans le message, puis définir ce code dans le paramètre binding_code. Vous pouvez valider le code et obtenir des jetons d’authentification à l’aide du point de terminaison OAuth0 Token, en précisant les valeurs binding_code et oob_code renvoyées par l’appel précédent : 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"
}
Remarque : Les renvois de SMS et les tentatives avec un code invalide sont soumis à une limitation du débit. Les codes SMS peuvent être envoyés 10 fois et le compteur se réinitialise une fois par heure, tandis qu’un code invalide peut être soumis 10 fois et le compteur se réinitialise toutes les six minutes.

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 de l’essai gratuit applicables dans le Master Subscription Agreement d’Okta. Pour en savoir plus sur les étapes de lancement d’Auth0, consultez Product Release Stages. 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 demandes de vérification associées. Pendant 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 et 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 est inscrit et de repérer celui du type pris en charge par votre application. Vous devez également obtenir l’authenticator_type correspondant pour lancer les demandes de vérification :
[
  {
    "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 Déclencheurs des Actions : post-challenge - objet API.

En savoir plus