RBAC权限模型(基于⾓⾊的访问控制)
⼀、前⾔
权限⼀句话来理解就是对资源的控制,关于权限可以毫不客⽓的说⼏乎每个系统都会包含。只不过不同系统关于权限的应⽤复杂程序不⼀样⽽已,现在我们在⽤的权限模型基本上都是以RBAC为基础进⾏扩展的,我们今天就将RBAC权限模型进⾏下介绍。
⼆、RBAC模型
RBAC是Role-BasedAccess Control的英⽂缩写,意思是基于⾓⾊的访问控制。RBAC认为权限授权实际上是Who、What、How的问题。在RBAC模型中,who、what、how构成了访问权限三元组。
也就是“Who对What(Which)进⾏How的操作,也就是“主体”对“客体”的操作,其中who——是权限的拥有者或主体(如:User、Role),what——是资源或对象(Resource、Class)。
RBAC其实是⼀种分析模型,主要分为:
基本模型RBAC0(Core RBAC)
⾓⾊分层模型RBAC1(Hierarchal RBAC)
⾓⾊限制模型RBAC2(Constraint RBAC)
统⼀模型RBAC3(Combines RBAC)
1)RBAC0
留学机构排名RBAC0,它是RBAC0的核⼼,RBAC1、RBAC2、RBAC3都是先后在RBAC0上的扩展。RBAC0定义了能构成RBAC控制系统的最⼩的元素集合,RBAC0由四部分构成:
⽤户(User)
⾓⾊(Role)
会话(Session)
许可(Pemission)
其中许可⼜包括“操作”和“控制对象”其中许可被赋予⾓⾊,⽽不是⽤户,当⼀个⾓⾊被指定给⼀个⽤户时,此⽤户就拥有了该⾓⾊所包含的许可。会话是动态的概念,⽤户必须通过会话才可以设置⾓⾊,是⽤户与激活的⾓⾊之间的映射关系。
其中⽤户与⾓⾊是多对多的关系;⾓⾊和许可也是多对多的关系;⽤户与会话是⼀对⼀关系;会话与⾓⾊是⼀对多关系;
2)RBAC1
RBAC1,它是RBAC⾓⾊的分层模型,RBAC1建⽴在RBAC0基础之上,在⾓⾊中引⼊了继承的概念,有了继承那么⾓⾊就有了上下级或者等级关系
3)RBAC2
RBAC2,它是RBAC的约束模型,RBAC2也是建⽴的RBAC0的基础之上的,在RBAC0基础上假如了约束的概念,主要引⼊了静态职责分离SSD(Static Separation of Duty)和动态职责分离DSD(Dynamic Separation of Duty)。
SSD是⽤户和⾓⾊的指派阶段加⼊的,主要是对⽤户和⾓⾊有如下约束:公务员报考资格
新居入宅吉祥话互斥⾓⾊:同⼀个⽤户在两个互斥⾓⾊中只能选择⼀个
数约束:⼀个⽤户拥有的⾓⾊是有限的,⼀个⾓⾊拥有的许可也是有限的
先决条件约束:⽤户想要获得⾼级⾓⾊,⾸先必须拥有低级⾓⾊
DSD是会话和⾓⾊之间的约束,可以动态的约束⽤户拥有的⾓⾊,如⼀个⽤户可以拥有两个⾓⾊,但是运⾏时只能激活⼀个⾓⾊。
4)RBAC3
RBAC3,它是RBAC1与RBAC2合集,所以RBAC3是既有⾓⾊分层⼜有约束的⼀种模型
上⾯就是RBAC模型的四种设计思想,现在我们⽤的权限模型都是在RBAC模型的基础上根据⾃⼰的业务进⾏组合和改进。
名词解释
⽤户
⽆论哪个⽤户⾸先它必须是属于某个部门的,部门是⾏政单位,⽽某个部门也可以包含多个⽤户,所以部门和⽤户的关系为1对多的关系;
先说⼀下为什么要有⽤户组的概念,如果有⼀类的⽤户都要属于某个⾓⾊,我们⼀个个给⽤户授予⾓⾊,重复⼯作特别多,所以我们把这么⼀些⽤户进⾏分类,也就是⽤户组,这样的话,我们直接对⽤户组赋予⾓⾊,减少重复的⼯作量,这样达到的⽬的是这,⽤户拥有的所有许可,就是⽤户个⼈所属⾓⾊拥有的许可与该⽤户所在⽤户组所属⾓⾊拥有的许可之和。⼀个⽤户可以属于多个⽤户组,⼀个⽤户组也可以包括多个⽤户,所以⽤户与⽤户组是多对多的关系;
⾓⾊
新手怎么开网店⾓⾊是⼀定数量的许可的集合,许可的载体,⼀个⾓⾊可以包含多个⽤户,⼀个⽤户同样的也可以属于多个⾓⾊,所以⾓⾊与⽤户的关系为多对多的关系。同样的⼀个⾓⾊可以包含多个⽤户组,⼀个⽤户组也可以属于多个⾓⾊,所以⾓⾊和⽤户组也是多对多的关系;
汶川地震思想汇报权限
权限⼀般包括控制对象和操作,控制对象⼀般为资源,包括菜单、页⾯、⽂件等资源,⽽操作⼀般包括增删改查等,图中“系统操作”就是操作,“菜单信息”就是控制对象;
菜单信息中的每个菜单都会有增删改查等操作,所以菜单信息与系统操作是⼀对多的关系;
我们给⾓⾊授予权限时,授予就是颗粒最⼩的权限,所以我们将系统操作权限授予某些⾓⾊。⼀个⾓⾊可以拥有多个系统操作,⼀个系统操作同样也可以属于多个⾓⾊,所以系统操作和⾓⾊为多对多的关系。qq不能换头像
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论