Okta
オクタ
はじめに
Auth0のOrganizations機能を利用することで、アプリケーションにおけるマルチテナント認証認可の仕組みを作ることができます。具体的には、アプリケーションを利用する企業や組織毎に、異なる認証方式や認証画面デザイン等を提供できます。
Auth0を利用する場合、これまでは各企業や組織単位でAuth0テナントやApplication設定を分ける必要があり、管理対象が複数に分散することによる運用面の負担や機能的な制限がありました。今回ご紹介するOrganizations機能を利用すると、これらの制約を解消できます。
本ページでは、Organizations機能を利用したマルチテナント認証の実現について、設定方法と実際のログイン動作をご紹介します。
前提
本ページ記載の機能及び設定に関する内容は、2023年5月現在の情報となります。
以降の機能アップデート情報は、以下を合わせてご確認ください。
機能概要
Organizations機能は、主に以下の機能を提供します。
- 組織単位での管理
- ユーザ
- 認証画面デザイン(Branding設定)
- 認証方式(Connections設定)
- 組織情報の連携
- Organization情報をアプリケーション側に連携(IDトークン/アクセストークンにOrganization ID値を追加)
- その他
- ユーザは複数のOrganizationに所属可能
- ユーザインビテーション機能(Management API経由での操作も可能)
なお、Organizations機能の利用にあたり、主な留意事項は以下の通りです。
- ご契約プランに応じたOrganization作成数上限あり
- New Universal Loginのみ対応 (Classic Universal Login及びLockは非対応)
- Organizations機能関連のManagement API Rate Limit設定あり
設定例
とあるアプリケーションにおけるマルチテナント認証の実現を例として、Organizations機能の設定方法を説明します。冒頭の図の通り、各企業向けに、異なる認証画面及び認証方式を提供します。
必要な設定の流れは、以下の通りです。
0. 事前準備:アプリケーション起動
1. Organization作成
2. 連携認証方式(Connections)追加
3. 連携ユーザ追加
4. 連携アプリケーション追加
5. 別Organization作成及び各種連携追加
ここから、具体的な設定方法をご紹介します。
0. 事前準備:アプリケーション起動
事前準備として、アプリケーション及びAuth0との連携設定を行います。
- サンプルアプリケーションであるtwclark0/orgs-sample-app(SPA)を利用
- アプリケーションとAuth0との連携設定は、[Auth0とサンプルアプリケーションの連携設定方法]を参考に実施
- アプリケーション側で、Auth0が発行するトークンに含まれるOrganization ID(org_id)値に基づき、社名の画面表示等を行う様に対応
1. Organization作成
- Auth0管理画面で、[Organizations]をクリック
- [ +Create Organization ] をクリック
- 以下項目を入力し、[Add Organization]をクリック
- Name:Organization設定名 ※小文字及びアンダースコアのみ使用可
- Display Name:認証画面でのOrganization表示名
- 以下のメッセージが表示され、設定が完了したことを確認
- [Overview]タブに移動し、認証画面ロゴや配色を変更
- [Save Changes]をクリック
2. 連携認証方式(Connections)追加
- [Connections]タブに移動し、[Enable Connections]をクリック
- [Username-Password-Authentication]を選択し、[Enable Connection]をクリック
- Organizationへの自動登録有無を設定 ※変更した場合は[Save]をクリック
- [Connections]タブに戻り、追加したConnectionを確認
3. 連携ユーザ追加
- [Members]タブに移動し、[Add Members]をクリック
- 登録するユーザを検索し、[Add Member(s)]をクリック
- 登録結果を確認
4. 連携アプリケーション追加
- Auth0管理画面で、[Applications] > [Applications]をクリック
- 「0. 事前準備:アプリケーション起動」で準備したApplication設定をクリック
- [Organization]タブに移動し、以下項目を設定
- What types of end-users will access this application? : Team members of organizations(Organization所属ユーザのみログイン可)
- Display Organization Prompt:ON(ログイン時にOrganization選択画面を表示)
- [Save Changes]をクリック
5. 別Organization作成及び各種連携追加
1.と同様の手順にて、異なるOrganization(Company XYZ)を作成します。また、2.~4.と同様の手順にて、各種連携設定を追加します。
動作確認
1. Company ABCメンバによるログイン
- Webブラウザでサンプルアプリケーションにアクセスし、[Log in]をクリック
- 組織名を入力し、[続ける]をクリック
- Company ABC向けログイン画面が表示されるので、メールアドレス/パスワードを入力し、[続ける]をクリック
- Company ABCのユーザとしてログインできたことを確認
2. Company XYZメンバによるログイン
- Webブラウザでサンプルアプリにアクセスし、[Log in]をクリック
- 組織名を入力し、[続ける]をクリック
- Company XYZ向けログイン画面が表示されるので、外部IdPを利用した認証を実施
- Company XYZのユーザとしてログインできたことを確認
おわりに
Auth0 Organizations機能を用いることで、アプリケーションにおけるマルチテナント認証対応を容易に実現できます。2021年にリリースされた機能であり、認証画面における組織選択手続き等、一部不十分と感じられる点はありますが、今後改善されていくものと期待しています。
Auth0で実現するマルチテナント認証にご興味ある方は、是非弊社までお問合せください。
参考
お問い合わせ・資料請求
株式会社マクニカ Okta 担当
- TEL:045-476-2010
- E-mail:okta@macnica.co.jp
平日 9:00~17:00