跳到主要内容

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