Adaptive MFAをカスタマイズするタイミング
Adaptive MFAのカスタマイズは、ユーザーがMFAに登録されていて、IDとしてメールアドレスを使用することが求められている場合のみ検討するようにしてください。
- どの信頼レベルでMFAをトリガーしたいか?
- リスクをどのように測定したいか?
- Auth0で信頼度を測定したいか、それともカスタム測定をしたいか?
- MFAに登録していないユーザーをどのように処理するか?
信頼度を評価する
Adaptive MFAは、3つの評価分析に基づいて全体的な信頼スコアを計算します。評価ごとに独自の信頼スコアが設定されています。詳細については、「Adaptive MFA」をお読みください。信頼スコア
信頼スコアと関連するアクションについては以下に説明します。カスタム信頼スコア
さまざまなシナリオの全体的な信頼スコアを評価するために独自のメソッドを実装したい場合は、riskAssessmentオブジェクトにあるデータを使用することができます。 以下の例をお読みいただき、Adaptive MFAがさまざまなユースケースの信頼スコアをどのように計算するか理解してください。「リスクが高く、信頼度が低い」シナリオの例
下の表は、リスクが高いために信頼スコアがlow(低)になるシナリオを示しています。
「リスクが低く、信頼度が高い」シナリオの例
下の表は、リスクが低いために信頼スコアがhigh(高)になるシナリオを示しています。
riskAssessmentオブジェクト
riskAssessmentオブジェクトには、全体的な信頼スコア、バージョン情報、および各評価の詳細が含まれています。
assessmentsオブジェクト
assessmentsオブジェクトには、3つの各リスク評価の詳細が含まれています。
各評価には信頼スコア、評価結果を説明するコード、およびその他のコンテキスト情報が含まれています。
アセスメントバックエンドシステムで障害が発生するという極めて稀な状況では、Auth0がデフォルトで安全な動作をとるため、アセスメントコードが
assessment_not_available、関連付けられた信頼度がlowになります。Actionsを使用すると、この信頼度スコアをオーバライドできます。詳細については、「Auth0がアセッサーを実行できない場合の安全な処理」をお読みください。NewDevice評価
NewDevice評価では、ユーザーが既知のデバイスからログインしているかどうかを判定し、以下のプロパティが含まれます。
NewDevice評価コードのプロパティ
NewDevice評価codeプロパティは以下のいずれかの値に等しくなります。
NewDevice評価の詳細オブジェクト
codeプロパティの値がmatch、partial_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の動作に優先します。
low(低)のときにMFAをトリガーします。
下の表は、アクションとデフォルトのAdaptive MFAポリシーアクションの組み合わせに基づいて考えられる結果を示しています。
Actionテンプレート
Auth0には、Adaptive MFAに基づいて、Adaptive MFAとRequire MFA Enrollment(MFA登録を必須にする)という2つのカスタマイズ可能なテンプレートが用意されています。Adaptive MFAテンプレート
このテンプレートは例として、個々のリスク評価を使ってカスタムビジネスフローを構築する方法の始点を提供します。Require MFA Enrollmentテンプレート
このテンプレートは、標準またはAdaptive MFAポリシーを使うときに、MFA登録をどのように強制できるかを示しています。ここでは、event.user.multifactorを使ってユーザーがMFAに登録しているかどうかを確認し、登録していない場合は、登録するよう促します。
Actionのユースケース
ユースケースに基づいてカスタムアクションを構築する方法に関する提案をご紹介します。全体的な信頼スコアがXの場合にアクションを実行する
riskAssessment.confidenceプロパティを評価してから、high、medium、またはlowといった定数と比較します。
信頼スコアがX以上またはX以下である場合にアクションを実行する
信頼スコアは範囲でなく不連続の値です。そのため、比較演算子(<や>など)を使って複数の値を1つの状況で評価することはできません。
複数の状況を使って、処理したいすべての信頼スコアを論理的に組み合わせます。たとえば、信頼スコアがlowより大きいかどうかを知りたい場合は、mediumまたはhighに等しいかどうかを確認します。
全体的な信頼スコアがXの場合に追加の詳細を取得する
riskAssessmentオブジェクトはテナントログに保存されています。ログエントリーを表示し、リスク評価スコアと決定的な要因(理由)を確認します。
riskAssessmentオブジェクトを表示し、結果を別の場所で報告します。たとえば、メールを送信したり、レコードを外部データベースに保存したりできます。
特定の評価に特定の結果が含まれている場合にアクションを実行する
assessmentsオブジェクト(codeプロパティなど)を使って各評価の詳細にアクセスします。
カスタムの全体的な信頼スコアの評価を集約する
assessmentsオブジェクトを使って各評価の詳細にアクセスしてから、confidenceプロパティ、codeプロパティ、またはその両方を使用します。
カスタム信頼スコアの詳細については、「カスタム信頼スコア」をお読みください。
特定の評価に特定の結果が含まれている場合は、現在のトランザクションをブロックし、エラーとメッセージを返します。
assessmentsオブジェクト(codeプロパティなど)を使って各評価の詳細にアクセスします。
UnauthorizedErrorオブジェクトをエラーパラメーターに使用してコールバック関数を返すことで、ログイントランザクションが完了するのをブロックします。UnauthorizedErrorオブジェクトは必ずerrorをunauthorizedに設定しますが、error_messageをカスタマイズすることはできます。
errorおよびerror_messageパラメーターを含んだアプリケーションのコールバックURLにリダイレクトされます。
Auth0が評価を実行できない場合に安全に処理する
リスク評価の実行時に何かしらのエラーが発生した場合、Auth0は自動的にlow信頼レベルを割り当てます。
このシナリオを軽減するには、assessmentsオブジェクトを使って個々の評価のcodeプロパティを点検し、値がassessment_not_availableに設定されているかどうかを確認します。