前提条件
MFA API を使用する前に、アプリケーションで MFA グラントタイプを有効にする必要があります。Auth0 Dashboard > アプリケーション > Advanced Settings > Grant Types に移動し、MFA を選択してください。- Auth0 Dashboard または Management API を使用して、認証要素として プッシュを設定 します。
プッシュ通知を登録
MFAトークンを取得する
登録を開始するタイミングに応じて、MFA API で使用する を、さまざまな方法で取得できます。- 認証時に登録する場合は、Authenticate With Resource Owner Password Grant and MFA を参照してください。
- ユーザーがいつでも認証要素を登録できるようにする場合は、Manage MFA Factor Enrollments を参照してください。
認証器を登録する
ユーザーの認証器を登録するには、MFA AssociateエンドポイントにPOST リクエストを送信します。このエンドポイントで必要なベアラートークンは、前の手順で取得した MFAトークンです。
プッシュで登録するには、authenticator_types パラメーターを [oob] に、oob_channels パラメーターを [auth0] に設定します。
成功した場合、次のようなレスポンスが返されます。
User is already enrolled エラーが表示された場合、そのユーザーにはすでに MFA の認証要素が登録されています。ユーザーに別の認証要素を関連付ける前に、既存の認証要素でユーザーにチャレンジする必要があります。
ユーザーが初めて認証器を関連付ける場合、レスポンスには recovery_codes が含まれます。リカバリーコードは、2 要素認証に使用しているアカウントやデバイスにアクセスできなくなった場合に、ユーザーがアカウントにアクセスするために使用します。これらのコードは 1 回限り有効で、必要に応じて新しいコードが生成されます。
プッシュ登録を確認する
登録を確認するには、エンドユーザーは 5 分以内に、Guardian アプリでbarcode_uri の QR コードをスキャンする必要があります。
これが完了すると、Guardian アプリはユーザーの登録が正常に完了したことを Auth0 に通知します。実際に完了したかどうかを確認するには、MFA Associate エンドポイントの呼び出しで返された oob_code を使って、Auth0 の をポーリングします。
ユーザーがコードをスキャンしていない場合は、authorization_pending レスポンスが返されます。これは、数秒後に oauth_token を再度呼び出す必要があることを示しています。
active に返される値は true です。
プッシュ通知による認証チャレンジ
MFAトークンを取得する
MFA を使用したリソース所有者パスワードグラントによる認証で説明されている手順に従って、MFAトークンを取得します。登録済みの認証器を取得する
ユーザーにチャレンジを送信するには、対象の認証要素のauthenticator_id が必要です。MFA Authenticators エンドポイントを使用して、登録済みの認証器をすべて一覧表示できます。
次の形式で認証器の一覧が返されます。
プッシュでユーザーにチャレンジを求める
プッシュチャレンジを開始するには、対応するauthenticator_id と mfa_token を使用して、MFA Challenge エンドポイントに POST リクエストを送信します。
受け取ったコードで認証を完了する
成功すると、以下のレスポンスが返されます。MFA をカスタマイズする
カスタマイズ可能な MFA を使用すると、ユーザーはアプリケーションでサポートされている認証要素の中から任意のものを選んで登録し、その認証要素でチャレンジを受けることができます。oauth/token エンドポイントでの認証時には、レスポンスとして、MFA API で使用する mfa_token を含む mfa_required エラーと、認証器のリストを含む mfa_requirements パラメーターが返されます:
mfa_token を使用して mfa/authenticator エンドポイントを呼び出し、ユーザーが登録しているすべての認証要素の一覧を取得したうえで、アプリケーションがサポートしているものと同じ種類の認証要素を特定します。チャレンジを発行するには、対応する authenticator_type も取得する必要があります:
request/mfa/challenge エンドポイントを呼び出して、MFAチャレンジを必須にします。
Auth0 Actionsを使うと、MFAフローをさらにカスタマイズできます。詳しくは、Actions Triggers: post-challenge - API Object をご覧ください。