利用可否は Auth0 のプランによって異なります
この機能を利用できるかどうかは、実装しているログイン方式と、Auth0 のプランまたは個別契約の内容によって異なります。詳細については、Pricing を参照してください。
前提条件
- Dashboard または Management API を使用して、要素として メールアドレスを設定 します。
メールアドレスを登録する
MFAトークンを取得
登録を開始するタイミングに応じて、MFA API の使用に必要なを、さまざまな方法で取得できます。- 認証中に登録する場合は、Authenticate With Resource Owner Password Grant and MFAを参照してください。
- ユーザーが任意のタイミングで認証要素を登録できるようにする場合は、Manage MFA Factor Enrollmentsを参照してください。
オーセンティケーターを登録する
POST リクエストを送信します。このエンドポイントに必要な Bearer トークンは、前の手順で取得した MFA トークンです。
次のパラメーターを使用します。
成功すると、次のようなレスポンスが返されます:
User is already enrolled エラーが表示された場合、そのユーザーにはすでに MFA 要素が登録されています。ユーザーに別の要素を関連付ける前に、既存の要素でユーザーにチャレンジする必要があります。
これがユーザーがオーセンティケーターを関連付ける初回であれば、レスポンスに recovery_codes が含まれていることがわかります。リカバリーコードは、第 2 要素認証に使用しているアカウントまたはデバイスにアクセスできなくなった場合に、ユーザーがアカウントへアクセスするために使用します。これらは 1 回限り使用できる code であり、必要に応じて新しいものが生成されます。
メールアドレス登録の確認
/oath/token エンドポイントに POST リクエストを送信します。前のレスポンスで返された oob_code と、メールメッセージに記載された値を持つ binding_code を含めてください。
呼び出しに成功すると、アクセストークンを含む次の形式のレスポンスが返されます。
active の値は true になります。
必要に応じて、ユーザーが受信するメールをカスタマイズすることもできます。詳しくは、メールテンプレートをカスタマイズするを参照してください。
メールアドレスによるチャレンジ
MFAトークンを取得する
登録済みのオーセンティケーターを取得する
authenticator_id が必要です。MFA Authenticators エンドポイントを使用して、登録済みのオーセンティケーターをすべて一覧表示できます。
OTP でユーザーにチャレンジする
authenticator_id と mfa_token を指定して、MFA Challenge エンドポイントに POST リクエストを送信します。
受け取った code で認証を完了する
oauth``/token エンドポイントの呼び出しで、その code を binding_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 Object を参照してください。