> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# requête de défi

> Demander un défi MFA (OTP ou OOB) afin de poursuivre l’authentification au point de terminaison des jetons.

export const ResponseSchema = ({statusCode, type = "{}", children}) => {
  const [open, setOpen] = useState(false);
  return <div className="border border-gray-100 dark:border-gray-800 rounded-lg mb-3 overflow-hidden">
      <div className={`flex items-center gap-2.5 px-4 py-2.5 cursor-pointer select-none ${open ? "bg-gray-50 dark:bg-gray-800" : ""}`} onClick={() => setOpen(!open)}>
        {statusCode && <span className="border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 font-mono text-xs px-1.5 py-0.5 rounded">
            {statusCode.startsWith("default") ? "default" : statusCode}
          </span>}
        <span className="text-gray-500 dark:text-gray-400 text-sm font-mono">
          {type}
        </span>
        <span className="text-gray-400 dark:text-gray-500 text-sm italic">
          application/json
        </span>
        <svg className={`ml-auto opacity-50 transition-transform duration-200 ${open ? "rotate-180" : ""}`} width="16" height="16" viewBox="0 0 16 16" fill="none">
          <path d="M4 6l4 4 4-4" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
        </svg>
      </div>
      {open && <div className="px-4 pt-1 pb-3 border-t border-gray-100 dark:border-gray-800">
          {children}
        </div>}
    </div>;
};

<div id="endpoint">
  ## Point de terminaison
</div>

`POST /mfa/challenge`

Les points de terminaison de l’API d’authentification multifacteur (MFA) vous permettent d’appliquer la MFA lorsque les utilisateurs interagissent avec [les points de terminaison de jeton](#get-token), ainsi que d’inscrire et de gérer les authentificateurs des utilisateurs.

Commencez par demander un défi en fonction des types de défi pris en charge par l’application et l’utilisateur. Si vous savez que le mot de passe à usage unique (OTP) est pris en charge, vous pouvez passer cette demande de défi.

Ensuite, vérifiez l’authentification multifacteur à l’aide du point de terminaison `/oauth/token` et du type de défi indiqué : un mot de passe à usage unique (OTP), un code de récupération ou un défi hors bande (OOB).

Pour en savoir plus, consultez :

* [Authentification multifacteur et Resource Owner Password](https://auth0.com/docs/secure/multi-factor-authentication/authenticate-using-ropg-flow-with-mfa)
* [API d’authentification multifacteur](https://auth0.com/docs/secure/multi-factor-authentication/multi-factor-authentication-developer-resources/mfa-api)
* [Authentification multifacteur dans Auth0](https://auth0.com/docs/secure/multi-factor-authentication)

<div id="challenge-request">
  ## requête de défi
</div>

Demandez un défi d’authentification multifacteur (MFA) selon les types de défi pris en charge par l’application et l’utilisateur.

Le `challenge_type` indique comment l’utilisateur recevra le défi et en prouvera la possession. Les types de défi pris en charge comprennent :

* `otp` : pour un mot de passe à usage unique (OTP)
* `oob` : pour les SMS/messages vocaux ou le mode hors bande (OOB)

Si l’OTP est pris en charge pour l’utilisateur et que vous ne voulez pas demander un autre facteur, vous pouvez ignorer la demande de défi et [vérifier l’authentification multifacteur avec un mot de passe à usage unique](#verify-with-one-time-password-otp-).

<div id="remarks">
  ### Remarques
</div>

* Ce point de terminaison ne prend pas en charge l’inscription; l’utilisateur doit être inscrit avec la méthode privilégiée avant de demander un défi.
* Auth0 choisit le type de défi en fonction des types pris en charge par l’application et des types pour lesquels l’utilisateur est inscrit.
* Une erreur `unsupported_challenge_type` est renvoyée si votre application ne prend en charge aucun des types de défi pour lesquels l’utilisateur est inscrit.
* Une erreur `unsupported_challenge_type` est renvoyée si l’utilisateur n’est pas inscrit.
* Si l’utilisateur n’est pas inscrit, vous obtiendrez une erreur `association_required`, indiquant que l’utilisateur doit s’inscrire pour utiliser MFA. Lisez [Ajouter un authentificateur](/multi-factor-authentication/add-an-authenticator) ci-dessous pour savoir comment procéder.

<div id="learn-more">
  ### En savoir plus
</div>

* [S’authentifier avec Resource Owner Password Grant et MFA](https://auth0.com/docs/secure/multi-factor-authentication/authenticate-using-ropg-flow-with-mfa)
* [Gérer les facteurs Authenticator à l’aide de l’API MFA](https://auth0.com/docs/secure/multi-factor-authentication/manage-mfa-auth0-apis/manage-authenticator-factors-mfa-api)

<div id="body-parameters">
  ## Paramètres du corps
</div>

<ParamField body="mfa_token" type="string" required>
  Le token reçu dans l’erreur mfa\_required.
</ParamField>

<ParamField body="client_id" type="string" required>
  Le Client ID de votre application.
</ParamField>

<ParamField body="client_secret" type="string">
  Le Client Secret de votre application.
</ParamField>

<ParamField body="challenge_type" type="string">
  Une liste de types de défi acceptés par votre application, séparés par des espaces.

  Valeurs autorisées : `oob`, `otp`
</ParamField>

<ParamField body="client_assertion" type="string">
  Un JWT contenant une assertion signée avec les identifiants de votre application.
</ParamField>

<ParamField body="client_assertion_type" type="string">
  La valeur est urn:ietf:params:oauth:client-assertion-type:jwt-bearer.
</ParamField>

<ParamField body="authenticator_id" type="string">
  L’ID de l’authentificateur pour le défi.
</ParamField>

<div id="response-schema">
  ## Schéma de réponse
</div>

<ResponseSchema statusCode="200">
  <ResponseField name="challenge_type" type="string">
    Le type de défi que cet authentificateur émet. Valeurs possibles : `otp`, `oob`.
  </ResponseField>

  <ResponseField name="oob_code" type="string">
    Le code du défi hors bande. Présent uniquement lorsque `challenge_type` est `oob`.
  </ResponseField>

  <ResponseField name="binding_method" type="string">
    La méthode utilisée pour la liaison. Présente uniquement s’il y a lieu. Valeurs possibles : `prompt`.
  </ResponseField>
</ResponseSchema>

<ResponseSchema statusCode="400">
  <ResponseField name="error" type="string">
    Code d’erreur.
  </ResponseField>

  <ResponseField name="error_description" type="string">
    Description détaillée de l’erreur.
  </ResponseField>
</ResponseSchema>

<div id="response-messages">
  ## Messages de réponse
</div>

| Statut | Description                                                                                  |
| ------ | -------------------------------------------------------------------------------------------- |
| 200    | requête de défi réussie                                                                      |
| 400    | Requête invalide, par exemple un type de défi non pris en charge ou l’absence d’inscription. |
