`

一点愚见欢迎讨论:RBAC角色不应该分层(RBAC1不合时宜)。

阅读更多
刚才在回别人的帖子的时候谈了一下自己对RBAC的一点看法,还有关于我自己职务职位的认识,希望大家批评指证。
yangyi 写道

我认为销售人员是岗位而不是角色,角色是一系列权限的集合,而岗位是属于基础数据的范畴,所以这里角色的定义是
角色:{
  修改用户资料:否,
  其他:可
}
置于角色到底需不需要分出层级,这个就是仁者见仁,淫者见淫的话题了



我觉得这里有几个概念需要梳理一下:岗位,职务,职位,权限,角色。
我的理解是这样的:
毫无疑问,权限是这些概念中的最细粒度的一个东西,
而角色是一组权限的集合。
岗位是职位的同义词,他们的侧重点不同。
职务才是被大家忽略的一个概念:
具体我不知道他是怎么定义的,但是我认为他是某一业务中某一角色应当承担的责任或者说应该负责的事。
而一个职位一般来说有多个职务,比如说我们的经理助理这么一个"职位"他可能要负责的事情可能有很多类:
如,协助安排经理的日程,对下面呈上来的某类报告做初步审理等等一条条。这些被我们认为梳理出来的一条条的东西就是职务 - 他在当前职位上需要担负的义务。
大家初期容易将岗位抽象成一个角色,但是最终发现这个角色可能粒度太粗或者是不宜重用,这个时候就应该梳理一下每个职位的职务,以职务为单位抽象成角色,这样才能制定出更细粒度更好重用的角色。

当然职位由于他是我们看的见摸得着的,所以直接将职位映射成角色是非常简单清晰没有异议的,而职务就不同了,他需要我们it人员深入理解客户的业务,这样才能根据客户的业务情况梳理出一个业务职务体系,这个过程必然会很辛苦。

另外我认为角色绝绝大多数情况是不需要分级和分层的。RBAC中居然还用了derive,inheritance这样的字眼来描述两个角色之间可能存在的关系,我觉得这是一个错误。现代组织中为了完成业务,大多推崇的是分工合作,就是说一个团队中每个人的角色/职责是很清楚的,而不是一种早期“经理有权做手下小兵A能做的任何事情”,实际上企业的要求是“小斌A应该干这个,经理B应该干这个”,不能越级上访,同样也不能越俎代庖!即使现在不是这个样子也会朝着这个趋势发展。如果承认这一点,那角色间就不可能存在继承关系,顶多是一些组合关系。RBAC中列举里例子更是把这个缺陷暴露无疑了:
书上举得例子是说Cardiologist和Oncologist本身就是Physician,所以他们具有Physician的所有权限
Cardiologist        Oncologist
        \             /
         \           /
            Physician
               |
               | Accounts receivable clerk
               |
             Resident

这个例子不能令人新服指出是他把Physician,Resident,clerk抽象成了一个个"角色Role"的同时,违背了RBAC的Role的本意 - “角色是一组权限(Permission)的集合”。Role是权限的集合,而不是属于角色的用户们的一种关系的表达,跟用户是什么身份没有任何关系,如果有关系,也是反过来:用户的身份和角色有关系。


我枉自猜测会出现这么一个问题的原因是: RABC当时如日中天,大家都认为找到了真理。手里握着锤子,就习惯把一切柱状物看成是钉子。ABAC的概念估计就是被锤子锤的受不了才出现的 ^_^ .而实际上这个权限的例子可以很好的用(ABAC)Attribute-based Access Control来表达(因为Cardiologist,Oncologist,Physisican,clerk都是用户可能的属性).





分享到:
评论
8 楼 qq756288646 2013-07-08  
啊啊啊啊啊
7 楼 timshaw9791 2013-07-08  
int i=0;
i++;
6 楼 timshaw9791 2013-07-08  
timshaw9791 写道
timshaw9791 写道
timshaw9791 写道
2649138922

sadfasdfsadfasf

asdfasdf

asdasd
5 楼 timshaw9791 2013-07-08  
timshaw9791 写道
timshaw9791 写道
2649138922

sadfasdfsadfasf

asdfasdf
4 楼 timshaw9791 2013-07-08  
timshaw9791 写道
2649138922

sadfasdfsadfasf
3 楼 timshaw9791 2013-01-16  
2649138922
2 楼 addday 2012-12-16  
用户组是用来指定业务范围的,角色是有继承,但它是用来定义功能范围的。
1 楼 timshaw9791 2009-10-10  
当然了,我们也可以说RBAC1有它存在的理由,不能说他是一个错误,顶多说他在很多情况下不适合使用。

相关推荐

    26 _ 基于角色的权限控制:RBAC1

    在Kubernetes中,基于角色的权限控制(Role-Based Access Control, RBAC)是一种关键的安全机制,用于管理和控制用户或服务对集群资源的访问权限。RBAC允许管理员精细地定义哪些用户、用户组或服务账户可以执行什么...

    26 基于角色的权限控制:RBAC.pdf

    基于角色的权限控制(Role-Based Access Control,简称 RBAC)是一种在 Kubernetes 集群中实施权限管理的关键机制。在互联网级别的大规模集群中,RBAC 用于确保只有经过授权的用户或服务能够对资源进行操作,从而...

    26丨基于角色的权限控制:RBAC.pdf

    基于角色的权限控制:RBAC 在 Kubernetes 项目中,基于角色的权限控制(Role-Based Access Control,简称 RBAC)是一种非常重要的授权机制。它负责完成授权工作,确保 Kubernetes 中的 API 对象的访问安全。RBAC 的...

    后台产品设计方法论:RBAC模型概要分析(附案例分析) .doc

    后台产品设计中,RBAC(基于角色的访问控制)模型是一种广泛应用的权限管理模型,它在后台管理系统中扮演着至关重要的角色。RBAC模型通过用户、角色和权限的三元关系,有效地实现了权限的集中管理和复用,提高了系统...

    RBAC(基于角色权限管理的说明)

    2. **角色继承**:RBAC支持角色间的继承关系,即一个角色可以继承另一个角色的权限,这有助于简化权限管理,尤其是在需要设置层次分明的权限体系时。 3. **灵活性与适应性**:RBAC模型的设计具有高度的灵活性和适应...

    thinkphp rbac 实例

    thinkphp rbac 实例基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。 在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些...

    用java写的RBAC角色访问控制系统可用于毕业设计

    6. **安全性**:RBAC模型增强了系统的安全性,因为它减少了直接分配权限给用户的需要,降低了权限过度授予的风险。同时,权限的集中管理和审计功能有助于满足合规性要求。 7. **代码注释**:描述中提到代码有详细的...

    RBAC用户角色权限设计方案

    3. **动态授权**:RBAC支持动态地给用户分配或取消角色,这意味着用户的权限可以根据实际需求进行调整。 4. **用户组的概念**:为了进一步简化权限管理,RBAC还引入了用户组的概念。用户可以被加入到用户组中,然后...

    Rbac1访问控制课程设计

    在RBAC1模型中,用户通过扮演特定的角色来获得操作系统的访问权限,而不是直接赋予用户个体权限。这种模式提高了权限管理的灵活性、安全性和效率。 在本次的“Rbac1访问控制课程设计”中,我们可以推测这是华科...

    rbac_0+1+2.zip

    RBAC1在RBAC0的基础上引入了角色分级的概念,即角色可以有角色层级,形成了角色层次结构。这种模型允许更精细的权限控制,例如,高级角色可以拥有低级角色的所有权限,并可能有额外的权限。这样可以更好地实现权限...

    角色访问RBAC

    - 用户会话管理:RBAC模型通常还包括用户会话管理功能,如登录验证、会话超时、强制登出等,以保障系统的安全性。 RBAC模型的优势在于: - 权限集中管理:通过角色管理权限,减少了对单个用户进行权限维护的工作量...

    thinkphp rbac架构代码

    2. **数据库设计**:RBAC的数据库设计通常包括三张表:用户表(存放用户信息)、角色表(记录角色信息)和权限表(定义系统权限)。此外,可能还会有角色-权限关联表,用于存储角色和其所包含权限的关系。案例中提供...

    Citrix XenServer 6.0进阶系列教程之08:基于角色的访问控制(RBAC).pdf

    3. **权限控制**:RBAC通过权限控制,确保用户只能访问其角色所允许的资源。例如,网络管理员可以配置网络设置,但不能修改虚拟机设置。这有助于防止误操作或恶意行为对系统造成损害。 4. **Active Directory集成**...

    基于Java和JavaScript的LoopAuth:RBAC与ABAC双模鉴权框架设计源码

    该项目是一款基于Java和JavaScript的LoopAuth鉴权框架设计源码,包含181个文件,...该框架集成了RBAC(角色鉴权校验)和ABAC(规则流引擎鉴权)双模鉴权功能,同时具备会话管理特性,适用于构建复杂的JavaWeb鉴权系统。

    rbac.yml 第1步用于创建rbac角色绑定

    rbac.yml 第1步用于创建rbac角色绑定

    操作系统之安全算法:Access Control:基于角色的访问控制RBAC.docx

    操作系统之安全算法:Access Control:基于角色的访问控制RBAC.docx

    rbac:基于分层角色的NodeJS访问控制

    RBAC (基于分层角色的访问控制) RBAC是NodeJS的授权库。 :party_popper: 现在,我们通过实现支持DynamoDB存储。动机我需要基于ExpressJS的项目的基于分层角色的访问控制。 我有一个要求。 此结构必须永久存储在...

    RBAC模型基于角色-功能-资源的权限控制模型.pdf

    2. RBAC1(Hierarchical RBAC):层级RBAC引入了角色之间的继承关系,允许一个角色继承另一个角色的权限,以适应组织结构的层级性。 3. RBAC2(Constraint RBAC):约束RBAC在核心模型基础上添加了约束条件,如角色...

Global site tag (gtag.js) - Google Analytics