仅只有未实名的,新媒易不收取任何费用,公益非盈利机构
24小时服务热线: 4000-162-306
请扫码咨询

新媒易动态

NEWS CENTER

搭建用户权限体系,是很多系统的基础

2021-09-22

搭建用户权限体系,是很多系统的基础,特别是很多B端产品都会涉及到这一功能模块。那么我们如何从零开始着手这件事呢?

下面的内容希望能带给你一个全局性的认识,即使是之前从来没有涉及过的小白,也能帮助你做到心中有数。

一、系统资源

用户权限管理是一种对系统资源的访问控制,那么系统有什么样的资源需要进行权限分配呢?有3类:

1.菜单

菜单的授权意味着用户可以使用该菜单下相关的功能。属于高层级的授权。

2.操作

增删改查的权限控制,有的角色只能看不能改,有的角色具有增删改查全部权限。

3.数据

数据的权限控制,不同角色看到的数据范围不同,有的角色只能看到基础数据,有的角色能看到全部数据。

二、分配方式

了解了系统有哪些需要进行权限分配的资源后,接下来面临的问题是:系统有很多的用户,也有很多的资源,那么怎么实现给每一个用户分配好合适的权限呢?有两种实现路径:

1.直接分配,即ACL模型

给每一个用户直接进行权限的逐一分配。

这种方式的好处是非常灵活,能最大化满足每个用户对于权限的个性化需求。

缺点也显而易见,那就是不便于操作,权限的分配与管理效率比较低。

权限管理人员需要对系统有深入的了解,如果管理层级比较多时,系统的权限分配与管理无法大规模下放和向下有效分散,容易产生高层级管理人员觉得工作量大、基层人员觉得不能自主操控不方便等问题。

2.基于角色进行权限分配,即RBAC模型

这是一种间接分配方式,在用户集合和权限集合之间建立一个角色集合,用户通过角色与权限进行关联,形成“用户-角色-权限”的授权模型。

这种方式的好处是不必在每次给用户分配权限时都把系统所有的资源分配一遍,只要分配用户相应的角色即可,用户就拥有了这些角色所关联的权限。

而且角色的权限变更比用户的权限变更要少得多,也能实现权限的动态管理,即当角色的权限发生了变化以后,所有拥有该角色的用户也同时更新了权限状态。

下面重点来介绍一下RBAC模型。

在RBAC模型中,用户是真实的,而角色是我们为了方便管理权限集合而虚拟出来的。本质上,角色是一组权限的集合。

RBAC模型又可以分为RBAC0、RBAC1、RBAC2、RBAC3。

RBAC0:基本模型。用户和角色可以是一对一,也可以是多对对,一个用户拥有的权限是他所有角色的集合。

RBAC1:角色分层模型。RBAC1是在RBAC0的基础上增加角色分层,引入了继承概念。将角色分成多个等级,等级高的角色可以继承等级低的所有权限。

如某个部门,有助理工程师和工程师,助理工程师的权限不能大于工程师。如果采用RBAC0,极有可能出现权限分配失误,最终出现助理工程师拥有工程师都没有的权限的情况。

相关推荐