权限系统模块对于互联网产品是一个非常重要的功能,可以控制不同的角色合理的访问不同的资源从而达到安全访问的作用
ACLRBAC 基于角色的访问控制
从上图我们可以看出,ACL是用户和权限直接关系的,而RBAC则是通过角色间接关联用户和权限的。所以我们注意到角色是RBAC系统的一个重要属性。
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。
原因如下:
方便用户分组方便权限分配和回收扩展方便,可以满足大部分业务需求
这些也就是我们在说权限管理前,应该先知道权限管理要有功能。
RBAC模型的关系图
图中有重要的RBAC模型5大属性,分别是:
1 用户属性(张三、李四、王五)
2 角色属性(销售经理、销售、前台)
3 用户与角色的关系(张三 是 销售经理 、李四 王五 是 销售)
4 权限(添加客户、编辑客户、删除客户,查看客户)
5 权限与角色的关系(销售 拥有 查看客户的 权 限、销售经理可以 查看/添加/删除/编辑客户的)
一个RBAC权限模块,必然要实现三个功能
用户管理
用户列表添加用户编辑用户设置用户角色角色管理 角色列表
添加角色编辑角色设置角色权限权限管理
权限列表新增权限编辑权限
如图所示
用户表
角色表
用户角色表
权限详情表
角色权限表
用户操作记录表
本系统所有页面都是需要登录之后才能访问的, 在框架中加入统一验证方法
检查是否有访问指定链接的权限
获取某用户的所有权限,取出指定用户的所属角色, 在通过角色取出所属权限关系,在权限表中取出所有的权限链接