组织 (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)
获取组织角色获取组织邀请