赞
踩
简介:在软件系统的中的权限管理,指的是用户能否具有访问系统、系统资源的资格。在软件系统中主要通过管理员将某些资源的访问、管理、操作等权限赋予用户,达到管理和使用的目的。譬如主机的访问使用权限,某项功能菜单的使用权限亦或是某个数据的读写权限。
软件系统中,我们通常将权限关联分为三级
(1)一级权限:访问权限
(2)二级权限:菜单、按钮权限
(3)三级权限:数据权限
依据不同等级的授权,来控制授权的最小的颗粒度。
模型 | 简介
-------- | ----- | :-----
ACL(Access Control Lists)| 访问控制列表,包含用户(User)、资源(Resource)、资源操作(Operation)三个关键要素。
RBAC(Role-Based Access Control ),基于角色的权限控制 |把用户按角色进行归类,通过用户的角色来确定用户能否针对某项资源进行某项操作。RBAC相对于ACL最大的优势就是它简化了用户与权限的管理,通过对用户进行分类,使得角色与权限关联起来,而用户与权限变成了间接关联。
ABAC(Attribute-Based Access Control) | 基于属性的权限控制,是通过动态计算一个或一组属性来是否满足某种条件来进行授权判断(可以编写简单的逻辑)。属性通常来说分为四类:用户属性(如用户年龄),环境属性(如当前时间),操作属性(如读取)和对象属性,所以理论上能够实现非常灵活的权限控制,几乎能满足所有类型的需求.。
早期计算机应用中权限由用户和资源组成
在此形态下,当有多个用户需要配置同样的资源权限时,同样的操作,会多次进行,十分繁琐,且后期维护成本极大。
在20世纪90年代期间,大量的专家学者和专门研究单位对RBAC的概念进行了深入研究,先后提出了许多类型的RBAC模型,其中以美国George Mason大学信息安全技术实验室(LIST)提出的RBAC96模型最具有系统性,得到普遍的公认。
RBAC认为权限的过程可以抽象概括为:判断【Who是否可以对What进行How的访问操作(Operator)】这个逻辑表达式的值是否为True的求解过程。
RBAC96是一个模型族,其中包括RBAC0~RBAC3四个概念性模型。
定义了完全支持RBAC概念的任何系统的最低需求,由用户、角色、资源(权限三部分组成)。
RBAC1在RBAC0的基础上,添加了角色集成的概念,当用户拥有某一角色权限时同时也会拥有该角色下级角色权限。
如上图,给用户张三配置了角色配置了角色A后,用户张三就拥有所有的资源权限。
RBAC2建立在RBAC0基础之上,对用户、角色和权限三者之间增加了一些限制。这些限制可以分成两类,即静态职责分离SSD(Static Separation of Duty)和动态职责分离DSD(Dynamic Separation of Duty)
RBAC3称为统一模型,它包含了RBAC1和RBAC2,利用传递性,也把RBAC0包括在内。这些模型构成了RBAC96模型族。
在我们的业务系统中,用户、用户职务、用户所在部门(组织)是重要的组成的部分,我们系统的数据层面的权限都是基于此去判定的。
基于组织做用户数据权限,此时我们只需基于RBAC模型,将系统角色挂载到组织下即可。
这种情况下,可以解决如下问题:当各部门成员均具有同一特殊职能时,只需在部门处配置系统资源权限,该部门全部成员便拥有了配置在该部门上的权限资源,且在后期用户转部门时,无需对用户进行额外配置便可轻松完成用户权限切换。
基于职务做用户数据权限,此时我们只需基于RBAC模型,将系统角色结合组织挂载到职务下即可。
上述为一种情景,即一个组织上存在多职务,将资源权限分配在了职务上,通过组织上职务的变化来实现用户角色权限的控制。
以上为另一种情景,职务与组织有关联,但关联的关系不仅仅局限于组织与职务的单个关联关系,同一职务可与多个组织关联,以达到对组织(组织内人)的动态管理。
基于用户组做用户数据权限,此时我们只需基于RBAC模型,将系统角色挂载到用户组下即可(当然也可引入组织进来)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。