跳到主要内容

组织模板

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

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

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

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

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

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

理解组织模板

组织权限

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

组织权限

例如,edit:resource

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

组织角色

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

组织角色

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

备注

我可以将定义在 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,以更强大的方式满足你的特定业务和产品需求。