【RBAC】打造Web权限控制系统

引言

权限系统模块对于互联网产品是一个非常重要的功能,可以控制不同的角色合理的访问不同的资源从而达到安全访问的作用


此外本次课程有视频讲解: http://www.imooc.com/learn/799 ,对应演示系统:http://rbac.54php.cn 


权限控制模型

  • ACL

  • RBAC 基于角色的访问控制

600


从上图我们可以看出,ACL是用户和权限直接关系的,RBAC则是通过角色间接关联用户和权限的。所以角色是RBAC系统的一个重要属性

Why RBAC

为什么我们选择RBAC模型,原因如下

  1. 方便用户分组

  2. 方便权限分配和回收

  3. 扩展方便,可以满足大部分业务需求


RBAC

框架


600


图中有5个角标数字,对应的就是RBAC模型重要的5个属性


RBAC关系图
序号关键属性
描述
1用户 张三、李四、王五
2角色销售经理、销售、前台
3用户角色关系张三 是  销售经理 、李四 王五 是 销售
4权限添加客户、编辑客户、删除客户,查看客户
5角色权限关系

销售 拥有 查看客户的 权

限、销售经理可以 查看/添加/删除/编辑客户的


功能

600

如上图,一个RBAC权限模块,必然要实现三个功能

  1. 用户管理

    1. 用户列表

    2. 添加用户

    3. 编辑用户

    4. 设置用户角色

  2. 角色管理

    1. 角色列表

    2. 添加角色

    3. 编辑角色

    4. 设置角色权限

  3. 权限管理

    1. 权限列表

    2. 新增权限

    3. 编辑权限

战果演示

  • 第一张截图有2个浏览器,左边使用超级管理员打开,右边的使用 前台角色郭小威 用户打开

  • 第二张截图 展示的是 为 前台 设置权限

  • 第三张截图展示了可以浏览的页面(图一中有无法浏览提示)


600


600


600


资源

  1. 演示代码(请务必先查看readme文件) https://github.com/apanly/rbac 

  2. 课程视频地址: http://www.imooc.com/learn/799 

  3. 对应演示系统:http://rbac.54php.cn