
Okta
オクタ
はじめに
Auth0ではActionsという機能を用いることで、ログインやユーザ登録等の認証プロセスにおいて、カスタムロジックを組み込むことができます。例えば、ログイン時であれば、アクセス元の国やIPアドレスに応じたMFAの要求や認証の拒否、ユーザ登録時であれば、メール認証を強制する等の動作を実現することができます。
本ページでは、特定のIPアドレスまたは特定のメールアドレスからのログイン時のみMFA要求をスキップさせる動作の実現を例として、設定方法と実際の動作をご紹介します。
前提
本ページに記載する機能及び設定に関する内容は、2022年10月現在の情報となります。
設定概要
Actions機能を利用したカスタムロジック実現における設定は、以下の流れとなります。
1.Actionを新規作成
・コード編集(JavaScript記述)によるカスタムロジックの定義
2.作成したActionをTriggersへ組み込み
・作成したActionを発動させるトリガを指定
・トリガは予めAuth0側で定義済のものから選択(ログイン時、ユーザ登録前など)
ここから、具体的な設定方法と動作例をご紹介します。
設定例A:特定IPアドレスからのログイン時のみMFAをスキップ
1.Actionを新規作成
①Auth0管理画面において、[ Actions ] > [ Library ]をクリック

②[Create Action] > [Build from scratch]をクリック

③作成するAction名、Actionのトリガ、実行環境を選択し、[Create]をクリック。
今回はログイン時のフローにActionを組み込むため、[ Trigger ]=[ Login/Post Login ]を選択

④コードエディタにて、実現するロジックを記載(JavaScript記述)
処理内において、MFAをスキップさせたいIPアドレスを指定
exports.onExecutePostLogin = async (event, api) => { if(event.request.ip === "xxx.xxx.xxx.xxx"){ console.log(event.request.ip); return; } api.multifactor.enable("any", {"allowRememberBrowser": false}); };

⑤[Deploy]をクリック

⑥作成したActionが正常にDeployされたことを確認

2.作成したActionをTriggersへ組み込み
①Auth0管理画面において、Actions > Triggersをクリック

②作成したActionを組み込むTriggersを選択。ここでは、[post-login]をクリック

③画面右側のCustomタブに表示されるActionの一覧から、1.で作成したActionをドラッグ&ドロップし、画面左側のフロー図に組み込む

④[Apply]をクリック

⑤正常に反映されたことを確認

動作実現における注意点
今回作成したActionを利用して、特定IPアドレスからのログイン時のみMFAをスキップさせ、その他のログイン時にはMFAを要求させるためには、MFA設定画面における[ Define policies ]を[ Never ]に設定しておく必要があります。[ Define policies ]設定ではMFAを要求せず、Action内の処理でMFAの要求を制御する形とします。
1.Auth0 管理画面において、[ Security ] > [ Multi-factor Auth ]をクリック

2.[ ② Define policies ]の[ Require Multi-factor Auth ]を[ Never ]に設定

動作例A:特定IPアドレスからのログイン時のみMFAをスキップ
1.Auth0連携済みのサンプルアプリを起動し、[Login]をクリック

2.メールアドレスとパスワードを入力し、[続ける]をクリック

3.MFAがスキップされ、ログインできることを確認

設定例B:特定メールアドレスのログイン時のみMFAをスキップ
1.Actionを新規作成
•設定例Aの[ 1. Actionを新規作成 ]と同様に設定
•設定手順④において、処理内容をメールアドレスに対する判定に変更
exports.onExecutePostLogin = async (event, api) => { if(event.request.email === "xxxxxxxxxx@xxx.xxx.xxx"){ console.log(event.request.email); return; } api.multifactor.enable("any", {"allowRememberBrowser": false}); };

2.作成したActionをTriggersへ組み込み
•設定例Aの[ 2. 作成したActionをTriggersへ組み込み ]と同様に設定
動作例B:特定メールアドレスのログイン時のみMFAをスキップ
動作例Aと同様の操作にて、動作を確認
まとめ
このようにAuth0のActions機能を利用することで、認証プロセスにおいて任意の処理要件をカスタマイズで実現できます。コーディングする上で必要となるバージョン管理機能やテスト、デバッグ機能も予め備わっています。無償のAuth0トライアル環境でも、機能をお試しいただけますので、カスタマイズ性の高さをぜひ実感してください。
Auth0では、今回ご紹介したロジックの他にも、Actions機能を利用して様々なカスタムロジックを認証プロセスに組み込むことができます。Auth0のActions機能にご興味がございましたら、是非弊社までお問い合わせください。
参考
Auth0 Actions – Auth0 docs
https://auth0.com/docs/customize/actions
お問い合わせ・資料請求
株式会社マクニカ Okta 担当
- TEL:045-476-2010
- E-mail:okta@macnica.co.jp
平日 9:00~17:00