项目中用到的用户权限管理系统

权限管理是每个系统中用户管理必需的管理组件,通常需要通过判断用户所具有的权限来控制用户对系统的操作内容,并把资源调配给用户,限制用户的增删改查等操作。

通常权限管理的访问控制模型有以下两种方式:

ACL:Access Control List,访问控制列表(节点控制),是比较流行的设计方式。通过把用户和权限挂钩来实现。

RBAC:Role Based Access Control,基于的角色访问控制系统,是另一个实现思路。、就是把用户和角色关联,角色来对应权限,用户和权限没有直接关联,对复杂的系统来说,更加容易管理。

RBAC物理模型

img

当用户的数量非常大时,要给系统每个用户逐一授权(授角色),是件非常烦琐的事情。这时,就需要给用户分组,每个用户组内有多个用户。除了可给用户授权外,还可以给用户组授权。这样一来,用户拥有的所有权限,就是用户个人拥有的权限与该用户所在用户组拥有的权限之和。(下图为用户组、用户与角色三者的关联关系)

img

​ “用户-角色-权限-资源” 授权模型

img

点击查看原始大小图片

img

img

img

ACL实体模型

img

通过ACL(访问控制列表)把Role、User、Module、Permission、status(允许/禁止)关联起来。用于记录用户或者角色对资源拥有的权限

img

内容来源网络整理而成