目次
はじめに
B2B向けのサービスは法人や部署のように組織単位でサービスを提供し契約を締結してもらい、その組織単位でサービスを提供するということが必要になります。Auth0ではこういったB2B向けのサービスにも認証認可機能を容易に実装できるような便利機能としてOrganizationsという機能が提供されています。
本ブログ記事ではそのOrganizations機能のご紹介と、実際にB2B向けサービス提供時に求められる主な要件でどのように活用できるかをご紹介いたします。
Auth0のOrganizations機能とは?
まずはじめに、Auth0のOrganizations機能について簡単に説明します。冒頭で説明した通り、特にB2B向けのサービスを提供する場合に、サービスを組織メンバーとして認証認可させる必要がある際に使える便利な機能です。いわゆる1つのサービスをマルチテナント型に複数の組織(法人)に提供する際に使える機能です。以下は、「Understand How Auth0 Organizations Work」(Auth0 Organizationsの機能について理解する)での概要紹介文からの引用(の翻訳)です。
Auth0のOrganizations機能は、エンドユーザーがアクセスするアプリケーションを持つB2Bの実装を最もよくサポートします。
B2B実装の一般的な特徴には以下が含まれます:
● 他の企業にライセンス供与され、その従業員が使用するための製品。
● 各組織が独自のフェデレーション(連携)と、認証エクスペリエンスの簡易的なブランドカスタマイズを必要とする。
● アプリケーション内のアクセスレベルは、各組織のメンバーに割り当てられるロールで表現できる。
それではどのような機能を提供しているのでしょうか?
ドキュメントには詳細に機能紹介がありますが(参考ドキュメント:Configure Organizations)、主に、組織 (Organizations) を管理するための以下の様な機能を提供しています。
- 組織の作成と管理
- メンバーの招待
- メンバーの追加と削除
- メンバーが利用可能なサービスを制御するための設定
これらの機能は基本的には、Auth0のDashboardかManagement APIを経由してのみ操作が可能です。
Orgazations機能の利用ケースイメージ
それでは、Auth0のDashboardを使ったケースを見ていきましょう。
具体的なイメージを以下の図で示すように、サービス提供者はシステム管理者権限で、Auth0の管理画面 (Dashboard) から組織の作成と管理を行うことができます。組織は、提供するサービスの契約主体となる法人や部署などで、契約毎に組織が作成されることが想定されます。
またサービスを使用する実際のユーザーをEmailで、組織へのメンバーとして招待が可能です。これもサービス提供側のシステム管理者が、Auth0の管理画面から直接、メンバーの追加と削除も行うことができます。

ご参考として、実際にAuth0のDashboardでOrganizationsの作成やユーザーを登録する画面を以下に添付します。
(スクロールするといくつか画面がご確認頂けます)




補足:Auth0のユーザーと組織のデータ構造
補足として(以下の図を参照)、複数の異なる組織に同一ユーザーが所属し、それぞれの組織のデータを使用するユースケースがあるため、ユーザーは組織をまたがって所属することが可能です。
Auth0ではユーザーと組織はそれぞれ独立したデータであり、ユーザーは組織の所属メンバーとして扱われます。

サービスが複数になった場合
上記の例では、提供しているサービスが1つの想定でしたが、もう少し複雑なユースケースについて考えていきたいと思います。
企業によっては複数のサービスを提供している場合があり(以下の図のイメージ)、組織との契約内容次第で組織メンバーごとに使用できるサービスの制御を必要とする可能性が高くなります。簡単な例でいうと、あるアプリケーションはすべてのメンバーが利用できるようにし、別のアプリケーションは数名のみが利用できるようにするなどです。

この制御はAuth0のロールとパーミッション(RoleとPermission)の機能を使用することによって実現可能です。ロール(Role)機能を使うことにより、いわゆるRole-based Access Control(RBAC;ロールベースアクセス制御)を実現することができます。この設定についても、Auth0のDashboardの画面からシステム管理者が実施する必要があります。
※参考ドキュメント:Configure Organizations、Add Roles to Organizations Members
以下の図のように、Auth0のDashboardのOrganizationsの機能からユーザーを選択し、Roleをアサインすることが可能です。Roleの設定は、Userの設定から事前にしておく必要があり、1名の登録であれば簡単ですが複数名の登録となってくると何らかのシステム(画面もしくはスクリプト)が必要だと感じてきます。
(※Role と Permissionで実現できる権限の説明についてはまた別の機会にしたいと思います)


ユーザー向けUIの必要性
これまでは組織の管理をAuth0のDashboardを介してシステム管理者が行う説明をしてきました。開発担当者が作業するのであれば認証認可関連の実装すべてをこのDashboard経由でポチポチと進められますので、非常に簡単に設定ができることが分かるかと思います。ただ、一般的にはサービスは不特定多数の組織に提供されます。そして、数十、数百のユーザー向けにサービスを提供する場合には、システム管理者(=開発者)が手作業でOrganizations作成やメンバー追加などを行うことは現実的ではありません。また、Auth0のDashboardはシステム管理者向けとなっており、Auth0全ての設定データが操作可能となってしまうため、ユーザー側に操作させることはできません。
このため、実際には組織ごとにユーザー側に管理者を設定し、ユーザー側の組織管理者がその組織内の管理を行うことが必要となります。(以下図参照)
Auth0は、管理系のAPIをManagement APIとして提供しています。ユーザー側に管理を行わせるためには、このManagement APIを活用したUIの開発が必要になります。(Management APIについては、こちらのブログもご参照ください)

このUIは組織の管理のみならず、さまざまな機能が必要となることが想定されます。(以下図参照)
たとえば各ユーザーがセルフサインアップを行えるようにしたり、パスワードや自身の属性情報を変更できるようにしたりする機能が必要になります。いわゆるマイポータル、マイページのようなものが必要となり、ユーザーや組織の管理のみならず、契約内容の確認、課金内容の確認など様々な機能が必要になってくることが想定されます。

まとめ
ここまで読んでいただきありがとうございます。
本ブログ記事では以下の内容について紹介しました。
①Auth0 Organizations機能の概要と主要機能の紹介
- 複数の組織(法人や部署)に対応可能なマルチテナント型の認証認可を実現できる
- B2Bビジネスを展開するようなサービス提供者には便利な機能
- Auth0 Dashboardから以下の様な設定が可能
- 組織の作成・管理
- メンバーの招待・追加・削除
- サービスごとの利用制御
②複数アプリ展開時をケースとした場合の考慮ポイントの紹介
- 複数アプリケーションを組織(法人や部署)向けに提供する場合には、RoleとPermission機能を使うことで適切にユーザーに権限を付与することができる
- この場合特に「ユーザー管理」をユーザー側に実施して貰う必要があるため、UIの開発が必要
- UIには「ユーザー管理」以外の要素も含めることがある
Auth0は開発者フレンドリーなSaaSであり、Organizations機能は他のIDaaSではカバーしきれていないような機能であり、B2Bサービスを展開するサービス提供者にとってはパワフルな機能です。一方で開発者向けのサービスであるがために、ユーザー向けや業務向けの画面、それを考慮した機能は一部不足している部分があります。まずは上記の観点を認識いただくことで、統合認証基盤(共通認証基盤)のプロジェクトを踏み出す一助としていただければ幸いです。
TC3サービスのご紹介
TC3では、上記のような複数サービスを組織に対して提供するような実装をMS&ADインターリスク総研様向けにご支援させていただきました。事例記事がありますので、是非ご参照ください。
今回の記事で紹介したような課題に対応するソリューションとして、「Tactna Identity Platform」を提供しています。Auth0のアドオンのような位置づけで利用することが可能なソリューションで、開発コストの低減及び業務効率化を実現することが可能です。今回の文脈に合わせTactnaが提供する一部の機能をご紹介します。

Tactnaのデモや詳細ご紹介資料をぜひご確認ください!
(以下バナーもしくはこちらから)
