前提条件
- Auth0 Dashboard または Management API を使用して、認証要素として プッシュを設定 します。
プッシュ通知を登録
MFAトークンを取得する
- 認証時に登録する場合は、Authenticate With Resource Owner Password Grant and MFA を参照してください。
- ユーザーがいつでも認証要素を登録できるようにする場合は、Manage MFA Factor Enrollments を参照してください。
認証器を登録する
POST リクエストを送信します。このエンドポイントで必要なベアラートークンは、前の手順で取得した MFAトークンです。
プッシュで登録するには、authenticator_types パラメーターを [oob] に、oob_channels パラメーターを [auth0] に設定します。
成功した場合、次のようなレスポンスが返されます。
User is already enrolled エラーが表示された場合、そのユーザーにはすでに MFA の認証要素が登録されています。ユーザーに別の認証要素を関連付ける前に、既存の認証要素でユーザーにチャレンジする必要があります。
ユーザーが初めて認証器を関連付ける場合、レスポンスには recovery_codes が含まれます。リカバリーコードは、2 要素認証に使用しているアカウントやデバイスにアクセスできなくなった場合に、ユーザーがアカウントにアクセスするために使用します。これらのコードは 1 回限り有効で、必要に応じて新しいコードが生成されます。
プッシュ登録を確認する
barcode_uri の QR コードをスキャンする必要があります。
これが完了すると、Guardian アプリはユーザーの登録が正常に完了したことを Auth0 に通知します。実際に完了したかどうかを確認するには、MFA Associate エンドポイントの呼び出しで返された oob_code を使って、Auth0 の をポーリングします。
ユーザーがコードをスキャンしていない場合は、authorization_pending レスポンスが返されます。これは、数秒後に oauth_token を再度呼び出す必要があることを示しています。
active に返される値は true です。
プッシュ通知による認証チャレンジ
MFAトークンを取得する
登録済みの認証器を取得する
authenticator_id が必要です。MFA Authenticators エンドポイントを使用して、登録済みの認証器をすべて一覧表示できます。
次の形式で認証器の一覧が返されます。
プッシュでユーザーにチャレンジを求める
authenticator_id と mfa_token を使用して、MFA Challenge エンドポイントに POST リクエストを送信します。
受け取ったコードで認証を完了する
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 をご覧ください。