欢迎关注公众号【Ccww笔记】,原创技术文章第一时间推出

前言

权限管理系统的组件分析以及认证过程的往期文章:

1. 权限管理相关概念

权限管理是一个几乎所有后台系统的都会涉及的一个重要组成部分,主要目的是对整个后台管理系统进行权限的控制。常见的基于角色的访问控制,其授权模型为“用户-角色-权限”,简明的说,一个用户拥有多个角色,一个角色拥有多个权限。其中,

  • 用户: 不用多讲,大家也知道了;

  • 角色: 一个集合的概念,角色管理是确定角色具备哪些权限的一个过程 ;

  • 权限: 1).页面权限,控制你可以看到哪个页面,看不到哪个页面;  2). 操作权限,控制你可以在页面上进行哪些操作(查询、删除、编辑等);  3).数据权限,是控制你可以看到哪些数据。

实质是: 

  权限(Permission) = 资源(Resource) + 操作(Privilege) 

  角色(Role) = 权限的集合(a set of low-level permissions) 

  用户(User) = 角色的集合(high-level roles)

权限管理过程:

  1. 鉴权管理,即权限判断逻辑,如菜单管理(普通业务人员登录系统后,是看不到【用户管理】菜单的)、功能权限管理(URL访问的管理)、行级权限管理等

  2. 授权管理,即权限分配过程,如直接对用户授权,直接分配到用户的权限具有最优先级别、对用户所属岗位授权,用户所属岗位信息可以看作是一个分组,和角色的作用一样,但是每个用户只能关联一个岗位信息等。

在实际项目中用户数量多,逐一的为每个系统用户授权,这是极其繁琐的事,所以可以学习linux文件管理系统一样,设置group模式,一组有多个用户,可以为用户组授权相同的权限,简便多了。这样模式下: 每个用户的所有权限=用户个人的权限+用户组所用的权限 用户组、用户、与角色三者关系如下:

再结合权限管理的页面权限、操作权限,如菜单的访问、功能模块的操作、按钮的操作等等,可把功能操作与资源统一管理,即让它们直接与权限关联起来,关系图如下: