跳到主要内容

组织 (Organization) 管理

在开发一个多租户应用时,一个常见的场景是为你的组织成员提供一个平台,以便他们自主管理其组织资源。

我们仍然以包含管理员角色和普通成员角色的基本组织设置为例。

角色权限
管理员管理组织中的组织成员,例如邀请、更新成员角色、删除成员等。
管理组织信息,例如更新组织名称和自定义数据、删除组织等。
成员只能邀请用户加入组织。

因此,我们可以定义以下组织模板

组织模板

在设置组织模板后,你还可以在服务中创建一系列 API,这些 API 在后台调用 Management 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 端点的完整列表,看看你还能用它们做些什么:

获取组织

获取组织权限 (Scopes)

获取组织角色

获取组织邀请