首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RBAC嵌套权限

RBAC嵌套权限
EN

Stack Overflow用户
提问于 2020-07-02 10:18:14
回答 2查看 515关注 0票数 1

我试图在一个网站上实现RBAC (基于角色的访问控制)。

问题在于嵌套对象的权限。

假设我们在网站上有一些项目。每个用户都可以在每个项目中扮演一个角色。例如,user1在project1中具有管理角色,在project2中具有客户角色。

管理角色,例如,包含一些权限,比如添加子项目、删除子项目等等。

我读过的所有关于RBAC的文档都定义了一般权限,比如Add子项目,但是当用户拥有这个权限时,它可以为all projects而不是特定项目添加子项目(这里是project1)。

我如何将这样的许可限制在特定的项目上?

一个糟糕的解决方案是为每个项目定义新的权限。因此,权限将是向project1添加子项目,从project1删除子项目等,并定义相应的角色,如project1 Admin

但是我对这种冗余并不满意;而项目本身可以动态地添加/删除。

EN

回答 2

Stack Overflow用户

发布于 2021-05-14 22:15:32

我认为您遇到了RBAC的一个已知限制:权限只能分配给用户角色(不能分配给资源或操作)。

最近,基于Google的桑给巴尔纸的权限服务有了越来越多的发展,它描述了一个更通用的权限系统,它支持描述资源、用户和它们之间的关系。

在基于桑给巴尔的系统中,您将为项目定义资源,为项目定义管理关系和客户关系,然后定义元组以显示表示数据的实际关系。因此,您可以定义和,这是一种简单的表示和检查资源粒度权限的方法。这是一个概念性的概述,但是有一些具体的服务,您可以在这里阅读它们的实现特定细节,并尝试它们。

我在研究授权作为我新工作的一部分时偶然发现了你的帖子,所以我加入了这个答案,以防其他人遇到类似的挑战。我们收集了一些可能有用的资源:

  • 桑给巴尔是什么?:给出概述的博客文章
  • 游乐场:用于编写和测试名称空间的交互式工具(有一个预先编写的RBAC示例,您也可以进行测试)
票数 1
EN

Stack Overflow用户

发布于 2020-07-02 21:47:10

免责声明:我是RBAC初学者

我理解RBAC的方式是,您拥有结合实际资源和操作的权限。在您的示例中:资源将为"project1“,操作将为"create_subproject",因此该权限将被称为"project1.create_subproject",这意味着您每个资源都有一个权限,因此出现了上述冗余。

我对你的问题的建议是引入一个ResourceGroup。不过,这并不是NIST RBAC标准的一部分。一个ResourceGroup将合并一种常见类型的资源。访问检查通过ResourceGroup中的所有对象,如果它找到您的特定资源,它可以评估允许的操作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62694075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档