メインコンテンツへスキップ
は、Auth0 Actionsを使用してさまざまなシナリオでカスタマイズできます。

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

Adaptive MFAのカスタマイズは、ユーザーがMFAに登録されていて、IDとしてメールアドレスを使用することが求められている場合のみ検討するようにしてください。
ユーザーがに登録されていない場合は、Adaptive MFAにデフォルトのポリシーを使用してください。ユーザーがMFAに登録されておらず、アクションが高リスクだと判断した場合、不正者を阻止する方法は限られてしまいます。 Adaptive MFAのカスタマイズを始める前に、ご自身で以下の点を検討してください。
  • どの信頼レベルでMFAをトリガーしたいか?
  • リスクをどのように測定したいか?
  • Auth0で信頼度を測定したいか、それともカスタム測定をしたいか?
  • MFAに登録していないユーザーをどのように処理するか?

信頼度を評価する

Adaptive MFAは、3つの評価分析に基づいて全体的な信頼スコアを計算します。評価ごとに独自の信頼スコアが設定されています。詳細については、「Adaptive MFA」をお読みください。

信頼スコア

信頼スコアと関連するアクションについては以下に説明します。

カスタム信頼スコア

さまざまなシナリオの全体的な信頼スコアを評価するために独自のメソッドを実装したい場合は、riskAssessmentオブジェクトにあるデータを使用することができます。 以下の例をお読みいただき、Adaptive MFAがさまざまなユースケースの信頼スコアをどのように計算するか理解してください。

「リスクが高く、信頼度が低い」シナリオの例

下の表は、リスクが高いために信頼スコアがlow(低)になるシナリオを示しています。

「リスクが低く、信頼度が高い」シナリオの例

下の表は、リスクが低いために信頼スコアがhigh(高)になるシナリオを示しています。

riskAssessmentオブジェクト

riskAssessmentオブジェクトには、全体的な信頼スコア、バージョン情報、および各評価の詳細が含まれています。

assessmentsオブジェクト

assessmentsオブジェクトには、3つの各リスク評価の詳細が含まれています。
  1. NewDevice評価
  2. ImpossibleTravel評価
  3. UntrustedIP評価
  4. PhoneNumber評価
各評価には信頼スコア、評価結果を説明するコード、およびその他のコンテキスト情報が含まれています。
アセスメントバックエンドシステムで障害が発生するという極めて稀な状況では、Auth0がデフォルトで安全な動作をとるため、アセスメントコードがassessment_not_available、関連付けられた信頼度がlowになります。Actionsを使用すると、この信頼度スコアをオーバライドできます。詳細については、「Auth0がアセッサーを実行できない場合の安全な処理」をお読みください。

NewDevice評価

NewDevice評価では、ユーザーが既知のデバイスからログインしているかどうかを判定し、以下のプロパティが含まれます。
NewDevice評価コードのプロパティ
NewDevice評価codeプロパティは以下のいずれかの値に等しくなります。
NewDevice評価の詳細オブジェクト
codeプロパティの値がmatchpartial_match、またはno_matchに等しい場合、NewDevice評価には以下のプロパティを持つdetailsオブジェクトが含まれます。

ImpossibleTravel評価

ImpossibleTravel評価では、ユーザーが不可能な移動を示す場所からログインしているかどうかを判定し、以下のプロパティが含まれます。

UntrustedIP評価

UntrustedIP評価では、ユーザーのIPアドレスがレピュテーションが低いIPアドレス(「拒否リスト」)のAuth0のリポジトリに存在するかどうかを判定し、以下のプロパティが含まれます。
UntrustedIP評価の詳細オブジェクト
UntrustedIP評価のcodeプロパティの値がfound_on_deny_listに等しい場合、detailsオブジェクトは存在し、以下のプロパティが含まれます。
UntrustedIP評価の詳細オブジェクトカテゴリのプロパティ
UntrustedIP評価のdetailsオブジェクトcategoryのプロパティでは、Adaptive MFAが特定のIPアドレスを信用できないものとみなす一般的な理由を説明し、以下のいずれかの値に等しくなります。

PhoneNumber評価

PhoneNumber評価では、送られてくるトランザクションに指定された電話番号のリスクを判定し、以下のプロパティが含まれます。
PhoneNumber評価の詳細オブジェクト
PhoneNumber評価のdetailsオブジェクトには、以下のプロパティが含まれます。

アクションの結果

MFAをトリガーするアクションは、デフォルトのAdaptive MFAの動作に優先します。
いずれかのアクションが信頼スコアに基づいてMFAをトリガーする場合、デフォルトのAdaptive MFAポリシーは、信頼スコアがlow(低)のときにMFAをトリガーします。 下の表は、アクションとデフォルトのAdaptive MFAポリシーアクションの組み合わせに基づいて考えられる結果を示しています。

Actionテンプレート

Auth0には、Adaptive MFAに基づいて、Adaptive MFARequire MFA Enrollment(MFA登録を必須にする)という2つのカスタマイズ可能なテンプレートが用意されています。

Adaptive MFAテンプレート

このテンプレートは例として、個々のリスク評価を使ってカスタムビジネスフローを構築する方法の始点を提供します。

Require MFA Enrollmentテンプレート

このテンプレートは、標準またはAdaptive MFAポリシーを使うときに、MFA登録をどのように強制できるかを示しています。ここでは、event.user.multifactorを使ってユーザーがMFAに登録しているかどうかを確認し、登録していない場合は、登録するよう促します。

Actionのユースケース

ユースケースに基づいてカスタムアクションを構築する方法に関する提案をご紹介します。

全体的な信頼スコアがXの場合にアクションを実行する

riskAssessment.confidenceプロパティを評価してから、highmedium、またはlowといった定数と比較します。

信頼スコアがX以上またはX以下である場合にアクションを実行する

信頼スコアは範囲でなく不連続の値です。そのため、比較演算子(<>など)を使って複数の値を1つの状況で評価することはできません。 複数の状況を使って、処理したいすべての信頼スコアを論理的に組み合わせます。たとえば、信頼スコアがlowより大きいかどうかを知りたい場合は、mediumまたはhighに等しいかどうかを確認します。

全体的な信頼スコアがXの場合に追加の詳細を取得する

riskAssessmentオブジェクトはテナントログに保存されています。ログエントリーを表示し、リスク評価スコアと決定的な要因(理由)を確認します。 riskAssessmentオブジェクトを表示し、結果を別の場所で報告します。たとえば、メールを送信したり、レコードを外部データベースに保存したりできます。

特定の評価に特定の結果が含まれている場合にアクションを実行する

assessmentsオブジェクト(codeプロパティなど)を使って各評価の詳細にアクセスします。

カスタムの全体的な信頼スコアの評価を集約する

assessmentsオブジェクトを使って各評価の詳細にアクセスしてから、confidenceプロパティ、codeプロパティ、またはその両方を使用します。 カスタム信頼スコアの詳細については、「カスタム信頼スコア」をお読みください。

特定の評価に特定の結果が含まれている場合は、現在のトランザクションをブロックし、エラーとメッセージを返します。

assessmentsオブジェクト(codeプロパティなど)を使って各評価の詳細にアクセスします。 UnauthorizedErrorオブジェクトをエラーパラメーターに使用してコールバック関数を返すことで、ログイントランザクションが完了するのをブロックします。UnauthorizedErrorオブジェクトは必ずerrorunauthorizedに設定しますが、error_messageをカスタマイズすることはできます。
これによってユーザーは、errorおよびerror_messageパラメーターを含んだアプリケーションのコールバックURLにリダイレクトされます。

Auth0が評価を実行できない場合に安全に処理する

リスク評価の実行時に何かしらのエラーが発生した場合、Auth0は自動的にlow信頼レベルを割り当てます。 このシナリオを軽減するには、assessmentsオブジェクトを使って個々の評価のcodeプロパティを点検し、値がassessment_not_availableに設定されているかどうかを確認します。

もっと詳しく