組織管理
マルチテナントアプリ を開発する際、一般的なシナリオとして、組織メンバーが自分の組織リソースを自己管理するためのプラットフォームを持つことがあります。
ここでは、管理者ロールと通常のメンバーロールの両方を含む基本的な組織設定を例として取り上げます。
ロール | 権限 |
---|---|
管理者 | 組織内のメンバーを管理する、例:招待、メンバーロールの更新、メンバーの削除など。 組織情報を管理する、例:組織名とカスタムデータの更新、組織の削除など。 |
メンバー | 組織にユーザーを招待することのみ可能。 |
したがって、次の 組織テンプレート を定義できます:
組織テンプレートが設定された後、特定の組織で管理アクションを実行するために、Management API を内部で呼び出す一連の API をサービス内に作成することもできます。サービス内の API は、ユーザーが必要な権限を持っていることを確認するために組織トークンを検証する必要があります。
ユーザーが自分の組織を自己管理する例
マルチ組織アプリでユーザーにできることのリストはこちらです:
すべての人がメンバーを招待できるようにする:
管理者とメンバーの両方が他の人を組織に招待できるようにすることができます。メンバーを招待する詳細については、このドキュメント を確認してください。
管理者がメンバーロールを変更できる:
管理者は他のメンバーのロールを変更する特権を持つことができます。また、管理者は組織のために、部門リーダー、プロジェクトマネージャー、コーディネーターなどのより具体的なロールを作成することができます。これは、次の Management API を使用して実装できます:
curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/users/{userId}/roles \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"organizationRoleIds":["admin"]}'
または一括で:
curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/users/roles \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"userIds":["userId1", "userId2"],"organizationRoleIds":["admin"]}'
組織にボットを追加する
管理者ユーザーが特定の組織にボットを追加できる機能を実装することもできます。これは、最初にマシン間通信 (M2M) アプリを作成し、次にこれらの M2M アプリをボットとして組織に追加することで実現できます。
curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/applications \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"applicationIds":["botAppId"]}'
その後、これらのボットに組織ロールを割り当てることもできます。
curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/applications/roles \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"applicationIds":["botApp1"],"organizationRoleIds":["botRoleId"]}'
Management API でさらなる可能性を解放する
上記の例は、Management API で達成できる多くの可能性のほんの一部です。Logto Management API エンドポイントの完全なリストを確認し、それらで何ができるかを見てみましょう:
組織を取得する組織スコープを取得する
組織ロールを取得する
組織招待を取得する