post-login Actions を使用すると、 フローをカスタマイズして、ユーザーに特定の認証要素への登録を促すことができます。ユーザーが認証要素を登録すると、以後のログインでその要素を追加の認証方法として使用できます。
コンテキスト情報を使用して、MFA 登録フローをさらに細かくカスタマイズすることもできます。たとえば、あるアプリケーションでは SMS への登録を促し、別のアプリケーションではプッシュ通知または WebAuthn への登録を促すことができます。
この機能を使用すると、MFA 登録フローをカスタマイズできます。すでに登録済みのユーザー向けの MFA フローをカスタマイズする場合は、Universal Login の MFA 選択をカスタマイズする を参照してください。
仕組み
post-login トリガーを変更できます。
-
enrollWith: 登録時にユーザーに提示するデフォルトの認証要素を指定します。必要に応じて、ユーザーが選択できる代替の認証要素リストを指定することもできます。これを指定すると、登録プロンプトに[別の方法を試す]リンクが表示されます。 -
enrollWithAny: 登録時にユーザーが選択できる認証要素のセットを指定します。デフォルトでは、このメソッドは、ユーザーが希望する認証要素を選択できる選択プロンプトを表示します。場合によっては、ユーザー体験が次のように変わることがあります。- 2 つ以上の認証要素が指定されている場合は、選択プロンプトがユーザーに表示されます。
- 指定された認証要素のうち 1 つを除いて、ユーザーがすでにすべてに登録済みの場合は、選択プロンプトはスキップされ、残っている認証要素への登録が求められます。
- 指定された認証要素のすべてにユーザーがすでに登録済みの場合は、コマンドは失敗し、ログイン シーケンスは続行されます。
-
otp -
recovery-code -
push-notification -
phonepreferredMethod: voicepreferredMethod: smspreferredMethod: both
-
webauthn-platform -
webauthn-roaming
enrolledFactors に追加されます。このプロパティは、そのユーザー アカウントに関連付けられている有効な認証要素の一覧を表します。
配列 event.authentication.methods には、メソッドの名前が mfa に設定されている場合、type フィールドが含まれます。このフィールドには、enrolledFactors の type フィールドで使用される値と一致する認証要素の値 (文字列) が格納されます。
MFA の登録が発生すると、methods には name:mfa のオブジェクトが含まれ、type にはそのイベントで使用された認証要素が設定されます。methods と enrolledFactors は、Action の開始時にのみ更新されます。登録イベントの結果には、フロー内の次の Action でアクセスできます。
詳細については、次のリソースを参照してください。
順序指定フローとコンテキストベースのフロー
enrollWith または enrollWithAny コマンドを使用すると、コンテキスト情報に基づいて、ユーザーに提示する最適な登録方法や登録の組み合わせを判断できます。
enrollWithコマンドは、最初に提示する、またはデフォルトで選択する認証要素と、代替の認証要素のリストをサポートします。ユーザーが 1 回のコマンドで登録できる認証要素は 1 つだけです。enrollWithAnyコマンドは、認証要素のリストをサポートします。指定した認証要素の順序によって、ユーザーに表示されるリストの順番が決まります。ユーザーが 1 回のコマンドで登録できる認証要素は 1 つだけです。
- 順序指定フロー: 特定の順序で複数の認証要素にユーザーを登録します。
- コンテキストベースのフロー: メタデータやフロー内の前のコマンドに基づいて、どの認証要素のプロンプトをユーザーに表示するかを決定します。
admin ロールを持たないユーザーは、ワンタイムパスワード (OTP) またはセキュリティキーのいずれかに登録する必要があります。逆に、admin ロールを持つユーザーは、両方の認証要素に登録する必要があります。
Action 1 は app_metadata を確認してユーザーが admin かどうかを判定し、そのうえで特定の要素への登録を促します。admin ユーザーが OTP にしか登録していない場合は、まず認証を完了するために OTP でチャレンジを実行します。その後、セキュリティキー (webauthn-roaming) への登録を求められます。
ユーザーアカウントの安全を保つため、追加の要素に登録する前に、ユーザーは既存の
enrolledFactors のいずれかを使用して MFA チャレンジを完了する必要があります。この条件により、異なる要素や構成を持つアプリケーションがすでに使用されたあとでも、カスタムの MFA 登録ポリシーを安全に実装できます。event.user.enrolledFactors と event.authentication.methods の両方が更新されます。これにより、ユーザーに異なる要素でチャレンジするか登録するかの選択肢が提示された場合でも、Action コードは実際のユーザーデータに基づいて判断できます。
注: この Actions の実行方法は、enrollWith または enrollWithAny コマンドを含むものにのみ適用されます。その他の目的の Actions には影響しません。
始める前に
- セットアップ プロセスの詳細については、多要素認証を有効にする を参照してください。
- 個別の認証要素の設定については、多要素認証の認証要素 を参照してください。

enrollWith または enrollWithAny コマンドを含む Actions は、テナントで MFA を有効または無効にする既存のポリシーや Rules をすべて上書きします。
MFA登録フローをカスタマイズする
post-login Actions を作成して MFA 登録フローをカスタマイズできます。
Post-Login Action を作成する
- Actions > Flows に移動し、Login を選択します。
- Add Action パネルで プラス記号 (+) アイコンを選択し、Build from scratch を選びます。
-
Create Action ポップアップで、次の操作を行います。
- Action の名前を入力します。
- トリガーとして Login / Post-Login を選択します。
- ランタイムには Node 22 (Recommended) を使用します。
- ポップアップの内容を確認し、問題がなければ Create を選択します。
-
コードエディターで、
onPostExecute関数にカスタムコードを追加します。 - コードの準備ができたら、Deploy を選択します。
-
デプロイ成功の通知で Add to Flow を選択します。
- 注: 通知が閉じた場合は、コードエディターの上にある Back to Flow を選択します。
- Add Action パネルから新しい Action を Login フローにドラッグ&ドロップし、Apply を選択します。
Post Login Action をテストする
- Authentication > Authentication Profile に移動します。
- Try を選択し、新しいタブでサンプルのログインプロンプトを開きます。
- 認証情報を入力して、新しい MFA フローをテストします。
使用例
ユーザーに登録用のMFAオプションを提示する
トラブルシューティング
テナントログ
| シナリオ | イベント | エラーメッセージ |
|---|---|---|
ユーザーに特定の認証要素での登録が求められます。ただし、要求された認証要素は次のいずれかの条件に該当します。
| w | MFA 登録が PostLogin Action で使用されていますが、要求された認証要素 ${factor.name} が正しく設定されていません。要求された認証要素を有効にし、ユーザーがその認証要素にまだ登録していないことを確認してください。 |
| ユーザーに 1 つ以上の認証要素での登録が求められますが、指定された認証要素を登録に使用できません。この場合、ユーザーはフローを完了できません。 | mfar | MFA 登録が PostLogin Action で使用されていますが、要求された認証要素が正しく設定されていません。MFA を実行するには、要求された認証要素を有効にし、ユーザーがそれらにまだ登録していないことを確認してください。 |
| ユーザーが、既存の登録を使ったチャレンジを少なくとも 1 回完了しないまま、新しい認証要素への登録を試みる。 | mfar | MFA 登録が要求されましたが、ユーザーはすでに MFA に登録済みです。新しい認証要素に登録する前に、少なくとも 1 つの既存の認証要素でチャレンジを完了してください。 |
トラブルシューティング チェックリスト
-
Customize MFA factors with Actions トグルが有効になっている必要があります。
- Auth0 Dashboard > Security > Multi-factor Auth に移動し、Additional Settings セクションのトグルが有効になっていることを確認します。
-
Actions で参照している認証要素は、テナントで有効になっている必要があります。
- コードを確認する: Auth0 Dashboard > Actions > Library > Custom に移動し、Actions のコードを確認します。参照しているすべての認証要素がユースケースに適していることを確認します。
- 認証要素を確認する: Auth0 Dashboard > Security > Multi-factor Auth に移動し、Actions で参照しているすべての認証要素が有効になっていることを確認します。
-
Actions がデプロイされ、パイプラインに保存されていることを確認します。
- Auth0 Dashboard > Actions > Library > Custom に移動します。一覧で Action を見つけ、ステータスが Deployed になっていることを確認します。別のステータスが表示されている場合は、その Action を開いてコードを確認し、右上の Deploy をクリックします。
- Auth0 Dashboard > Actions > Library > Flows に移動し、Login を選択します。Action がフロー内に表示されていることを確認します。表示されていない場合は、Add Action パネルの Custom tab を開き、Action を Login フローにドラッグアンドドロップします。その後、Apply を選択します。
-
post-loginActions の最新バージョンにアップグレードしていることを確認します。- Auth0 Dashboard > Actions > Library > Custom に移動し、Action を選択します。Action が最新でない場合は、Action の更新を促す黄色のバナーが表示されます。バナーが表示された場合は、Update を選択します。
- Deploy CLI を使用している場合は、デプロイ時に
post-loginActions の最新バージョンを指定することもできます。詳細については、Deploy CLI を設定する を参照してください。