SaaS利用者(ユーザー)のアカウントについて
SaaSus Platformにおける、SaaS利用者(ユーザー)のアカウントの扱いについて説明します。
1.アカウントの構成要素
アカウントは以下の要素で構成されており、全てを設定することで利用可能になります。
- SaaSユーザー
SaaSに対する認証情報(ID、パスワード)を保持 - テナントユーザー
SaaSユーザーがどのテナントに所属するかを保持 - 役割(ロール)
テナントユーザーがどの権限を持っているかを保持
2.リレーションについて
SaaSユーザーは複数のテナントに所属することが出来ます。
また、テナントの中で複数の役割を持つことが出来ます。
例)
ユーザーAはテナントAに所属しており、管理者の役割を持っている。
ユーザーAはテナントBにも所属しており、管理者と一般ユーザーの役割を持っている。
図で表現すると以下となります。
3.アカウント作成のパターンについて
- セルフサインアップするケース
例)
SaaSを利用したいと思ったユーザーが、セルフサインアップ画面から自分でアカウントを作成する。
アカウント作成時にテナントを作成し、そのテナントの管理者となる。 - SaaSにユーザー作成機能が実装されているケース
例)
テナントの管理者がユーザー作成機能を利用し、役割【管理者、一般ユーザー】を作成する。 - SaaS 運用コンソールからアカウント作成するケース
例)
ユーザーからの申請を受けて、SaaS管理者がSaaS 運用コンソールからアカウントを作成。
メールや Amazon EventBridge 連携などでログイン情報をユーザーに通知し、ユーザーが利用を開始する。
3.1.セルフサインアップするケースの実装
3.1.1.ユーザーのセルフサインアップを許可します
SaaS 開発コンソール - 認証詳細設定 - 認証設定タブ - セルフサインアップ(ユーザー自身による新規登録)の可否
ユーザーが自分でユーザー登録可能を有効にします

セルフサインアップを許可すると、SaaSus Platformが生成するログイン画面に「新規登録はこちら」が表示されます

このリンクからユーザーがアカウントの作成をすることが出来ます。
ここで作成されるのはアカウントの構成要素における、SaaSユーザーが作成されます。
3.1.2.セルフサインアップ後の処理を実装する
セルフサインアップが完了すると、ユーザーはログイン状態でお客様のSaaSに遷移します。
※遷移先の画面
SaaS 開発コンソール - 認証後遷移先 - Callback URL
セルフサインアップを許可している場合、Callback URL において以下の判定を行う必要があります。
この判定は、SaaSus Platform から取得できる UserInfo配列内に tenants 情報が含まれているかどうかで確認できます。
- PHP
- Node.js
- Go
- Python
- Java
- C#(.Net8)
- C#(.Netfw4.8)
// テナント登録がされていない場合は、セルフサインアップ処理を実施
if (empty($request->userinfo['tenants']))
const userInfo = request.userInfo
// テナント登録がされていない場合は、セルフサインアップ処理を実施
if (!userInfo.tenants || userInfo.tenants.length === 0)
userInfo, ok := c.Get(string(ctxlib.UserInfoKey)).(*authapi.UserInfo)
// テナント登録がされていない場合は、セルフサインアップ処理を実施
if len(userInfo.Tenants) == 0