前提条件
- Auth0 Dashboard または Management API を使用して、電話番号を認証要素として設定 します。
SMS または音声で登録する
MFAトークンを取得する
- 認証中に登録する場合は、Resource Owner Password Grant と MFA を使用して認証するを参照してください。
- ユーザーがいつでも認証要素を登録できるようにする場合は、MFA 認証要素の登録を管理するを参照してください。
認証要素を登録
POST リクエストを送信します。このエンドポイントで必要な bearer token は、前の手順で取得した MFA トークンです。
SMS または音声で登録するには、SMS または音声のいずれかでチャレンジできる電話番号を登録します。エンドポイントを呼び出すには、以下のパラメーターを指定します。oob_channels パラメーターは、ユーザーに code を送信する方法 (SMS または音声) を示します。
| パラメーター | 値 |
|---|---|
authentication_types | [oob] |
oob_channels | [sms] または [voice] |
phone_number | +11...9、E.164 形式 の電話番号 |
User is already enrolled エラーが表示された場合、そのユーザーにはすでに MFA 要素が登録されています。ユーザーに別の要素を関連付ける前に、既存の要素を使ってユーザーにチャレンジする必要があります。
これがユーザーにとって認証要素を関連付ける初回の操作である場合、レスポンスに recovery_codes が含まれていることがわかります。リカバリーコードは、第 2 要素認証に使用しているアカウントまたはデバイスにアクセスできなくなった場合に、ユーザーが自分のアカウントへアクセスするために使用されます。これらは 1 回限り使用できる code であり、必要に応じて新しいものが生成されます。
SMS または音声による登録の確認
POST リクエストを送信します。前のレスポンスで返された oob_code と、メッセージで受信した値を binding_code に含める必要があります。
リクエストが成功すると、アクセストークンを含む次の形式のレスポンスが返されます。
SMS または音声によるチャレンジ
MFAトークンを取得する
登録済み認証要素を取得する
authenticator_id が必要です。MFA Authenticators エンドポイントを使用すると、登録済みの認証要素をすべて一覧できます。
次の形式で認証要素の一覧が返されます。
OTP でユーザーにチャレンジを要求する
authenticator_id と mfa_token を使用して、MFA Challenge エンドポイントに POST リクエストを送信します。
受け取ったcodeで認証を完了する
binding_code パラメーターに設定する必要があります。前の呼び出しで返された binding_code と oob_code を指定して OAuth0 Token エンドポイントを使用すると、code を検証し、認証トークンを取得できます。
呼び出しが成功すると、アクセストークンを含む、以下の形式のレスポンスが返されます:
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 Triggers: post-challenge - API オブジェクト を参照してください。