简体中文
  • organization
  • B2B
  • RBAC
  • auth
  • authentication

组织和基于角色的访问控制:如何为你的产品设计授权模型

本文提供了关于如何为组织和基于角色的访问控制设计授权模型的详细指南,并为 Logto 平台中的不同授权模型提供了最佳实践。

Guamian
Guamian
Product & Design

什么是组织

组织定义

组织是一群用户(身份),可以代表可以访问你的应用程序的团队、商业客户和合作伙伴公司。

组织

组织在企业对企业 (B2B) 环境中特别有效。与个人消费者不同,商业客户通常由团队、组织或整个公司组成,而不是一个人。作为一个实体引入组织很重要,因为它不仅将用户分组,还为多租户应用中的租户隔离提供了上下文。

组织用例

通过这个基本元素,你现在可以为你的 B2B 产品构建必备功能:

  • 构建多租户架构以隔离客户的数据和资源。
  • 应用程序访问级别由分配给组织成员的角色定义。
  • 基于邀请和即时机制配置成员。
  • 每个组织都可以拥有单点登录 (SSO) 认证体验。

什么是基于角色的访问控制?

基于角色的访问控制定义

基于角色的访问控制 (RBAC) 是一种基于用户角色分配权限的方法。基于角色的访问控制是一种围绕角色和权限定义的政策中立访问控制机制。RBAC 的组件如角色权限、用户-角色和角色-角色关系使用户分配变得简单。NIST 的研究表明,RBAC 满足许多商业和政府组织的需求。

基于角色的访问控制用例

以前,我们开发了几份指南帮助你使用 RBAC 满足业务需求。请查看这些易于遵循的教程,快速入门。

🔐 基于角色的访问控制 (RBAC) | Logto 文档

在 Logto 中使用不同的授权模型以实现最佳实践

基于角色的访问控制和组织是 Logto 授权功能的关键组件。作为一个全面的身份管理平台,Logto 为各种场景和层次提供量身定制的解决方案,迎合开发者和企业的多样化产品架构。

API 基于角色的访问控制

为了保护不特定于任何组织且不需要上下文限制的一般 API 资源,API RBAC 功能是理想的。

只需注册 API 并为每个资源分配权限。然后,通过角色和用户之间的关系控制访问。

管理权限

API 资源、角色和权限在统一的身份系统下被“民主化”。这在层次较少且不需要极深数据隔离的 B2C 产品中很常见。

组织基于角色的访问控制

在 B2B 和多租户环境中,租户隔离是必要的。要实现这一点,组织被用作隔离的上下文,这意味着 RBAC 仅在用户属于特定组织时才有效。

组织注册

组织 RBAC 专注于在组织级别而非 API 级别控制访问。这为组织级别自我管理提供了长期的显著灵活性,但仍在统一的身份系统内。

组织 RBAC 的一个关键特性是角色和权限通常在所有组织中是统一的,这使得 Logto 的“组织模板”极大地提升了开发效率。

组织模板

这与多租户应用共享哲学一致,其中访问控制策略和身份是所有租户(应用租户)的通用基础组件,这是 SaaS 产品中的常见做法。

选择和设计合适的授权模型

选择适当的授权模型时,请考虑以下问题:

  1. 你是在开发 B2C、B2B 还是两者结合的产品?身份被认为是商业身份吗?
  2. 你的应用程序需要多租户架构吗?
  3. 是否需要根据业务部门确定你的应用程序中的某一程度的隔离?
  4. 需要在组织上下文中定义哪些权限和角色,哪些不是?

B2C 应用程序

让我们使用一个网络应用程序示例:BookHarber,一个在线书店。BookHarber 为客户和工作人员提供多种功能,确保无缝和安全的购物体验。

BookHarber 的主要功能包括:

  1. 浏览和购买书籍:用户可以轻松搜索和购买来自各种类别和作者的图书。
  2. 订单管理和物流跟踪:注册客户可以管理订单、跟踪发货,并收到购买更新。
  3. 特别优惠和节日活动:BookHarber 在特别活动和节日期间提供独家折扣和促销,以吸引和奖励其客户群。
  4. 客户支持:客户可以打开支持工单以解决遇到的任何问题或担忧,获得来自 BookHarber 工作人员的及时帮助。
  5. 客户管理:不同角色的工作人员可以管理平台的各个方面,例如客户账户、订单处理和问题解决。

角色

在 BookHarber 生态系统中,我们可以识别几个关键用户角色,如:

  1. 访客:未注册用户可以浏览网站、搜索书籍和查看特别优惠。
  2. 客户:注册用户可以购买书籍、管理订单、跟踪物流和打开支持工单。
  3. 商店管理员:负责监督平台整体管理和运营的工作人员,拥有完全访问权限。
  4. 图书经理:负责图书和类别管理的工作人员。
  5. 客户服务代理:负责回复支持工单的工作人员。
  6. 第三方物流提供商:负责管理和追踪订单发货和交付的外部合作伙伴。
  7. 市场营销人员:负责推广 BookHarber 的工作人员,负责管理特别优惠和活动。

以前,我们开发了几份指南帮助你使用 RBAC 满足业务需求。请查看这些易于遵循的教程,快速入门。

掌握 Logto 中的 RBAC:一个全面的真实示例

B2B 应用程序

多租户应用通常在企业对企业 (B2B) 解决方案中找到自己的定位,如生产力工具、企业资源规划 (ERP) 系统和其他软件即服务 (SaaS) 产品。在此上下文中,每个“租户”通常代表一个商业客户,该客户可能有多个用户(其员工)。此外,商业客户可能有多个租户来表示不同的组织或业务部门。

B2B

创建几个组织

创建组织

定义组织模板以进行组织级别的访问控制

定义组织模板

混合 B2B 和 B2C 应用程序

B2B 应用程序超越 SaaS 产品,通常涉及使用多租户应用。在 B2B 环境中,这些应用程序作为各种团队、商业客户和合作伙伴公司访问你的应用程序的通用平台。

例如,考虑一个提供 B2C 和 B2B 应用的共享乘车公司。B2B 应用程序为多个商业客户服务,并采用多租户架构可以帮助管理其员工和资源。为了说明这一点,如果公司希望保持统一的用户身份系统,它可以设计如下示例中的架构:

让我们以 Sarah 为例。Sarah 拥有个人和商业身份。她以乘客身份使用共享乘车服务,空闲时间也会作为司机。在她的职业角色中,她还管理自己的个人业务,并利用此商业身份与商业客户 1 合作。

在 Logto 中设置的实体

在 Logto 中设置的实体

用户的身份和角色映射

用户的身份和角色映射

定义 API 资源,用户角色

创建 API 资源

角色骑乘者角色司机

设置组织

创建商业组织商业组织详情

Sarah 的个人档案

Sarah 的个人档案 - 组织

Sarah 的个人档案 - 角色

今天构建你的授权。

Logto 提供基于角色的访问控制 (RBAC) 和组织功能,以满足你的授权要求。这些功能设计为可以轻松集成到产品的各个部分。有关更多信息,请查看我们的组织RBAC部分,你也可以立即试用 Logto。