组织和基于角色的访问控制:如何为你的产品设计授权模型
本文提供了关于如何为组织和基于角色的访问控制设计授权模型的详细指南,并为 Logto 平台中的不同授权模型提供了最佳实践。
什么是组织
组织定义
组织是一群用户(身份),可以代表可以访问你的应用程序的团队、商业客户和合作伙伴公司。
组织在企业对企业 (B2B) 环境中特别有效。与个人消费者不同,商业客户通常由团队、组织或整个公司组成,而不是一个人。作为一个实体引入组织很重要,因为它不仅将用户分组,还为多租户应用中的租户隔离提供了上下文。
组织用例
通过这个基本元素,你现在可以为你的 B2B 产品构建必备功能:
- 构建多租户架构以隔离客户的数据和资 源。
- 应用程序访问级别由分配给组织成员的角色定义。
- 基于邀请和即时机制配置成员。
- 每个组织都可以拥有单点登录 (SSO) 认证体验。
什么是基于角色的访问控制?
基于角色的访问控制定义
基于角色的访问控制 (RBAC) 是一种基于用户角色分配权限的方法。基于角色的访问控制是一种围绕角色和权限定义的政策中立访问控制机制。RBAC 的组件如角色权限、用户-角色和角色-角色关系使用户分配变得简单。NIST 的研究表明,RBAC 满足许多商业和政府组织的需求。
基于角色的访问控制用例
以前,我们开发了几份指南帮助你使用 RBAC 满足业务需求。请查看这些易于遵循的教程,快速入门。
在 Logto 中使用不同的授权模型以实现最佳实践
基于角色的访问控制和组织是 Logto 授权功能的关键组件。作为一个全面的身份管理平台,Logto 为各种场景和层次提供量身定制的解决方案,迎合开发者和企业的多样化产品架构。
API 基于角色的访问控制
为了保护不特定于任何组织且不需要上下文限制的一般 API 资源,API RBAC 功能是理想的。
只需注册 API 并为每个资源分配权限。然后,通过角色和用户之间的关系控制访问。
API 资源、角色和权限在统一的身份系统下被“民主化”。这在层次较少且不需要极深数据隔离的 B2C 产品中很常见。
组织基于角色的访问控制
在 B2B 和多租户环境中,租户隔离是必要的。要实现这一点,组织被用作隔离的上下文,这意味着 RBAC 仅在用户属于特定组织时才有效。
组织 RBAC 专注于在组织级别而非 API 级别控制访问。这为组织级别自我管理提供了长期的显著灵活性,但仍在统一的身份系统内。
组织 RBAC 的一个关键特性是角色和权限通常在所有组织中是统一的,这使得 Logto 的“组织模板”极大地提升了开发效率。
这与多租户应用共享哲学一致,其中访问控制策略和身份是所有租户(应用租户)的通用基础组件,这是 SaaS 产品中的常见做法。
选择和设计合适的授权模型
选择适当的授权模型时,请考虑以下问题:
- 你是在开发 B2C、B2B 还是两者结合的产品?身份被认为是商业身份吗?
- 你的应用程序需要多租户架构吗?
- 是否需要根据业务部门确定你的应用程序中的某一程度的隔离?
- 需要在组织上下文中定义哪些权限和角色,哪些不是?
B2C 应用程序
让我们使用一个网络应用程序示例:BookHarber,一个在线书店。BookHarber 为客户和工作人员提供多种功能,确保无缝和安全的购物体验。
BookHarber 的主要功能包括: