跳到主要内容

组织模板

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

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

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

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

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

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

理解组织模板

组织权限

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

Organization Permissions

例如,edit:resource

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

组织角色

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

Organization Roles

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

备注

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

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

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

组织模板

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

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

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

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

Organization Template

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

  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,从而采用更强大的方法来满足你的特定业务和产品需求。要了解 RBAC,请参阅此 部分