组织和基于角色的访问控制:如何为你的产品设计授权模型
本文提供了关于如何为组织和基于角色的访问控制设计授权模型的详细指南,并为 Logto 平台中的不同授权模型提供了最佳实践。
本文提供了关于如何为组织和基于角色的访问控制设计授权模型的详细指南,并为 Logto 平台中的不同授权模型提供了最佳实践。
组织是一群用户(身份),可以代表可以访问你的应用程序的团队、商业客户和合作伙伴公司。

组织在企业对企业 (B2B) 环境中特别有效。与个人消费者不同,商业客户通常由团队、组织或整个公司组成,而不是一个人。作为一个实体引入组织很重要,因为它不仅将用户分组,还为多租户应用中的租户隔离提供了上下文。
通过这个基本元素,你现在可以为你的 B2B 产品构建必备功能:
基于角色的访问控制 (RBAC) 是一种基于用户角色分配权限的方法。基于角色的访问控制是一种围绕角色和权限定义的政策中立访问控制机制。RBAC 的组件如角色权限、用户-角色和角色-角色关系使用户分配变得简单。NIST 的研究表明,RBAC 满足许多商业和政府组织的需求。
以前,我们开发了几份指南帮助你使用 RBAC 满足业务需求。请查看这些易于遵循的教程,快速入门。
基于角色的访问控制和组织是 Logto 授权功能的关键组件。作为一个全面的身份管理平台,Logto 为各种场景和层次提供量身定制的解决方案,迎合开发者和企业的多样化产品架构。
为了保护不特定于任何组织且不需要上下文限制的一般 API 资源,API RBAC 功能是理想的。
只需注册 API 并为每个资源分配权限。然后,通过角色和用户之间的关系控制访问。

API 资源、角色和权限在统一的身份系统下被“民主化”。这在层次较少且不需要极深数据隔离的 B2C 产品中很常见。
在 B2B 和多租户环境中,租户隔离是必要的。要实现这一点,组织被用作隔离的上下文,这意味着 RBAC 仅在用户属于特定组织时才有效。

组织 RBAC 专注于在组织级别而非 API 级别控制访问。这为组织级别自我管理提供了长期的显著灵活性,但仍在统一的身份系统内。
组织 RBAC 的一个关键特性是角色和权限通常在所有组织中是统一的,这使得 Logto 的“组织模板”极大地提升了开发效率。

这与多租户应用共享哲学一致,其中访问控制策略和身份是所有租户(应用租户)的通用基础组件,这是 SaaS 产品中的常见做法。
选择适当的授权模型时,请考虑以下问题:
让我们使用一个网络应用程序示例:BookHarber,一个在线书店。BookHarber 为客户和工作人员提供多种功能,确保无缝和安全的购物体验。
BookHarber 的主要功能包括:
在 BookHarber 生态系统中,我们可以识别几个关键用户角色,如:
以前,我们开发了几份指南帮助你使用 RBAC 满足业务需求。请查看这些易于遵循的教程,快速入门。
多租户应用通常在企业对企业 (B2B) 解决方案中找到自己的定位,如生产力工具、企业资源规划 (ERP) 系统和其他软件即服务 (SaaS) 产品。在此上下文中,每个“租户”通常代表一个商业客户,该客户可能有多个用户(其员工)。此外,商业客户可能有多个租户来表示不同的组织或业务部门。



B2B 应用程序超越 SaaS 产品,通常涉及使用多租户应用。在 B2B 环境中,这些应用程序作为各种团队、商业客户和合作伙伴公司访问你的应用程序的通用平台。
例如,考虑一个提供 B2C 和 B2B 应用的共享乘车公司。B2B 应用程序为多个商业客户服务,并采用多租户架构可以帮助管理其员工和资源。为了说明这一点,如果公司希望保持统一的用户身份系统,它可以设计如下示例中的架构:
让我们以 Sarah 为例。Sarah 拥有个人和商业身份。她以乘客身份使用共享乘车服务,空闲时间也会作为司机。在她的职业角色中,她还管理自己的个人业务,并利用此商业身份与商业客户 1 合作。

在 Logto 中设置的实体

用户的身份和角色映射







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