メインコンテンツまでスキップ

組織を作成する

多数の顧客にサービスを提供する マルチテナントアプリ(例:マルチテナント SaaS アプリ)を構築していると想像してください。各顧客は専用のテナントを所有しています。新しい顧客が到着すると、新しいアカウントを作成し、自分のビジネス用の新しいテナントも作成します。

ちょうどあなたが Logto Cloud アカウントを登録し、自分の Logto テナントを持っているように、Logto の「組織 (Organizations)」機能を使用して、アプリに同じアーキテクチャを実装できます。

組織を作成する

アプリのために組織を作成する方法は 2 つあります。

Logto コンソールを介して作成

Logto コンソール UI を通じて手動で組織を作成します。Console > Organizations に移動して組織を作成し、メンバーとロールを割り当て、組織のサインイン体験 UI をカスタマイズします。

同じ ロール権限 設定を共有する類似の組織を一括作成したい場合は、「組織テンプレート」を作成します。

Logto Management API を介して作成

コンソール UI のボタンをクリックするのも良いですが、エンドユーザーが自分で組織を作成し、あなたのアプリ内で組織を管理できるようにしたいと考えています。そのためには、Logto Management API の助けを借りて、これらの機能をアプリに実装する必要があります。

注記:

Logto Management API に慣れていない場合は、まずこれらのドキュメントを必ず読んでください。

Management APIManagement API と対話する

API バックエンドサーバーをマシン間通信 (M2M) メカニズムを通じて Logto Management API エンドポイントに接続し、M2M アクセス トークンを取得したと仮定します。

Management API を使用して組織を作成します(API リファレンス):

curl \
-X POST https://[tenant_id].logto.app/api/organizations \
-H "Authorization: Bearer $M2M_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tenantId":"string","name":"string","description":"string","customData":{},"isMfaRequired":false,"branding":{"logoUrl":"string","darkLogoUrl":"string","favicon":"string","darkFavicon":"string"},"createdAt":1234567890}'

レスポンス例 (201)

{
"tenantId": "string",
"id": "string",
"name": "string",
"description": "string",
"customData": {},
"isMfaRequired": false,
"branding": {
"logoUrl": "string",
"darkLogoUrl": "string",
"favicon": "string",
"darkFavicon": "string"
},
"createdAt": 1234567890
}

次に、アプリ用の独自の API を実装できます。ユーザーがアプリ内で「組織を作成する」アクションを実行するときに、権限を確認してリクエストを検証し、Logto Management API を呼び出して残りの作業を行うことができます。

ユーザーリクエストでの組織トークンの検証

アプリ内で、ユーザーが組織のコンテキストでアクションを実行する際には、通常のアクセス トークンの代わりに組織トークンを使用する必要があります。組織トークンは、組織の権限を含む特別な種類の JWT です。そして、他の JWT アクセス トークン と同様に、トークンのクレームをデコードし、権限チェックのために「スコープ」クレームを検証できます。

詳細については、これらのドキュメントを確認してください:

組織トークンを検証する

API を保護する

Postgres を使用したマルチテナンシーの実装