前提条件
- Auth0 Dashboard または Management API を使用して、電話を認証要素として設定する。
SMS または音声で登録する
MFAトークンを取得する
- 認証時に登録する場合は、Authenticate With Resource Owner Password Grant and MFA を参照してください。
- ユーザーが任意のタイミングで認証要素を登録できるようにする場合は、Manage MFA Factor Enrollments を参照してください。
認証器を登録する
POST リクエストを送信します。この endpoint で必要なベアラートークンは、前の手順で取得した MFA トークンです。
SMS or 音声 で登録するには、SMS または 音声 のいずれかでチャレンジできる電話番号を登録します。endpoint を呼び出すには、以下のパラメーターを指定します。oob_channels パラメーターは、ユーザーに code を送信する方法 (SMS または 音声) を示します。
成功すると、次のようなレスポンスを受け取ります。
User is already enrolled エラーが表示される場合、そのユーザーにはすでに MFA の認証要素が登録されています。ユーザーに別の認証要素を関連付ける前に、既存の認証要素でユーザー本人の確認を行う必要があります。
これがユーザーにとって認証器を関連付ける初めてのケースであれば、レスポンスに recovery_codes が含まれていることがわかります。リカバリーコードは、ユーザーがアカウント、または第 2 認証要素の認証に使用しているデバイスにアクセスできなくなった場合に、アカウントへアクセスするために使用されます。これらのコードは 1 回限り有効で、必要に応じて新しいものが生成されます。
SMS または音声による登録を確認する
POST リクエストを送信します。前のレスポンスで返された oob_code と、メッセージで受け取った値を含む binding_code を指定する必要があります。
呼び出しが成功すると、アクセストークン を含む次の形式のレスポンスが返されます:
SMS または音声による認証チャレンジ
MFAトークンを取得する
登録済みの認証器を取得する
authenticator_id が必要です。MFA Authenticators エンドポイント を使用して、登録済みの認証器をすべて一覧表示できます。
次の形式で認証器の一覧が返されます。
OTP を使ってユーザーにチャレンジする
authenticator_id と mfa_token を使用して、MFA Challenge エンドポイントに POST します。
受信したコードで認証を完了する
binding_code パラメータに設定する必要があります。前の呼び出しで返された binding_code と oob_code を指定して OAuth0 トークンエンドポイントを使用すると、コードを検証し、認証トークンを取得できます。
呼び出しが成功すると、アクセストークン を含む以下の形式のレスポンスが返されます:
MFA をカスタマイズする
oauth/token エンドポイントでの認証中、レスポンスでは mfa_required エラーが返されます。このエラーには、MFA API で使用する mfa_token と、認証器の一覧を含む mfa_requirements パラメーターが含まれます。
mfa_token を使って mfa/authenticator エンドポイントを呼び出し、ユーザーが登録済みのすべての認証要素の一覧を取得したうえで、アプリケーションがサポートしている種類と一致するものを特定します。さらに、チャレンジを発行するには、対応する authenticator_type も取得する必要があります:
request/mfa/challenge エンドポイントを呼び出して、MFAチャレンジを必須にします。
Auth0 Actions を使用すると、MFAフローをさらに柔軟にカスタマイズできます。詳しくは、Actions トリガー: post-challenge - API Object をご覧ください。