跳到主要内容

创建组织 (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)