前提条件
- Auth0 Dashboard または Management API を使用して、認証要素として OTP を設定 します。
OTPを登録する
MFAトークンを取得する
登録を開始するタイミングに応じて、MFA API の使用に必要な は、いくつかの方法で取得できます。- authentication 中に登録する場合は、リソース所有者パスワードグラントとMFAを使用して認証する を参照してください。
- ユーザーがいつでも認証要素を登録できるようにする場合は、MFA 認証要素の登録を管理する を参照してください。
認証器を登録する
POST リクエストを送信します。このエンドポイントで必要なベアラートークンは、前のステップで取得した MFA トークンです。
OTP で登録するには、authenticator_types パラメータを [otp] に設定します。
成功すると、次のようなレスポンスが返されます。
User is already enrolled エラーが表示された場合、そのユーザーにはすでに MFA 認証要素が登録されています。ユーザーに別の認証要素を関連付ける前に、既存の認証要素を使ってユーザーにチャレンジする必要があります。
ユーザーが初めて認証器を関連付ける場合は、レスポンスに recovery_codes が含まれます。リカバリーコードは、ユーザーが第2要素認証に使用しているアカウントまたはデバイスにアクセスできなくなった場合に、ユーザーのアカウントへアクセスするために使用されます。これらは1回限り使用できるコードで、必要に応じて新しいものが生成されます。
OTP の登録を確認する
barcode_uri の QR コードをスキャンするか、その OTP アプリケーションにシークレットコードを手動で入力して登録できます。ユーザーが QR コードをスキャンできない場合に備えて、シークレットをテキストとして取得できる手段も提供してください (たとえば、モバイル端末から登録している場合や、デスクトップの OTP アプリケーションを使用している場合) 。
ユーザーがシークレットを入力すると、OTP アプリケーションに 6 桁のコードが表示されるので、そのコードをアプリケーションに入力してもらいます。次に、その otp の値を含めて、アプリケーションから の に POST リクエストを送信する必要があります。
呼び出しに成功すると、アクセストークン を含む以下の形式のレスポンスが返されます。
active に返される値は true になります。
OTP を使用したチャレンジ
MFA トークンを取得する
登録済みの認証器を取得する
受け取ったコードを使用して認証を完了する
otpパラメータにワンタイムパスワードを指定して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 Triggers: post-challenge - API オブジェクトをご覧ください。