前提条件
MFA APIを使用するには、事前にアプリケーションに対してMFAの付与タイプを有効にする必要があります。[Auth0 Dashboard]>[Applications(アプリケーション)]>[Advanced Settings(詳細設定)]>[Grant Types(付与タイプ)]に移動し、[MFA] を選択します。- DashboardまたはManagement APIを使って、要素としてプッシュを構成します。
プッシュで登録する
MFAトークンを取得する
登録をトリガーするタイミングによっては、以下のような方法で、MFA APIを使用するためのアクセストークンを取得できます。- 認証中に登録する場合は、「リソース所有者のパスワード付与とMFAで認証する」を参照してください。
- ユーザーがいつでも要素を登録できるようにする場合は、「MFA要素の登録を管理する」を参照してください。
Authenticatorを登録する
ユーザーの鑑別工具を登録するには、MFA AssociateエンドポイントにPOST
要求を送信します。このエンドポイントに必要なベアラートークンは、前の手順で取得したMFAトークンです。
プッシュで登録するには、authenticator_types
パラメーターを[oob]
、oob_channels
パラメーターを[auth0]
に設定します。
User is already enrolled(ユーザーは登録済みです)
」というエラーメッセージを受け取った場合、そのユーザーはすでにMFA要素を登録済みです。このユーザーに対して別の要素を関連付ける前に、既存の要素を使ってユーザーにチャレンジする必要があります。
ユーザーが鑑別工具を初めて関連付けている場合は、応答にrecovery_codes
が含まれます。復旧コードは、ユーザーが第二の認証要素であるアカウントやデバイスにアクセスできなくなったときに、ユーザーのアカウントにアクセスするために使用されます。このコードは1回しか使用できず、必要に応じて新しいコードが生成されます。
プッシュの登録を確定する
プッシュの登録を確定するには、エンドユーザーが5分以内にGuardianアプリケーションのbarcode_uri
でQRコードをスキャンする必要があります。
完了すると、ユーザーが正常に登録されたことをGuardianアプリケーションがAuth0に通知します。スキャンされたかを知るためには、MFA Associateエンドポイントの呼び出しで返されたoob_code
を使用して、Auth0トークンエンドポイントをポーリングします。
authorization_pending
応答が返され、数秒以内にoauth_token
をもう一度呼び出す必要があることが分かります。
active
に返される値はtrue
です。
プッシュでチャレンジする
MFAトークンを取得する
「リソース所有者のパスワード付与とMFAで認証する」で説明されている手順に従ってMFAトークンを取得します。登録されているオーセンティケーターを取得する
ユーザーにチャレンジするには、チャレンジしたい要素のauthenticator_id
が必要です。登録された全Authenticatorの一覧は、MFA Authenticatorエンドポイントを使って表示できます:
プッシュを使用してユーザーにチャレンジする
プッシュチャレンジをトリガーするには、対応するauthenticator_id
とmfa_token
を使ってMFAチャレンジエンドポイントにPOST
を行います。
受信したコードを使って認証を完了します。
成功すると、以下の応答を受け取ります。結果 | 説明 |
---|---|
authorization_pending | エラー:チャレンジが受け入れられなかったか拒否された場合。 |
slow_down | エラー:ポーリングの頻度が高すぎる場合。 |
access_token とrefresh_token | チャレンジが受け入れられた場合。ポーリングはこの時点で停止されます。 |
invalid_grant | エラー:チャレンジが拒否された場合。ポーリングはこの時点で停止されます。 |