メインコンテンツへスキップ
Auth0 MFA API を使用すると、 が有効な場合に、Resource Owner Password Flow ( Password Grant または ROPG とも呼ばれます) を使用して認証フローを完了できます。

前提条件

MFA API を使用する前に、アプリケーションで MFA のグラントタイプを有効にする必要があります。Auth0 Dashboard > Applications > Advanced Settings > Grant Types に移動して、MFA を選択します。

ユーザーを認証する

Resource Owner Password Flow を使用して認証する場合は、ユーザーの username とパスワードを指定して /oauth/token エンドポイントを呼び出します。 MFA が有効な場合、レスポンスには mfa_required エラーと mfa_token が含まれます。
https://{yourDomain}/mfa/* の audience を持つアクセストークンのデフォルトの有効期限は 10 分です。この値は構成できません。

登録済みの認証器を取得する

上記のエラーが発生した場合は、ユーザーに MFA の認証要素が登録されているかどうかを確認する必要があります。前のセクションで取得した MFA トークンを使用して、MFA Authenticators エンドポイントを呼び出します。 利用可能な認証器の配列が返されます。ユーザーが認証要素を登録していない場合、この配列は空です。

MFA認証要素を登録

ユーザーがまだMFAに登録されていない場合は、先ほど取得したMFAトークンを使用して、MFA Associate エンドポイントで認証要素を登録します。認証要素に応じてこのフローを実装するには、以下のリンクを参照してください。

ユーザーに MFA チャレンジを要求する

ユーザーがすでに MFA に登録済みの場合は、既存の認証要素のいずれかを使用してユーザーにチャレンジする必要があります。MFA Challenge エンドポイントを呼び出す際は、MFA Authenticators エンドポイントから返される authenticator_id を使用します。 チャレンジが完了したら、認証フローを完了して認証トークンを取得するために、/oauth/token エンドポイントをもう一度呼び出します。 認証要素に応じてこのフローを実装するには、以下のリンクを参照してください。

MFA OTP コードの制限事項

有効期限: MFA OTP コードの有効期限は 5 分です。この値は設定できません。 コードの検証: ユーザーが MFA OTP コードの検証に成功すると、そのコードは再利用できません。 コード検証のレート制限: ユーザーによるコード検証の失敗試行には、バケットアルゴリズムに基づくレート制限が適用されます。バケットは 10 回分の試行枠で開始され、6 分ごとに 1 回分補充されます。

MFA をカスタマイズする

Resource Owner Password Grant、Embedded、または Refresh Token フローでのカスタマイズ可能な MFA は、早期アクセスで提供されています。この機能を使用すると、Okta のMaster Subscription Agreementに記載されている該当する Free Trial 条項に同意したものとみなされます。Auth0 のリリースステージの詳細については、Product Release Stagesを参照してください。早期アクセスへの参加をご希望の場合は、Auth0 Support までお問い合わせください。
MFA API を使用すると、MFA フローをカスタマイズできます。MFA API を使うことで、アプリケーションでサポートされている特定の認証要素について、ユーザーが登録やチャレンジを行えるようにできます。 認証に Resource Owner Password Flow を使用し、MFA が有効になっている場合は、アクセストークンをリクエストするために /oauth/token endpoint を呼び出します。認可サーバーは mfa_required エラーを返し、次の情報を提供します。
  • 登録およびチャレンジのために MFA API を呼び出す際に必要な mfa_token
  • mfa_requirements パラメーター。これは、チャレンジでアプリケーションがサポートする認証要素の種類を示します。
mfa_token を使用して mfa/authenticator endpoint を呼び出し、ユーザーが登録済みの認証要素をすべて一覧し、その中からアプリケーションでサポートしている種類と一致するものを特定します。チャレンジを発行するには、対応する authenticator_type も取得する必要があります。
request/mfa/challenge エンドポイントを呼び出して、MFA チャレンジを必須にします。 Auth0 Actions を使用すると、MFA フローをさらにカスタマイズできます。詳細については、Actions トリガー: post-challenge - API オブジェクト を参照してください。

関連情報