跳到主要内容

创建组织 (Organization)

假设你正在构建一个多租户应用(例如,多租户 SaaS 应用),为许多客户提供服务,每个客户拥有一个专属租户。

通常在以下情况下会创建组织 (Organization):

  1. 新客户注册并为其企业创建账户和租户。
  2. 现有用户可以在应用内创建新组织 (Organization)。
新账户创建组织 (Organization) 现有用户创建组织 (Organization)

实现组织 (Organization) 创建​

有两种方式为你的应用创建组织 (Organization)。

通过 Logto 控制台创建​

在 Logto 控制台 UI 中手动创建组织 (Organization)。前往 控制台 > 组织 (Organizations) 创建组织 (Organization)、分配成员和角色,并自定义组织登录体验。

创建一个组织模板,批量创建具有相同角色和权限的类似组织 (Organization)。

通过 Logto Management API 创建​

控制台适合手动设置,但大多数应用允许终端用户自助——直接在你的应用中创建和管理组织 (Organization)。要实现这一点,请使用 Logto Management API 实现这些功能。

备注:

如果你是 Logto Management API 新手,或者还没有阅读过使用 Logto Management API 实现组织 (Organization) 体验的基础介绍,请先阅读以下内容:

使用 Logto Management API 设置你的应用服务

Management API与 Management API 交互

假设你的后端已通过机器对机器 (M2M) 机制连接到 Logto Management API,并且你已经获得了 M2M 访问令牌 (Access token)。

使用 Management API 创建组织 (Organization)(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}'

然后将用户添加为组织 (Organization) 成员(API 参考):

curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/users \
-H "Authorization: Bearer $M2M_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"userIds":["string"]}'

可选地,为用户分配特定的组织 (Organization) 角色(API 参考)。

查看完整 API 规范以获取更多细节。

将这些调用封装在你自己的 API 层中。当用户在你的应用中执行“创建组织 (Organization)”操作时,通过检查其权限来验证请求,然后调用 Logto Management API 完成操作。

验证用户请求中的组织令牌 (Organization token)​

在你的应用中,当用户在组织 (Organization) 上下文中执行操作时,必须使用组织令牌 (Organization token),而不是普通访问令牌 (Access token)。组织令牌 (Organization token) 是一个 JWT,其中包含组织 (Organization) 权限。与任何访问令牌 (Access token)一样,你可以解码声明 (Claims) 并验证 "scope" 声明 (Claim) 以强制执行权限。

更多关于授权 (Authorization) 场景和如何验证组织令牌 (Organization token),请参见 授权 (Authorization)。