前提条件
MFA APIを使用するには、事前にアプリケーションに対してMFAの付与タイプを有効にする必要があります。[Auth0 Dashboard]>[Applications(アプリケーション)]>[Advanced Settings(詳細設定)]>[Grant Types(付与タイプ)]に移動し、**[MFA]**を選択します。- DashboardまたはManagement APIを使って電話を要素として構成します。
SMSまたは音声で登録する
MFAトークンを取得する
登録をトリガーするタイミングによっては、以下のような方法で、MFA APIを使用するためのアクセストークンを取得できます。- 認証中に登録する場合は、「リソース所有者のパスワード付与とMFAで認証する」を参照してください。
- ユーザーがいつでも要素を登録できるようにする場合は、「MFA要素の登録を管理する」を参照してください。
Authenticatorを登録する
ユーザーの鑑別工具を登録するには、MFA AssociateエンドポイントにPOST要求を送信します。このエンドポイントに必要なベアラートークンは、前の手順で取得したMFAトークンです。
SMSや音声で登録するには、SMSまたは音声でチャレンジできる電話番号を使って登録します。以下のパラメーターを指定してエンドポイントを呼び出します。oob_channelsパラメーターは、ユーザーにコードを送信する方法(SMSまたは音声)を指定します。
| パラメーター | 値 |
|---|---|
authentication_types | [oob] |
oob_channels | [sms]または[voice] |
phone_number | +11…9、E.164形式の電話番号 |
User is already enrolled(ユーザーは登録済みです)」というエラーメッセージを受け取った場合、そのユーザーはすでにMFA要素を登録済みです。このユーザーに対して別の要素を関連付ける前に、既存の要素を使ってユーザーにチャレンジする必要があります。
ユーザーが鑑別工具を初めて関連付けている場合は、応答にrecovery_codesが含まれます。復旧コードは、ユーザーが第二の認証要素であるアカウントやデバイスにアクセスできなくなったときに、ユーザーのアカウントにアクセスするために使用されます。このコードは1回しか使用できず、必要に応じて新しいコードが生成されます。
SMSまたは音声の登録を確定する
ユーザーは、アプリケーションに提供しなければならない6桁のコードが記載されたメッセージを受信します。 登録を完了するには、トークンエンドポイントにPOST要求を行います。メッセージで受け取った値とともに、前の応答で返されたoob_codeとbinding_codeを含める必要があります。
呼び出しが成功すると、アクセストークンを含む応答が以下の形式で返されます。
SMSまたは音声でチャレンジする
MFAトークンを取得する
「リソース所有者のパスワード付与とMFAで認証する」で説明されている手順に従ってMFAトークンを取得します。登録されているAuthenticatorを取得する
ユーザーにチャレンジするには、チャレンジしたい要素のauthenticator_idが必要です。登録された全Authenticatorの一覧は、MFA Authenticatorエンドポイントを使って表示できます:
Authenticatorのリストが以下の形式で返されます。
OTPを使ってユーザーにチャレンジする
メールチャレンジをトリガーするには、対応するauthenticator_idとmfa_tokenを使ってMFAチャレンジエンドポイントをPOSTします。
受信したコードを使って認証を完了する
成功すると以下の応答を受け取ります。binding_codeパラメーター内に設定する必要があります。前の呼び出しで返されたbinding_codeとoob_codeを指定して、OAuth0トークンエンドポイントでコードを検証し、トークンを取得することができます。
呼び出しが成功すると、アクセストークンを含む応答が以下の形式で返されます: