Adaptive MFA機能におけるMFA要求判定をActions機能に利用移行してみた
はじめに
Auth0では、ログインやユーザ登録等の認証プロセスにおいて、カスタムロジックを組み込むことができます。実現には、Actions/Rules/Hooks機能を利用します。このうち、Rules/Hooks機能について、メーカーよりEOL(End of Life)がアナウンスされました。
- 2023/05/16:Rules/Hooks機能のEOLアナウンス
- 2023/10/16:新規Auth0テナントにおけるRules/Hooks機能利用不可
※既存Auth0テナントでは、EOLのタイミングまでRules/Hooks機能を引き続き利用可能 - 2024/11/18:Rules/Hooks機能利用不可(EOL)
EOLに伴い、Rules/Hooks機能を利用したカスタムロジックは、Actions機能への利用移行が必要となります。これまで、Actions機能では実現出来ないケースがありましたが、徐々に対応が進められています。
例) Adaptive MFA機能によるリスク評価スコアの利用対応
Adaptive MFA Risk Ratings is Available in Actions - Auth0 Changelog (2023/4)
本ページでは、Adaptive MFA機能におけるMFA要求判定について、Actions機能への利用移行方法と実際の動作をご紹介します。
前提
本ページ記載の機能及び設定に関する内容は、2023年6月現在の情報となります。
また、以下ページに従い、Adaptive MFAの有効化及びRules機能によるMFA要求判定設定が行われているものとします。
Auth0 Adaptive MFA機能紹介及びMFA要求判定のカスタマイズ実現
設定概要
Rules機能からActions機能への移行を、以下の流れで実施します。
- MFA要求判定用Action作成
- Login FlowへのAction組み込み
- 既存Rule無効化
以降、具体的な設定方法と動作確認例をご紹介します。
設定例
1. MFA要求判定用Action作成
- Auth0管理画面において、[Actions] > [Library]をクリック
- [Build Custom]をクリック
- 作成するAction名、Actionのトリガ、実行環境を選択し、[Create]をクリック。
※今回はログイン時にActionを動作させるため、Trigger:[Login/Post Login]を選択
- コードエディタにて、MFA要求判定処理を記載(JavaScript記述)
※記載例: 判定基準として、NewDevice/useragent情報を利用
exports.onExecutePostLogin = async (event, api) => { // @ts-ignore console.log("NewDevice useragent :" + event.authentication.riskAssessment.assessments.NewDevice.details.useragent); // @ts-ignore if(event.authentication.riskAssessment.assessments.NewDevice.details.useragent === "unknown"){ console.log("MFA : Require"); api.multifactor.enable("any"); }else{ console.log("MFA : Skip"); } };
補足
- Adaptive MFA機能による判定結果は、event.authentication.riskAssessmentオブジェクトより取得
- 動作デバッグ目的として、console.log()を用いたログ出力(Adaptive MFA機能による判定結果、MFA要求判定結果)を追加
- [Deploy]をクリック
- 作成したActionが正常にDeployされたことを確認
2. Login FlowへのAction組み込み
- Auth0管理画面において、[Actions] > [Flows]をクリック
- 組み込むFlowとして、[Login]を選択
- 1.で作成したActionをドラッグ&ドロップし、画面左側のフロー図に組み込む
- [Apply]をクリック
- 正常に反映されたことを確認
3. 既存Rule無効化
- Auth0管理画面において、[Auth Pipeline] > [Rules]をクリック
- [Require MFA Enrollment]と[Adaptive MFA]を無効化
動作例:前回ログイン時と異なるデバイスでのログイン試行
- Auth0連携済のWebアプリケーション画面において、ログイン操作を実施
※このログイン操作では、MFA要求されないことを確認 - Real-time Webtask Logsの画面上にて、MFA要求のスキップ判定ログを確認
- ログアウト操作を実施
- Adaptive MFA機能により新しいデバイスからのログインと判定させるため、前回ログイン時とは異なるUserAgentのWebブラウザでログイン操作を実施
- ログイン時にMFAが要求されることを確認
- Real-time Webtask Logsの画面上にて、MFA要求判定ログを確認
まとめ
Adaptive MFA機能を例として、Rules機能からActions機能への利用移行をご紹介しました。現時点でも、Actions機能では対応できない処理が一部残っています。メーカーより順次対応するとの情報が出ておりますので、今後も随時情報更新していきたいと思います。
Rules/Hooks機能からActions機能への利用移行に関して、ご不明な点がございましたら、是非マクニカまでお問い合わせください。
参考
お問い合わせ・資料請求
株式会社マクニカ Okta 担当
- TEL:045-476-2010
- E-mail:okta@macnica.co.jp
平日 9:00~17:00