メインコンテンツへスキップ

Before you start

  • アプリケーションに対してMFA の付与タイプを有効にします。詳細については、「付与タイプを更新する」をお読みください。
Auth0は、アプリケーションでの多要素認証()に使用しているAuthenticatorの管理に役立つ、いくつかのAPIエンドポイントを提供しています。これらのエンドポイントを使うと、認証要素を管理するためのユーザーインターフェイスをビルドすることができます。

MFA APIアクセストークンを取得する

MFA APIを呼び出して登録を管理するためには、まずMFA API用のアクセストークンを取得する必要があります。 MFA APIを認証フローの一環として使用するには、「リソース所有者のパスワード付与とMFAで認証する」で説明されている手順に従ってください。認証要素を管理するためのユーザーインターフェイスをビルドする場合は、認証中だけでなく、いつでもMFA APIで使用できるトークンを取得する必要があります。 ユニバーサルログインを使用している場合は、MFA APIを呼び出す前に、https://{yourDomain}/mfa/オーディエンスを指定して認可エンドポイントへリダイレクトします。

ユニバーサルログイン

https://{yourDomain}/mfa/が指定されている場合には、MFAが強制されます。エンドユーザーが**[Remember this browser(このブラウザーを記憶する)]** を有効にしたときに、.../mfaがオーディエンスとして指定されている場合、その設定には効果がありません。Auth0では、テナント管理者がアクションを作成して、そのアクションを使ってallowRememberBrowserをfalseに設定することを推奨しています。そうすれば、[Remember this browser(このブラウザーを記憶する)] がエンドユーザーエクスペリエンスで非表示になります。
リソース所有者のパスワード付与(ROPG)を使用している場合には、以下の3つのオプションがあります。

リソース所有者のパスワード付与

MFAオーディエンスのトークンを要求する際、以下のスコープを要求できます。
  • ログイン時にhttps://{yourDomain}/mfa/オーディエンスを要求し、リフレッシュトークンを使用して後でリフレッシュします。
  • Authenticatorをリストおよび削除する必要がある場合は、https://{yourDomain}/mfa/オーディエンスを指定して、/oauth/token再び認証することをユーザーに求めます。ユーザーは、MFAを完了しないと認証要素をリスト・削除できません。
  • Authenticatorのリストのみを必要とする場合は、ユーザー名/パスワードで/oauth/tokenを使用して再び認証することをユーザーに求めます。エンドポイントは、mfa_requiredエラー、およびAuthenticatorのリストに使用できるmfa_tokenを返します。ユーザーがAuthenticatorを確認するには、パスワードを提供する必要があります。

スコープ

スコープ説明
enroll新しいAuthenticatorを登録する。
read:authenticators既存のAuthenticatorを一覧表示する。
remove:authenticatorsAuthenticatorを削除する。
ユーザーのAuthenticatorのリストを取得するには、MFA Authenticatorエンドポイントを呼び出します。

Authenticatorのリスト

curl --request GET \
  --url 'https://{yourDomain}/mfa/authenticators' \
  --header 'authorization: Bearer MFA_TOKEN'
応答にAuthenticatorの種類に関する情報が含まれています。
[
  {
    "authenticator_type": "recovery-code",
    "id": "recovery-code|dev_IsBj5j3H12VAdOIj",
    "active": true
  },
  {
    "authenticator_type": "otp",
    "id": "totp|dev_nELLU4PFUiTW6iWs",
    "active": true,
  },
  {
    "authenticator_type": "oob",
    "oob_channel": "sms",
    "id": "sms|dev_sEe99pcpN0xp0yOO",
    "name": "+1123XXXXX",
    "active": true
  }
]
要素を管理するためのユーザーインターフェイスをエンドユーザー向けにビルドするときは、activefalseのAuthenticatorを無視する必要があります。これらのAuthenticatorは、ユーザーによって確認されないため、MFAチャレンジには使用できません。 MFA APIは、Authenticatorの種類に応じて以下の登録をリストします。
鑑別工具アクション
Push and OTP(プッシュとOTP)プッシュが有効な場合、Auth0はOTP環境も作成します。登録をリストする場合、両方が表示されます。
SMS and Voice(SMSと音声)SMSと音声の両方が有効な場合、SMSまたは音声で登録すると、Auth0は電話番号に対して2つ(SMS用に1つ、音声用にもう1つ)の鑑別工具を自動作成します。
Email(メール)すべての確認されたメールが鑑別工具としてリストされます。
Authenticatorを異なる要素で登録する方法については、以下のリンクを参照してください。

Authenticatorを登録する

また、ユーザーを登録するためにいつでもユニバーサルログインフローを使用できます。 関連するAuthenticatorを削除するには、AUTHENTICATOR_IDを適切なAuthenticator IDに置き換えるMFA AuthenticatorエンドポイントにDELETE要求を送信します。IDは、Authenticatorをリストした際に取得できます。

Authenticatorを削除する

Authenticatorのリストのためにmfa_tokenを使用した場合、Authenticatorを削除するために、ユーザーは、MFAを完了させてhttps://{yourDomain}/mfa/のオーディエンスのアクセストークンを取得する必要があります。
curl --request DELETE \
  --url 'https://{yourDomain}/mfa/authenticators/AUTHENTICATOR_ID' \
  --header 'authorization: Bearer ACCESS_TOKEN'
Authenticatorが削除されると、204応答が返されます。 Authenticatorを削除する際、Authenticatorの種類に応じて以下のアクションが実行されます。
Authenticatorアクション
プッシュ通知とOTPユーザーがAuthenticatorのプッシュ通知を登録すると、Auth0もOTPを登録します。いずれかを削除すると、もう一方も削除されます。
SMSと音声ユーザーがSMSまたは音声を登録すると、Auth0はSMSと音声の2つのAuthenticatorを作成します。いずれかを削除すると、もう一方も削除されます。
メールすべての確認済みメールがAuthenticatorとして表示されますが、削除することはできません。削除できるAuthenticatorのメールは、明示的に登録されているものだけです。
復旧コードを削除して新たに生成するには、Auth0のManagement APIのアクセストークンを取得し、復旧コード再生成エンドポイントを使用します。

復旧コードを再生成する

curl --request POST \
  --url 'https://{yourDomain}/api/v2/users/USER_ID/recovery-code-regeneration' \
  --header 'authorization: Bearer MANAGEMENT_API_TOKEN'
新しい復旧コードが生成され、エンドユーザーはそれをキャプチャする必要があります。例:
{  
   "recovery_code": "FA45S1Z87MYARX9RG6EVMAPE"
}
{  
   "recovery_code": "FA45S1Z87MYARX9RG6EVMAPE"
}

もっと詳しく

I