メインコンテンツへスキップ
が有効な場合、Auth0のMFA APIリソース所有者のパスワードフロー(ROPG:リソース所有者パスワード付与とも呼ばれる)を用いた認証フローで利用することができます。

前提条件

MFA APIを使用するには、事前にアプリケーションに対してMFAの付与タイプを有効にする必要があります。[Auth0 Dashboard]>[Applications(アプリケーション)]>[Advanced Settings(詳細設定)]>[Grant Types(付与タイプ)]に移動し、[MFA] を選択します。

ユーザーを認証する

リソース所有者のパスワードフローを用いた認証では、ユーザー名とパスワードを使用して/oauth/tokenエンドポイントを呼び出します。 MFAが有効な場合には、mfa_requiredエラーとmfa_tokenが返されます。
上記のエラーを受信した場合には、ユーザーにMFA要素が登録されているかどうかを確認する必要があります。前のセクションで取得したMFAトークンを使用して、MFAオーセンティケーターエンドポイントを呼び出します。

登録されているオーセンティケーターを取得する

使用可能なオーセンティケーターの配列が取得できます。ユーザーが要素を登録しなかった場合、配列は空になります。
ユーザーがMFAに登録されていない場合は、上記で取得したMFAトークンを使用し、それをMFA Associateエンドポイントで登録します。認証要素に合わせてこのフローを実装するには、以下のリンクを参照してください。

MFA要素を登録する

ユーザーがすでにMFAに登録されている場合には、既存の要素の1つを使用してユーザーにチャレンジする必要があります。MFAオーセンティケーターエンドポイントから返されたauthenticator_idを使用して、MFAチャレンジエンドポイントを呼び出します。

MFAを使用してユーザーにチャレンジする

チャレンジが完了したら、もう一度/oauth/tokenエンドポイントを呼び出して認証フローを完了させ、認証トークンを取得します。 認証要素に合わせてこのフローを実装するには、以下のリンクを参照してください。 認証要素に合わせてこのフローを実装するには、以下のリンクを参照してください。

MFA OTPコードの制限と制約

有効期間 :MFA OTPコードの有効期限は5分です。この値の構成は変更できません。 コード検証 :ユーザーがMFA OTPコードを検証すると、そのコードは再度使用できません。 コード検証のレート制限 :ユーザー検証の試行が失敗すると、バケットアルゴリズムを使用してレート制限が適用されます。バケットは10回の試行から始まり、6分ごとに1回の試行が補充されます。

もっと詳しく