Okta
オクタ
はじめに
Auth0ではAdaptive MFA機能を用いることで、ログイン時にリスクのあるユーザと判断された場合のみMFAを要求することができます。例えば、過去30日間で使用されていないデバイスからのログインや、前回のログイン時から時間や距離的に移動不可能な場所からのログインに対して、リスク有りと判断しMFAを要求します。
本ページでは、Adaptive MFA機能の概要と、Rules機能を用いたMFA要求判定のカスタマイズについて、いくつかのパターンに分けて、設定方法と実際の動作をご紹介します。
前提
本ページ内の動作例では、Auth0連携済のWebアプリケーションを対象とします。
また、本ページに記載する機能及び設定に関する内容は、2022年10月現在の情報となります。
Adaptive MFA機能
Auth0におけるAdaptive MFA機能では、NewDevice, ImpossibleTravel, UntrustedIPの3つの評価軸で信頼度スコア(Confidence Score)と理由(code)を算出します。
評価軸 | 対象リスク | 評価方法 |
NewDevice | 30日間ログインされていないデバイスからのログイン試行 |
|
ImpossibleTravel | 前回のログイン時から時間・距離的に不可能な場所からのログイン試行 |
|
UntrustedIP | リスクのあるIPアドレスからのログイン試行 |
|
Adaptive MFA - How it works - Auth0 docs
算出した結果をもとに、MFA要求有無の判断を行います。どの条件でMFAを要求するかについては、Actions機能またはRules機能を用いてカスタマイズを行います。
設定概要
Adaptive MFA機能の利用設定及びMFA要求判定のカスタマイズ設定は、以下の通りです。
- Adaptive MFAの有効化
- Rule:[ Adaptive MFA ]及び[ Require MFA Enrollment ]の有効化
- Ruleにおけるスクリプト編集(JavaScript記述)によるMFA要求判定のカスタマイズ
- Adaptive MFA機能により算出されるConfidence Score値またはCodes値に基づきMFA要求を判定
- Adaptive MFA機能により算出されるConfidence値またはCode値に基づきMFA要求を判定
Adaptive MFA - assessments object - Auth0 docs
ここから、Rules機能を用いた具体的な設定方法と動作確認例をご紹介します。Actions機能を用いた設定方法は、以下をご確認ください。
Adaptive MFA機能におけるMFA要求判定をActions機能に利用移行してみた
設定例(NewDevice評価結果としてのconfidence.score値に基づくMFA要求判定)
- Auth0管理画面において、[ Security ] > [ Multi-factor Auth ]をクリック
- [ Factors ] で任意のMFAを有効化
- [ Require Multi-factor Auth ]において[ Use Adaptive MFA ]を選択し、[ Save ]をクリック
※MFA Risk Assessorsで[ Use Adaptive MFA ]を選択すると、リスク評価が自動的に有効となりテナントログに記録されます。
- Auth0管理画面において、[ Auth Pipeline ] > [ Rules ]をクリック
- Rule [ Adaptive MFA ]と[ Require MFA Enrollment ]を有効化
- Adaptive MFA:Adaptive MFA機能による評価結果によるMFA要求判定
- Require MFA Enrollment:MFA登録の強制
- 先ほど有効化したRule [ Adaptive MFA ]をクリック
予め記載されている処理内容(NewDevice評価結果としてのconfidence.score値に基づいてMFAを要求)を確認
- デバッグ用途として、スクリプト内に以下を追記
- console.log(riskAssessment.assessments.NewDevice.confidence);
- 信頼度スコアの値をログ出力
- console.log(shouldPromptMfa);
- MFAを発動させるかどうかの判断結果(trueで発動)をログ出力
動作確認例:前回ログイン時と異なるデバイスでのログイン試行
- Auth0連携済のWebアプリケーション画面において、ログイン/ログアウト操作を実施。このログイン操作では、MFA要求されないことを確認
- Adaptive MFA機能により新しいデバイスからのログインであると判断させるために、前回ログイン時とは異なるUserAgentのWebブラウザでログイン操作を実施
- ログイン時にMFAが要求されることを確認
(補足)Rule:Adaptive MFAにおける判定処理ログ出力
Rule:Adaptive MFA内における判定処理に関するログは、Auth0テナントログ(Monitoring > Logs)には出力されないため、以下の方法でログ出力を確認します。
- Ruleのスクリプト内にてconsole.logを記述することにより任意のログ出力が可能
設定例(NewDevice評価結果としてのcodes値に基づくMFA要求判定)
- Rule [ Adaptive MFA ]のカスタマイズ例
- switch文:NewDeviceを評価軸とした信頼度スコアの理由(code)でMFA要求を判断する処理に変更
- console.log:デバッグ用途として理由(code)の値をログ出力するように変更
動作確認例
- Auth0連携済のWebアプリケーション画面において、ログイン/ログアウト操作を実施。このログイン操作では、MFA要求されないことを確認
- 前回ログイン時と異なるデバイスであると判断させるために、前回ログイン時とは異なるUserAgentのWebブラウザでログイン操作を実施
- ログイン時にMFAが要求されることを確認
- Real-time Webtask Logsの画面上にてログ出力:理由(code)の値を確認
設定例(ImpossibleTravel評価結果としてのconfidence.score値に基づくMFA要求判定)
- Rule [ Adaptive MFA ]のカスタマイズ例
- switch文:ImpossibleTravelを評価軸とした信頼度スコア(confidence.score)でMFA要求を判断する処理に変更
- console.log:デバッグ用途として信頼度スコア(confidence.score)及び理由(code)の値をログ出力するように変更
動作確認例
- Auth0連携済のWebアプリケーション画面において、日本国内からログイン/ログアウト操作を実施。このログイン操作では、MFA要求されないことを確認
- 1.の直後に、時間・距離的にログイン不可能な場所(アメリカなど)からログイン操作を実施
- ログイン時にMFAが要求されることを確認
- Real-time Webtask Logsの画面上にてログ出力:理由(code)の値を確認
まとめ
Auth0のAdaptive MFA機能を利用することで、認証プロセスでリスクに応じたMFA要求の制御を実現することができます。また、Rules機能によるコーディングで、MFA要求判定をカスタマイズできます。カスタマイズにあたり、コーディングする上で必要となるバージョン管理やテスト、デバック機能も予め備わっています。
無償のAuth0トライアル環境においてもAdaptive MFA機能をお試しいただけます。Auth0のAdaptive MFA機能にご興味がある方は、是非弊社までお問い合わせください。
参考
お問い合わせ・資料請求
株式会社マクニカ Okta 担当
- TEL:045-476-2010
- E-mail:okta@macnica.co.jp
平日 9:00~17:00