跳到主要内容

组织模板

组织模板 是为多租户应用设计的访问控制方案。它基于 基于角色的访问控制 (RBAC) 的基础,但适用于多租户环境,其中组织代表企业、团体或用户。

在组织层面,需要进行访问控制以管理资源的权限。

以下是一个使用 Notion 的示例,这是一款流行的协作工具,也是一个典型的多租户应用。它支持各种认证 (Authentication)授权 (Authorization)功能:

  • 你可以使用一个账户创建和加入多个工作区,而不需要为每个工作区创建单独的账户。
  • Notion 在所有工作区中使用相同的访问级别,如“工作区所有者”和“成员”,即使你可能期望每个工作区有不同的访问级别。

在本章中,我们将重点介绍组织模板,它指的是组织层面的授权 (Authorization) 设计。

要正确设置它,你需要了解组织如何运作以及涉及的不同实体。如果你还没有查看这些内容,请务必阅读这些章节。

理解组织模板

组织权限

组织权限指的是在组织上下文中执行某个操作的授权 (Authorization)。组织权限应表示为一个有意义的字符串,同时也作为名称和唯一标识符。

组织权限

例如,edit:resource

组织权限在没有组织上下文的情况下是没有意义的。例如,组织 org1 上下文中的 edit:resource 与组织 org2 上下文中的 edit:resource 是不同的,因为它们指向不同的资源(org 1 vs org 2)。

组织角色

组织角色是 组织权限API 权限(在 Logto 控制台中的 API 资源 中直接定义的 API 权限)的集合,可以分配给用户。

组织角色

组织角色在没有组织上下文的情况下是没有意义的。例如,组织 org1 上下文中的 admin 与组织 org2 上下文中的 admin 是不同的。

备注:

我可以将 API 资源级别定义的权限分配给组织角色吗?

是的,你可以将 API 权限 分配给组织角色,而不仅仅是 组织级别的权限

Logto Cloud 中的 API 资源 主要保护用户/系统级别的资源,但当系统和组织共享端点时,Logto 允许你将 API 权限分配给组织角色以实现灵活性。

组织模板

组织模板指的是适用于每个组织的组织权限和角色的集合。它被视为组织级别的基于角色的访问控制。

想象一个典型的协作应用,它们自然共享相同的访问控制“模板”,定义了访问级别以及用户在组织中可以做什么。在 Logto 中,我们称之为“组织模板”。

让我们通过一个例子来理解如何将所有内容连接起来:

JohnSarah 在不同的组织中,在不同的组织上下文中拥有不同的角色。

组织模板

从这个图中,你需要知道以下信息:

  1. John 隶属于两个组织,使用电子邮件 [email protected] 作为他的唯一标识符。他在 Organization A 中担任 admin 职位,在 Organization B 中是 guest
  2. Sarah 关联一个组织,使用电子邮件 [email protected] 作为她的唯一标识符。她是 Organization Badmin
  3. AdminMemberGuest 的角色在组织内指定,并且这些角色在各个组织中是一致的。
  4. 可以在组织模板设置中创建其他角色。这些新创建的角色将应用并共享到所有组织中。
备注:

在 Logto 中,组织模板是专为组织设计的访问控制模型。虽然它基于基于角色的访问控制 (RBAC),但它适用于不同的场景。

当你需要为组织设置角色和权限时,使用组织模板。

对于没有组织级别的简单 B2C 应用,使用用户/系统级别的 RBAC。

你可以在 Logto 中同时使用 组织模板用户/系统级别的 RBAC,以更强大的方式满足你的特定业务和产品需求。

案例研究:使用 Logto 组织构建多租户