Skip to main content
Auth0 Actions を使用すると、さまざまなシナリオに合わせて をカスタマイズできます。

Adaptive MFA をカスタマイズするタイミング

Adaptive MFA のカスタマイズを検討すべきなのは、ユーザーが MFA に登録済みで、かつ識別子としてメールアドレスを使用する必要がある場合に限られます。
ユーザーが に登録されていない場合は、Adaptive MFA のデフォルトポリシーを使用してください。ユーザーが MFA に登録されておらず、かつ Action が高リスクと判断した場合、 を阻止するための手段は限られます。 Adaptive MFA のカスタマイズを始める前に、いくつか自問してみてください。
  • どの信頼度レベルで MFA をトリガーしますか?
  • リスクをどのように測定しますか?
  • 信頼度は Auth0 に測定させますか、それとも独自に測定しますか?
  • MFA に登録されていないユーザーにどう対応しますか?

信頼度スコア

Adaptive MFA は、NewDeviceImpossibleTravelUntrustedIP の 3 つの評価の分析に基づいて、総合的な信頼度スコアを算出します。詳しくは、Adaptive MFA: 仕組みを参照してください。 各評価にはそれぞれ独自の信頼度スコアがあり、各信頼度スコアには対応するアクションがあります。
次の表は、low の信頼度スコアとなる高リスクのシナリオを示しています。次の表は、high の信頼度スコアとなる低リスクのシナリオを示しています。
異なるシナリオにおける総合的な信頼度スコアを評価する独自の方法を実装したい場合は、総合的な信頼度スコア、バージョニング情報、および各評価の詳細を含む riskAssessment オブジェクトで利用可能なデータを使用できます。 riskAssessment オブジェクトの完全な説明、プロパティ、値については、post-login Actions トリガー riskAssessment リファレンスを参照してください。

Action の結果パターン

MFA をトリガーする Actions は、デフォルトの Adaptive MFA の動作よりも優先されます。
お使いの Actions のいずれかが 信頼度スコア に基づいて MFA をトリガーする場合、デフォルトの Adaptive MFA ポリシーでは、信頼度スコア が low のときに MFA がトリガーされます。 次の表は、Actions とデフォルトの Adaptive MFA ポリシーの動作の組み合わせごとに、どのような結果になるかを示しています。

Action テンプレート

Auth0 では、カスタマイズ可能な Adaptive MFA ベースの Action テンプレートとして、Adaptive MFAMFA 登録を必須にする の 2 つを提供しています。

Adaptive MFA テンプレート

このテンプレートは、個々のリスク評価を使用してカスタムのビジネスフローを構築する方法の例と、その出発点を示します。この例では、次を使用します。
  • api.multifactor.enable Action トリガー。これにより、ログインフローの最後に登録の処理と、設定済みの MFA チャレンジ の提示の両方を行います。
  • ユーザーが登録済みの認証要素を含む、event.user.multifactor Actions トリガー。
ユーザーに求めるには、api.multifactor.enableapi.authentication.challengeWithAny() に置き換えて、ユーザーがすでに登録している認証要素で MFA チャレンジを強制します。Actions でサポート対象の認証要素を確認するには、factors パラメータをご覧ください。例:
この例では、登録状況を確認するために event.user.multifactor ではなく event.user.enrolledFactors を使用しています。event.user.multifactor とは異なり、event.user.enrolledFactors には認証要素として email も含まれるため、メールのみを設定しているユーザーについても、登録済みの認証要素を正しく返します。

MFA登録を必須にするテンプレート

このテンプレートでは、標準のポリシーまたはAdaptive MFAポリシーを使用する際に、MFA登録を必須にする方法を示します。event.user.multifactorを使ってユーザーがMFAに登録済みかどうかを確認し、未登録の場合は登録を求めるプロンプトを表示します。

Action のユースケース

ユースケースに応じてカスタム Actions を構築する際の例をいくつか紹介します。
riskAssessment.confidence プロパティを確認し、highmediumlow の定数と比較します。
信頼度スコアは範囲ではなく離散値のため、比較演算子 (<> など) を使って 1 つの条件で複数の値を評価することはできません。対応したい信頼度スコアを論理的に組み合わせるには、複数の条件を使用します。たとえば、信頼度スコアが low より高い場合を判定するには、medium または high と等しいかどうかを確認します。
riskAssessment オブジェクトはテナントログに保存されます。ログエントリを確認すると、リスク評価スコアとその判定要因 (理由) を確認できます。また、riskAssessment オブジェクトを参照して、その結果を別の場所に報告することもできます。たとえば、メールを送信したり、外部データベースにレコードを保存したりできます。
各 評価 の詳細 (code プロパティを含む) にアクセスするには、assessments object を使用します。
各 評価 の詳細にアクセスするには、assessments object を使用し、confidence プロパティ、code プロパティ、またはその両方を利用します。
各 評価 の詳細 (code プロパティを含む) にアクセスするには、assessments object を使用します。エラーパラメータとして UnauthorizedError オブジェクトを指定してコールバック関数を返すことで、ログイントランザクションが完了しないようブロックできます。UnauthorizedError オブジェクトでは error は常に unauthorized に設定されますが、error_message はカスタマイズできます。
これにより、ユーザーは errorerror_message パラメータを含んだ状態で、アプリケーションのコールバック URL にリダイレクトされます。
リスク評価の実行中に何らかの障害が発生した場合、Auth0 は自動的に low の信頼度スコアを割り当てます。この状況に対処するには、assessments object を使用して各 評価 の code プロパティを確認し、値が assessment_not_available に設定されているかどうかを確認します。

詳細情報