跳到主要内容

创建组织 (Organization)

想象一下,你正在构建一个多租户应用(例如,多租户 SaaS 应用),它为众多客户提供服务,每个客户都拥有一个专属租户。当有新客户到来时,他们会创建一个新账户,以及一个属于自己业务的新租户。

就像你注册了自己的 Logto Cloud 账户并拥有了自己的 Logto 租户一样。你也可以在你的应用中实现同样的架构,利用 Logto 的「组织 (Organization)」功能。

创建你的组织 (Organizations)

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

通过 Logto 控制台创建

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

如果你想批量创建具有相同角色和权限设置的类似组织,可以创建一个「组织模板」。

通过 Logto Management API 创建

在控制台 UI 上点击按钮当然很方便,但我们真正想要的是让终端用户自助创建组织 (Organizations),并在你的应用中自行管理组织 (Organizations)。因此,你需要在你的应用中实现这些功能,并借助 Logto Management API。

备注:

如果你还不熟悉 Logto Management API,请务必先阅读以下文档。

Management API与 Management API 交互

假设你已经通过机器对机器 (M2M) 机制将你的 API 后端服务器连接到 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}'

响应示例 (201)

{
"tenantId": "string",
"id": "string",
"name": "string",
"description": "string",
"customData": {},
"isMfaRequired": false,
"branding": {
"logoUrl": "string",
"darkLogoUrl": "string",
"favicon": "string",
"darkFavicon": "string"
},
"createdAt": 1234567890
}

接下来,你可以为你的应用实现自己的 API。当你的用户在应用中执行“创建组织 (Organization)”操作时,你可以通过检查他们的权限来验证请求,然后调用 Logto Management API 完成后续操作。

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

在你的应用中,当用户在某个组织 (Organization) 的上下文中执行操作时,他们需要使用组织令牌 (Organization token),而不是普通的访问令牌 (Access token)。组织令牌 (Organization token) 是一种特殊的 JWT,其中包含组织权限。就像任何 JWT 访问令牌 (Access tokens) 一样,你可以解码令牌声明 (Claims),并验证 "scope" 声明 (Claim) 以进行权限检查。

更多关于授权 (Authorization) 场景以及如何验证组织令牌 (Organization tokens) 的信息,请参阅 授权 (Authorization)