📝个页人主:五敷有你
🔥系列专栏:SpringBoot
⛺️稳重求进,晒太阳
为了解决用户和资源的操作关系, 让指定的用户,只能操作指定的资源。
权限功能
通常情况下,一个系统,除了登陆也就是认证之外,还应该有一个重要的功能,就是鉴权,使用rbac可以很好的解决上述的问题。
不同人,有不同的权限,老师有判卷权限,学生有答题的权限...
RBAC语言中的角色通常是指一组具有某些特征的人,例如:部门 /地点/资历/工作职责等
RBAC认为权限的过程可以抽象概括为:
判断【Who是否可以对What进行How的访问操作(Operator)】这个逻辑表达式的值是否为True的求解过程。
即将权限问题转换为Who、What、How的问题。who、what、how构成了访问权限三元组。
Access(访问),这个人能看到什么
Operations(操作),这个人能读到什么,这个人能写什么,该人可以创建和删除文件吗?
Session(会话),该人可以在系统中停留多长时间,,什么时候可以登录,登录什么时候过期
第0级,扁平化,最简单也是最常用的RBAC形式,与员工使用角色获得权限
第1级,分层的,这建立在Flat RBAC 规则之上,增加了角色层次结构
比如销售有销售经理,销售总监,销售的普通人员,都是销售但是级别不一样。
第2级别,受约束的,这建立在分层RBAC之上,增加了职责分离
第3级别,对称的,建立在受约束的RBAC模型之上,并增加了权限审查
最小特权原则、责任分离原则和数据抽象原则。
在RBAC模型里面,有3个基础组成部分,分别是:用户、角色和权限。
RBAC通过定义角色的权限,并对用户授予某个角色从而来控制用户的权限,实现了用户和权限的逻辑分离(区别于ACL模型),极大地方便了权限的管理
在讲解之前,我们先介绍一些名词:
它们之间的关系如下图所示:
例如下图,管理员和普通用户被授予不同的权限,普通用户只能去修改和查看个人信息,而不能创建用户和冻结用户,而管理员由于被授予所有权限,所以可以做所有操作。
rbac说明图
完成RBAC模型,我们需要设计五张表,如下:
.