Skip to main content
Auth0 には、Universal Login を使用した組み込みの の登録および認証フローが用意されています。ただし、独自のユーザーインターフェイスを作成する場合は、MFA API を使用して実現できます。 認証要素としてメールが有効になっている場合、メールアドレスが確認済みのすべてのユーザーは、それを使用して MFA を完了できます。

利用可否は Auth0 のプランによって異なります

この機能が利用できるかどうかは、使用しているログイン実装と Auth0 のプランまたはカスタム契約の両方によって異なります。詳しくは、Pricing をご覧ください。

前提条件

MFA API を使用する前に、アプリケーションで MFA グラントタイプを有効にする必要があります。Auth0 Dashboard > アプリケーション > Advanced Settings > Grant Types に移動して、MFA を選択します。
  • Email を認証要素として、Auth0 Dashboard または Management API で設定します。

メールを登録する

ユーザーがプライマリーアイデンティティの確認済みメールアドレスに加えて、別のメールアドレスも登録できるようにするには、次の手順を行います。

MFAトークンを取得する

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

認証器を登録

ユーザーの認証器を登録するには、MFA Associate エンドポイントに POST リクエストを送信します。このエンドポイントで必要なベアラートークンは、前のステップで取得した MFAトークン です。 次のパラメーターを使用します。 成功すると、次のようなレスポンスが返されます。
User is already enrolled エラーが表示された場合、そのユーザーにはすでに MFA の認証要素が登録されています。ユーザーに別の認証要素を関連付ける前に、既存の認証要素でチャレンジを実行する必要があります。 これがユーザーが初めて認証器を関連付ける場合、レスポンスに recovery_codes が含まれていることがわかります。リカバリーコードは、第 2 認証要素の認証に使用しているアカウントやデバイスにアクセスできなくなった場合に、ユーザーがアカウントにアクセスするために使用されます。これらのコードは 1 回限り有効で、必要に応じて新しいコードが生成されます。

メール登録を確認する

ユーザーには、アプリケーションに入力する6桁のコードが記載されたメールが届きます。 登録を完了するには、/oath/token エンドポイントに POST リクエストを送信します。前のレスポンスで返された oob_code と、メール本文に記載された値を binding_code に含めてください。 呼び出しに成功すると、access token を含む以下の形式のレスポンスが返されます:
この時点で、認証器の関連付けは完全に完了しており、使用できる状態になっています。また、ユーザーの認証トークンも取得済みです。 認証器が確認済みかどうかは、いつでも MFA Authenticators エンドポイントを呼び出して確認できます。認証器が確認済みであれば、active に返される値は true です。 必要に応じて、ユーザーが受信するメールをカスタマイズできます。詳しくは、メールテンプレートをカスタマイズする を参照してください。

メールによる認証チャレンジ

MFAトークンを取得

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

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

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

OTP でユーザーに認証を求める

メールによるチャレンジを開始するには、対応する authenticator_idmfa_token を使用して、MFA Challenge エンドポイントに POST リクエストを送信します。

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

成功すると、次のレスポンスが返されます。
アプリケーションは、ユーザーにコードの入力を求め、次のoauth``/tokenエンドポイントへの呼び出しで、そのコードをbinding_codeパラメータの一部としてリクエストに含めて送信する必要があります。 呼び出しに成功すると、以下の形式で access token を含むレスポンスが返されます。

MFA をカスタマイズする

Resource Owner Password Grant、埋め込み、またはリフレッシュトークンのフローで利用するカスタマイズ可能な MFA は、早期アクセス機能です。この機能を使用することで、Okta の Master Subscription Agreement に定められた該当する Free Trial 条項に同意したものとみなされます。Auth0 のリリースステージの詳細については、Product Release Stages をご覧ください。早期アクセスへの参加を希望する場合は、Auth0 Support までお問い合わせください。
カスタマイズ可能な MFA を使用すると、ユーザーはアプリケーションでサポートされている任意の認証要素を登録し、選択した認証要素でチャレンジを受けられます。 oauth/token endpoint での authentication 中、レスポンスでは mfa_required エラーが返されます。このエラーには、MFA API で使用する mfa_token と、認証器の一覧を含む mfa_requirements パラメーターが含まれます。
mfa_token を使用して mfa/authenticator endpoint を呼び出し、ユーザーが登録済みのすべての認証要素の一覧を取得したうえで、アプリケーションがサポートする同じ種類のものを特定します。チャレンジを発行するには、対応する authenticator_type も取得する必要があります:
request/mfa/challenge endpointを呼び出して、MFAチャレンジを必須にします。 Auth0 Actionsを使用すると、MFAフローをさらにカスタマイズできます。詳細については、Actions トリガー: post-challenge - API オブジェクトをご覧ください。

詳細はこちら