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

为什么RBAC同时具有角色和权限?

厍胤运
2023-03-14

我最常看到基于角色的访问控制(RBAC)需要权限才能执行操作。为主题分配了授予其权限的角色。

我最近遇到了一个授权库,它没有权限和角色的单独概念。主体仍然被授予角色,但是授权检查直接对角色进行,并且没有权限的概念。我担心这种设计有缺点,因为我很少看到它。以这种方式组合角色和权限可能会出现什么问题?在这个系统中,什么事情更困难?

共有2个答案

窦夜洛
2023-03-14

通常,“角色”是应用程序管理员根据业务/用户需求定义的。“权限”是应用程序预定义的内容。只要应用程序中有需要访问控制的功能,就会向系统中添加新的“权限”,这涉及到一些开发工作。相反,添加新角色是一个配置问题,可以通过具有“角色”的应用程序界面(GUI或命令行工具)完成,并向角色分配“权限”有助于创建具有不同访问程度的多个角色。

在您所描述的系统中,创建新的“角色”似乎需要更改应用程序,因为每个“角色”似乎都具有预定义的权限。

根据您需要什么样的灵活性,您可以选择这个新的框架。有时,如果应用程序满足非常特定的需求,则不具有用户可定义的角色是可以的。以Tomcat Manager为例——它几乎没有预定义的角色——这似乎对大多数用例来说已经足够了。

公良鸿禧
2023-03-14

RBAC标准[0]在四个级别上定义。RBAC0定义用户角色权限(对对象执行的操作)及其分配。RBAC1添加了定义角色层次结构,RBAC2添加了诸如职责分离等约束。我不认为RBAC3与此相关。授权模型(如RBAC)的要点是将策略与代码分开,以便在不修改代码的情况下对策略进行更改。在系统管理员无权访问代码的情况下,或者在每次更改访问控制策略后无法重新部署系统的情况下,这一点尤为重要。

您提到的授权库工作方式不同,我认为它实际上没有实现RBAC标准,至少从迂腐的角度来看是这样。通过取消权限,授权逻辑将集成到代码中,在授予(或拒绝)访问某些功能之前寻找特定角色。优点是管理员不必担心权限分配。然而,缺点是,对特定功能所需的角色的任何更改都将要求对代码本身进行更改,可能在很多地方。缺少其中一些会导致讨厌的虫子。

 类似资料:
  • 问题内容: 我正在尝试设置具有权限的基于角色的安全性。我正在尝试与Spring-Security一起执行此操作。 我不想设置ACL,因为这似乎对我的要求来说有些过头了。 我只想拥有本文所述的简单权限和角色。不幸的是,本文没有描述如何实现给定的解决方案。 有人已经尝试过了,可以指出正确的方向吗?也许还有另一个博客条目描述了实现方式? 非常感谢你。 问题答案: 要实现这一点,您似乎必须: 创建模型(用

  • 在我的Spring Boot应用程序中,我有一个REST控制器,其方法如下: 只有具有权限\u UPDATE\u OWN\u COMMENT或权限\u UPDATE\u ANY\u COMMENT的用户才能使用此endpoint。 在这个方法中,我需要创建两个不同的流-一个用于具有的用户,另一个用于具有权限的用户。 所以我的问题是——为了在单个方法中实现这些不同的逻辑流,Spring Securi

  • 读后http://en.wikipedia.org/wiki/Role-based_access_control看到人们建立授权/访问控制的方式,我想到了这个问题:“为什么我们在检查用户是否被允许执行X操作时检查用户的角色,而不是检查他们的权限?” 这就是我所理解的,用户有角色,角色有权限,这就是用户可以拥有权限的方式(用户不能明确地拥有分配给它的权限,它通过拥有角色获得权限) 我认为,在处理添加

  • 我有一个springmvc和springsecurity项目。 角色: 权限: 以及在角色和权限之间: 接下来的情况是: 我有一个控制器,我想用注释保护操作 大概是这样的: 但是注释不起作用,但是如果我把代码改成这样就可以了: 有人能给我一个提示吗?我不想用权限限制操作,我更喜欢角色限制。 提前谢谢。

  • 角色是分配给用户的权限集合。默认情况下,Navicat Monitor 包含三个预定义的角色供你分配给不同用户以限制其访问权限。它还允许你创建具自定义权限设置的新角色。苃要配置角色及其权限,请前往“配置”->“角色和权限”。 每个预定义的角色都有不同的权限: 角色 权限 管理员 可以完全控制访问所有页面。此角色的权限是不可编辑的。 DBA 可以访问所有页面,但以下功能“除外”: - 激活令牌密钥,

  • 我想在laravel中创建一个RBAC系统,其中一个用户可以属于多个角色,每个角色可以有多个权限。中间件应在继续请求之前检查用户是否具有特定权限(在其任何角色内)。 我能够实施一个案例,其中 用户属于一个具有多个权限的角色 我需要实现具有多个权限的多个角色的用户。有什么指点吗?