当前位置: 首页 > 知识库问答 >
问题:

基于角色的访问控制(RBAC)关心权限还是角色?

司寇经亘
2023-03-14

读后http://en.wikipedia.org/wiki/Role-based_access_control看到人们建立授权/访问控制的方式,我想到了这个问题:“为什么我们在检查用户是否被允许执行X操作时检查用户的角色,而不是检查他们的权限?”

这就是我所理解的,用户有角色,角色有权限,这就是用户可以拥有权限的方式(用户不能明确地拥有分配给它的权限,它通过拥有角色获得权限)

我认为,在处理添加用户的请求时,检查像“AddUser”这样的权限是有意义的,但在中。Net库以及RBAC中的许多示例中,我们看到它们检查角色。就像他们检查用户是否是管理员,而不是检查他/她是否有“AddUser”权限一样。

为什么?检查权限对我来说更有意义。

有人能在这里给我点灯吗?

谢谢

共有2个答案

仲孙阳
2023-03-14

如果我们简化RBAC系统,RBAC是一种基于组织用户权限限制对“某些源或应用程序或应用程序的某些功能”的访问的方法。在这里,可以通过多个权限进行限制,这些权限由管理员创建以限制访问,这些权限共同表示将分配给用户的角色。

对于您的案例,您可能部分正确:)

但是考虑一个复杂应用程序的情况,其中有200个权限,管理员需要定义几个权限来通过角色来表示特定的行为,这将为该用户创建一些复杂的定制和重新呈现表单。

在这里,可能需要通过'HasRole('某些角色')'方法来检查以定义用户的确切行为。

因此,我的答案是,这两种方法在RBAC中同样重要。

1)权限('permissionName')

2) HasRole('roleName')

一个好的RBAC解决方案应该提供这两种方法。市场上有这样的工具,你可以去查一下。

彭风华
2023-03-14

您是正确的-检查应用程序中的角色而不是权限不是基于角色的访问控制。Spring Security和许多其他突出的权限改造机制传播这种安全反模式。要正确使用RBAC,请在策略实施逻辑中执行权限检查。

 类似资料:
  • 以下内容是 xingzhou 对 kubernetes 官方文档的翻译,原文地址 https://k8smeetup.github.io/docs/admin/authorization/rbac/ 基于角色的访问控制(Role-Based Access Control, 即”RBAC”)使用”rbac.authorization.k8s.io” API Group实现授权决策,允许管理员通过Ku

  • 我目前正在学习MEAN堆栈,开发一个简单的TODO应用程序,并希望为此实现基于角色的访问控制(RBAC)。我怎么设置角色 我想要3个角色(角色可能看起来很有趣,但这纯粹是为了学习): 上帝 超级英雄 人 GOD-类似于超级管理员,可以在应用程序中做任何事情。C, R, U, D权限适用于TODO和其他用户。可以创建一个TODO 超级英雄——类似于管理员,有超能力在他的个人数据上做任何事情——对于T

  • 问题内容: 是否可以使用任何基于角色的开源访问控制系统? 问题答案: 布兰登·萨维奇(Brandon Savage)在他的PHP软件包“ ApplicationACL ” 上做了一个演示,该演示可能会或可能不会完成基于角色的访问。PHPGACL可能也能正常工作,但是我不能肯定地告诉您。 但是,我可以告诉您的是Zend Framework 的Zend_ACL组件将执行基于角色的设置(但是您必须子类化

  • 角色定义 [role_definition] 是RBAC角色继承关系的定义。 Casbin 支持 RBAC 系统的多个实例, 例如, 用户可以具有角色及其继承关系, 资源也可以具有角色及其继承关系。 这两个 RBAC 系统不会互相干扰。 此部分是可选的。 如果在模型中不使用 RBAC 角色, 则省略此部分。 [role_definition] g = _, _ g2 = _, _ 上述角色定义表

  • 使用CBAC和RBAC的主要好处是什么?什么时候使用CBAC更好,什么时候使用RBAC更好? 我试图理解CBAC模型的一般概念,但总体思路对我来说仍然不清楚。

  • 一个更友好的域内基于角色的访问控制的API。 这个API是Management API的子集。 RBAC用户可以使用这个API来简化代码。 参考 全局变量 e 是 Enforcer 实例。GoNode.jsPHP.NETRust e, err := NewEnforcer("examples/rbac_model.conf", "examples/rbac_policy.csv") const