Passer au contenu principal
Vous pouvez utiliser l’API MFA d’Auth0 pour terminer le flux d’authentification au moyen du flux Resource Owner Password (parfois appelé Password Grant ou ROPG) lorsque est activée.

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, puis sélectionnez MFA.

Authentifier un utilisateur

Lorsque vous utilisez le flux Resource Owner Password pour authentifier un utilisateur, appelez le point de terminaison /oauth/token avec son nom d’utilisateur et son mot de passe. Lorsque la MFA est activée, la réponse inclut une erreur mfa_required et un mfa_token.
La durée de validité par défaut des jetons d’accès avec l’audience https://{yourDomain}/mfa/* est de 10 minutes. Cette valeur ne peut pas être configurée.
{
    "error": "mfa_required",
    "error_description": "Multifactor authentication required",
    "mfa_token": "Fe26...Ha"
}

Récupérer les authentificateurs inscrits

Après avoir obtenu l’erreur ci-dessus, vous devez vérifier si l’utilisateur a inscrit un facteur MFA ou non. Appelez le point de terminaison MFA Authenticators en utilisant le jeton MFA obtenu dans la section précédente. Vous obtiendrez un tableau contenant les authentificateurs disponibles. Le tableau sera vide si l’utilisateur n’a inscrit aucun facteur.
[
    {
        "id": "recovery-code|dev_O4KYL4FtcLAVRsCl",
        "authenticator_type": "recovery-code",
        "active": true
    },
    {
        "id": "email|dev_NU1Ofuw3Cw0XCt5x",
        "authenticator_type": "oob",
        "active": true,
        "oob_channel": "email",
        "name": "email@address.com"
    }
]

Inscrire un facteur MFA

Si l’utilisateur n’est pas inscrit à MFA, utilisez le jeton MFA obtenu précédemment pour l’inscrire à l’aide du point de terminaison MFA Associate. Consultez les liens suivants pour implémenter ce flux selon le facteur d’authentification :

Présenter un défi MFA à l’utilisateur

Si l’utilisateur est déjà inscrit à MFA, vous devez lui présenter un défi à l’aide de l’un des facteurs existants. Utilisez le authenticator_id renvoyé par le point de terminaison MFA Authenticators lorsque vous appelez le point de terminaison MFA Challenge. Une fois le défi terminé, appelez de nouveau le point de terminaison /oauth/token pour finaliser le flux d’authentification et obtenir les jetons d’authentification. Consultez les liens ci-dessous pour implémenter ce flux selon le facteur d’authentification :

Limites et restrictions des codes OTP de MFA

Délai d’expiration : Le délai d’expiration des codes OTP de MFA est de 5 minutes. Cette valeur n’est pas configurable. Validation du code : Une fois qu’un utilisateur a validé un code OTP de MFA, il ne peut plus être réutilisé. Limitation du nombre de tentatives de validation de code : Les tentatives de validation infructueuses d’un utilisateur sont soumises à une limite de débit au moyen d’un algorithme de seau. Le seau commence à 10 tentatives et se recharge au rythme de 1 tentative toutes les 6 minutes.

Personnaliser la MFA

La personnalisation de la MFA avec les flux Resource Owner Password Grant, Embedded ou Refresh Token est en accès anticipé. En utilisant cette fonctionnalité, vous acceptez les conditions applicables de l’essai gratuit énoncées dans le Master Subscription Agreement d’Okta. Pour en savoir plus sur les phases de lancement d’Auth0, consultez Product Release Stages. Pour participer à l’accès anticipé, communiquez avec l’assistance Auth0.
Personnalisez vos flux MFA avec l’API MFA. Avec l’API MFA, vous pouvez permettre à vos utilisateurs de s’inscrire et d’effectuer un défi à l’aide d’un choix précis de facteurs pris en charge par votre application. Lorsque la MFA est activée avec le flux Resource Owner Password pour l’authentification, appelez le point de terminaison /oauth/token afin de demander un jeton d’accès. Le serveur d’autorisation renvoie une erreur mfa_required qui fournit :
  • Le mfa_token dont vous avez besoin pour appeler l’API MFA lors de l’inscription et des défis.
  • Le paramètre mfa_requirements, qui indique le type de facteur pris en charge par votre application pour les défis.
{
  "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" }
    ]
  }
}
Utilisez le mfa_token pour appeler le point de terminaison mfa/authenticator afin de répertorier tous les facteurs auxquels l’utilisateur s’est déjà inscrit et de repérer celui du même type que celui pris en charge par votre application. Vous devez aussi obtenir l’authenticator_type correspondant pour lancer 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 d’Actions : post-challenge - objet API.

En savoir plus