基于关系的访问控制

在计算机系统安全领域，基于关系的访问控制 (ReBAC)定义了一种授权范式，其中主体访问资源的权限由这些主体与资源之间存在的关系来定义。

通常，ReBAC 中的授权是通过遍历关系有向图来执行的。该图的节点和边与资源描述框架 (RDF)数据格式中的三元组非常相似。 ReBAC 系统允许存在关系层次结构，一些系统还允许定义更复杂的关系，包括关系上的代数运算符，例如并集、交集和差集。

ReBAC 随着社交网络应用的兴起而流行起来，在这些应用中，用户需要根据他们与数据接收者之间的关系，而不是接收者的角色，来控制他们的个人信息。使用 ReBAC 可以为团队和群体统一定义权限，从而消除了为每个资源单独设置权限的需要。

与基于角色的访问控制 (RBAC)相比，RBAC 定义了带有特定特权集的角色，并将这些角色分配给主体， ReBAC (与 ABAC 类似) 允许定义更细粒度的权限。例如，如果 ReBAC 系统定义了文档（document）类型的资源，该资源可以允许一个操作编辑者（editor） ，如果系统包含了关系('alice', 'editor', 'document:budget') ，那么主体Alice就可以编辑特定的资源document:budget 。 ReBAC 的缺点是，因为它允许更细粒度的访问，这也就意味着应用程序可能需要执行更多的授权检查。

ReBAC 系统采取默认拒绝的策略，并且可以在它们之上构建 RBAC 系统。

 历史 
ReBAC 这个术语由 Carrie E. Gates 于 2006 年提出。

2019 年，谷歌发表了一篇论文，介绍了“桑给巴尔：谷歌的一致性全球授权系统”。论文定义了一个系统，该系统由命名空间配置和表示为三元组的关系数据组成。

自该论文发表以来，已经有多家公司开发出了商业和开源的 ReBAC 系统产品。

 参见 

 基于角色的访问控制


 实现 

 Zanzibar
 SpiceDB 
 3Edges
 OpenFGA
 Aserto
 Permit.io
 Topaz

 参考 

 外部链接 

 授权和 OpenFGA 简介  
 基于关系的访问控制 (ReBAC)  
 AuthZ：Carta 高度可扩展的权限系统  
 SpiceDB 是一个受桑给巴尔启发的开源数据库，用于存储、计算和验证细粒度的权限。  
 3Edges：真正的ReBAC 和基于知识的授权平台  
 使用 ReBAC 建模类似 Google Drive 的权限  
Category:计算机安全模型
Category:存取控制