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");
  }
};

補足

  • [Deploy]をクリック
  • 作成したActionが正常にDeployされたことを確認

2. Login FlowへのAction組み込み

  • Auth0管理画面において、[Actions] > [Flows]をクリック
Auth0管理画面において、[Actions] > [Flows]をクリック
  • 組み込むFlowとして、[Login]を選択
組み込むFlowとして、[Login]を選択
  • 1.で作成したActionをドラッグ&ドロップし、画面左側のフロー図に組み込む
1.で作成したActionをドラッグ&ドロップし、画面左側のフロー図に組み込む
  • [Apply]をクリック
[Apply]をクリック
  • 正常に反映されたことを確認
正常に反映されたことを確認

3. 既存Rule無効化

  • Auth0管理画面において、[Auth Pipeline] > [Rules]をクリック
Auth0管理画面において、[Auth Pipeline] > [Rules]をクリック
  • [Require MFA Enrollment]と[Adaptive MFA]を無効化
[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 担当

月~金 8:45~17:30