前言
在后台,人力资源管理系统中,我们经常会遇到分配权限的技术,关于怎么分配权限就是一个难点,在这里,RBAC模型可以很好的解决这个问题
RBAC是什么?
RBAC模型概述
RBAC模型(Role-Based Access Control:基于角色的访问控制)模型是20世纪90年代研究出来的一种新模型,但其实在20世纪70年代的多用户计算时期,这种思想就已经被提出来,直到20世纪90年代中后期,RBAC才在研究团体中得到一些重视,并先后提出了许多类型的RBAC模型。其中以美国George Mason大学信息安全技术实验室(LIST)提出的RBAC96模型最具有代表,并得到了普遍的公认。
RBAC认为权限授权的过程可以抽象地概括为:Who是否可以对What进行How的访问操作,并对这个逻辑表达式进行判断是否为True的求解过程,也即是将权限问题转换为What、How的问题,Who、What、How构成了访问权限三元组,具体的理论可以参考RBAC96的论文,这里我们就不做详细的展开介绍,大家有个印象即可。
RBAC的组成
在RBAC模型里面,有3个基础组成部分,分别是:用户、角色和权限。
RBAC通过定义角色的权限,并对用户授予某个角色从而来控制用户的权限,实现了用户和权限的逻辑分离(区别于ACL模型),极大地方便了权限的管理
背景
为了达成不同的帐号登陆系统后能看到不同的页面,能执行不同的功能
的目标,我们有很多种解决方案,RBAC(Role-Based Access control)权限模型 ,也就是基于角色的权限分配解决方案。
其权限模式如下:
三个主体
用户User: 使用系统的人(员工)
权限点Permission:这个系统中有多少个功能(例始:有3个页面,每个页面上各自有3,2,4个不同的操作)
角色Role:不同的权限点的集合
RBAC模型 可以帮助我们解决不同的人获取不同权限的问题
项目中如何实现权限分配
我们可以根据后端传过来的数据判断
上图中,menus代表页面权限,points代表功能级别按钮权限,我们可以通过数组的方法判断有没有权限,来动态的创建或移除DOM元素和添加动态路由。