Skip to main content
Auth0 には、Universal Login を使用した、組み込みの の登録および認証フローが用意されています。ですが、独自のユーザーインターフェースを作成したい場合は、MFA API を使って実現することもできます。

前提条件

MFA API を使用する前に、アプリケーションで MFA グラントタイプを有効にする必要があります。Auth0 Dashboard > アプリケーション > 詳細設定 > グラントタイプ に移動し、MFA を選択します。

SMS または音声で登録する

MFAトークンを取得する

登録を開始するタイミングに応じて、MFA API の利用に必要な は、いくつかの方法で取得できます。

認証器を登録する

ユーザーの認証器を登録するには、MFA Associate endpoint に POST リクエストを送信します。この endpoint で必要なベアラートークンは、前の手順で取得した MFA トークンです。 SMS or 音声 で登録するには、SMS または 音声 のいずれかでチャレンジできる電話番号を登録します。endpoint を呼び出すには、以下のパラメーターを指定します。oob_channels パラメーターは、ユーザーに code を送信する方法 (SMS または 音声) を示します。 成功すると、次のようなレスポンスを受け取ります。
User is already enrolled エラーが表示される場合、そのユーザーにはすでに MFA の認証要素が登録されています。ユーザーに別の認証要素を関連付ける前に、既存の認証要素でユーザー本人の確認を行う必要があります。 これがユーザーにとって認証器を関連付ける初めてのケースであれば、レスポンスに recovery_codes が含まれていることがわかります。リカバリーコードは、ユーザーがアカウント、または第 2 認証要素の認証に使用しているデバイスにアクセスできなくなった場合に、アカウントへアクセスするために使用されます。これらのコードは 1 回限り有効で、必要に応じて新しいものが生成されます。

SMS または音声による登録を確認する

ユーザーには、アプリケーションに入力する必要がある 6 桁のコードを含むメッセージが届きます。 登録を完了するには、 POST リクエストを送信します。前のレスポンスで返された oob_code と、メッセージで受け取った値を含む binding_code を指定する必要があります。 呼び出しが成功すると、アクセストークン を含む次の形式のレスポンスが返されます:

SMS または音声による認証チャレンジ

MFAトークンを取得する

MFA を使用して Resource Owner Password グラントで認証する の手順に従って、MFAトークンを取得します。

登録済みの認証器を取得する

ユーザーにチャレンジを送信するには、チャレンジする認証要素の authenticator_id が必要です。MFA Authenticators エンドポイント を使用して、登録済みの認証器をすべて一覧表示できます。 次の形式で認証器の一覧が返されます。

OTP を使ってユーザーにチャレンジする

チャレンジを実行するには、対応する authenticator_idmfa_token を使用して、MFA Challenge エンドポイントに POST します。

受信したコードで認証を完了する

成功すると、次のレスポンスが返されます。
アプリケーションでは、メッセージで送信された6桁のコードをユーザーに入力してもらい、その値を binding_code パラメータに設定する必要があります。前の呼び出しで返された binding_codeoob_code を指定して OAuth0 トークンエンドポイントを使用すると、コードを検証し、認証トークンを取得できます。 呼び出しが成功すると、アクセストークン を含む以下の形式のレスポンスが返されます:
注: SMS送信と「無効なコード」エラーの返却は、レート制限の対象です。SMSコードは10回送信でき、1時間ごとに1回分回復します。一方、「無効なコード」エラーは10回まで返され、6分ごとに1回分回復します。

MFA をカスタマイズする

Resource Owner Password Grant、埋め込み、またはリフレッシュトークン フローでのカスタマイズ可能な MFA は、早期アクセスです。この機能を使用すると、Okta の Master Subscription Agreement に記載された該当する Free Trial 条項に同意したものとみなされます。Auth0 のリリース段階の詳細については、Product Release Stages をご覧ください。早期アクセスへの参加をご希望の場合は、Auth0 Support までお問い合わせください。
カスタマイズ可能な 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 トリガー: post-challenge - API Object をご覧ください。

詳しくはこちら