> ## 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.

# アウトオブバンド (OOB) による検証

> アウトオブバンド (OOB) チャレンジ（プッシュ通知、SMS、または音声通話）を使用して多要素認証 (MFA) を検証します。

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">
  ## エンドポイント
</div>

`POST /oauth/token`

アウトオブバンド (OOB) チャレンジ (プッシュ通知、SMS、または音声通話) を使用して多要素認証 (MFA) を検証します。OOB チャレンジを使用して MFA を検証するには、アプリケーションから `/oauth/token` に対して `grant_type=http://auth0.com/oauth/grant-type/mfa-oob` を指定したリクエストを送信する必要があります。チャレンジレスポンスで受け取った `oob_code` と、`mfa_required` エラーの一部として受け取った `mfa_token` を含めてください。

このリクエストへのレスポンスは、基盤となるチャレンジ検証の状態によって異なります。

* チャレンジが受け入れられて検証済みの場合、レスポンスは `password` または `http://auth0.com/oauth/grant-type/password-realm` グラントタイプの場合と同じです。
* チャレンジが拒否された場合は、`invalid_grant` エラーが返されます。これは、チャレンジがユーザーによって拒否されたことを意味します。このレスポンスは最終結果であるため、この時点でポーリングを停止する必要があります。
* チャレンジの検証がまだ保留中の場合 (つまり、まだ受け入れも拒否もされていない場合) 、`authorization_pending` エラーが返されます。これは、数秒後に同じリクエストを再試行する必要があることを意味します。短い間隔でリクエストしすぎると、`slow_down` エラーが返されます。

チャレンジレスポンスに `binding_method: prompt` が含まれている場合、アプリはユーザーに `binding_code` の入力を求め、それをリクエストの一部として送信する必要があります。`binding_code` は通常、チャレンジの一部として含まれる 6 桁の数字 (OTP に似たもの) です。チャレンジレスポンスに `binding_method` が含まれていない場合、`binding_code` は不要です。この場合、レスポンスは即座に返され、`invalid_grant` または `access_token` を受け取ります。

<div id="learn-more">
  ### 詳細情報
</div>

* [アウトオブバンド 認証要素を関連付ける](https://auth0.com/docs/secure/multi-factor-authentication/authenticate-using-ropg-flow-with-mfa/enroll-challenge-sms-voice-authenticators)

<div id="headers">
  ## ヘッダー
</div>

<ParamField header="DPoP" type="string">
  リクエストの DPoP 証明です。省略可能で、アプリケーションで Demonstrating Proof-of-Possession (所有証明) を使用する場合にのみ必要です。
</ParamField>

<div id="body-parameters">
  ## ボディパラメーター
</div>

<ParamField body="grant_type" type="string" required>
  使用するフローを示します。OTP MFA の場合は、`http://auth0.com/oauth/grant-type/mfa-oob` を使用します。

  指定可能な値: `http://auth0.com/oauth/grant-type/mfa-oob`
</ParamField>

<ParamField body="client_id" type="string" required>
  アプリケーションのクライアントID。
</ParamField>

<ParamField body="client_assertion" type="string">
  アプリケーションの認証情報に関する署名付きアサーションを含む JWT。
</ParamField>

<ParamField body="client_assertion_type" type="string">
  値は `urn:ietf:params:oauth:client-assertion-type:jwt-bearer` です。

  指定可能な値: `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`
</ParamField>

<ParamField body="client_secret" type="string">
  アプリケーションのクライアントシークレット。
</ParamField>

<ParamField body="mfa_token" type="string" required>
  `mfa_required` エラーで受け取った `mfa_token`。
</ParamField>

<ParamField body="oob_code" type="string" required>
  チャレンジリクエストで受け取った oob コード。
</ParamField>

<ParamField body="binding_code" type="string">
  認証に使用するメインチャネルとサイドチャネルをひも付けるためのコード。
</ParamField>

<div id="response-schema">
  ## レスポンススキーマ
</div>

<ResponseSchema>
  <ResponseField name="access_token" type="string">
    検証が成功すると返されるアクセストークン。
  </ResponseField>

  <ResponseField name="token_type" type="string">
    発行されたトークンの種別。
  </ResponseField>

  <ResponseField name="expires_in" type="integer">
    アクセストークンの有効期間 (秒) 。
  </ResponseField>

  <ResponseField name="error" type="string">
    検証が保留中または失敗した場合に返されるエラーコード。
  </ResponseField>

  <ResponseField name="error_description" type="string">
    エラーの説明。
  </ResponseField>
</ResponseSchema>

<div id="response-messages">
  ## レスポンスメッセージ
</div>

| ステータス | 説明                                      |
| ----- | --------------------------------------- |
| 200   | OOB 検証が成功した場合のレスポンスです。                  |
| 400   | パラメーターが不足しているか無効なため、リクエストが不正です。         |
| 401   | 未認証です。`mfa_token` または `oob_code` が無効です。 |
