RBAC主流通用权限设计模型三大要素:用户,角色,权限解析!

原创 admin  2021-11-09 18:10  阅读 3,410 views 次

通常在做系统的时候除开基础业务外我们要搭建一套与行政功能相关联的基础三要素:用户、角色、权限。

本文只对RBAC主流通用权限设计模型进行深度剖析,还有一些其它权限设计模型

一、用户、角色、权限的说明

1、RBAC的权限设计模型

(Role-Based Access Control,基于角色的访问控制)

RBAC支持三个著名的安全原则:最小权限原则,责任分离原则和数据抽象原则。1)最小权限原则之所以被RBAC所支持,是因为RBAC可以将其角色配置成其完成任务所需要的最小的权限集。

(2)责任分离原则可以通过调用相互独立互斥的角色来共同完成敏感的任务而体现,比如要求一个计帐员和财务管理员共参与同一过帐。

(3)数据抽象可以通过权限的抽象来体现。比如财务在操作用作借款、存款等抽象权限或者也可以理解为做一顿饭谁做厨师,谁做顾客这样理解应该算是简单粗暴了吧!

简单说明他们的关系

一个人(用户)他是什么身份(角色)能做什么事情(权限)

一个人(用户)他是警察(角色)在捉拿逃犯(权限)

此处表示的是一对一的关系,但是在生活中往往是一个人有多种角色

一个人他(用户)是一个父亲同时又在做警察的工作(角色)在平时在马路上接送小孩时看到逃犯他也可以去捉拿逃犯(权限)

从我这样简单粗暴的例子中可以看出一个用户有多重身份(角色)所以他就有多

种权限。(本文就不画图了,虽然图片利于理解但是我手头上的工具有限就算了)

二、三个模块搭建用户系统

通常我们在做产品设计的时候做用户系统的时候都会分为:用户、角色管理(一般角色和权限都做在一个模块,角色包含权限)部门管理。为什么要这样做是因为对应现在政企事业单位的角色权限挂钩的例:省厅包含的单位有(行政部门、执法部门等等太多了就不说了)每个部门有不同的科室,科室下有不同的人员,有的人员还有多重身份(多重身份的情况比较特殊一般领导的会多一些),所以要了解对方的行政身份和业务线的挂钩(在数据库中的关系表示为基础信息表)。

用户角色权限关系

用户跟行政部门或业务部门走,角色相对来说要稳定的一些因为这些都是职位上的title不会有大的变动比较稳定,权限在角色下一般表示为两个部分(操作权限,显示权限,和许可权限,)就是一个页面中谁能看谁不能看,一个页面中看到的内容能否点击,一个页面点击后能否在点击确定的时候将这条数据执行下去。

在初次做业务方的用户权限结构的时候算是比较考验PM对业务的理解能力,不理解的时候一定要多问问业务方,哪怕把别人问烦了你都要顶上去,要理解再动手,不要走我的老路,还没想好身体就动起来了。

三、用户角色详解

1、用户管理里面的用户是我们平时的使用者,只有这些用户会用到我们的系统。

做的时候一般分为两个维度来划分他们:行政部门、业务部门。但是最好两组关系做的类似因为组织结构架构不要变是最好例:

公司老板--副总--行政部、研发部、销售部、财务部、法务部等

公司项目--项目负责人--研发/产品/美工/运营/客服

这样能理解不????都是三级架构举例!

2、角色都是基于业务来制定的举个例子:

钉钉都用过吧,有的人是不是要申请请假,为什么你只能申请请假(因为你是基础员工需要领导审批),领导是不是可以审批但是为什么要抄送(因为一般你不是老板,你只是中层领导),最终我是不是可以查看(因为我是老板我看就行了,因为我也没当过老板所以我不知道审批的最后展示页面,但是这个是完全根据公司的流程来制定的,中层领导批了你的假你就可以休,所以我判断老板就是只有查看权或者统计权)。

3、自动赋予权限

如果说权限和组织挂钩的话,那进来的人就有这个组织的初始权限。

我第一天来到公司进入的研发部所以我做的事情是研发的工作,这就是自动赋予权限的最简单的说法。

3、角色多样性

我在一个组织中做着研发的工作,但是因为现在有个重大项目聚餐项目,所以我需要去找餐厅制定标准,可以理解为一人多劳吧,这样一说估计全都懂了。

4、角色继承权

我在一家公司做着经理助理,平时经理让我做项目审核,评审会议的工作有一天经理请假不在。这个权限是经理给我的所以我继续做着以前的相关工作,如果经理离职了岗位空缺,经理平时做的事情我暂为代劳。

在拥有父级关系的角色权限情况下,增加一些拥有自己的权限是角色继承。

一般角色继承的关系需要在大型公司岗位分明才有权限,在政府部门中各种“代”字应该可以理解吧?

5、角色互斥

在一个业务需要改变的时候会需要改变一些数据权限;例:

我在接收到一个请假审批条后点击审批通过,但是审批完毕之后还需要上级领导去点击“确定”才能审批生效,规避一个人的权限过大导致项目无法按照进度完成。

6、临时角色

当一个公司因为项目的原因需要临时外聘一些人帮助公司去做一些业务上的事情,但是他们又不是本公司的人员。在进入某些关键数据存储的地方这些人是没有权限进去查看代码的。所以这个时候临时角色就有用处了。

三、设置权限

1、权限设置

权限设置从菜单权限、操作权限、数据权限这3块来,具体的颗粒度视公司的情况而定。

2、菜单权限

这种模式下用户一旦获得授权即可使用该菜单栏下的全部数据查看权限和功能操作权限;

3、操作权限

这种情况用户可以在后台看到原界面上的部分内容,例:界面展示A\B\C\D四个文字,但是设置了操作权限后只能看到A\B\C这3个文字。

4、数据权限

可以在不同权限下看到的数据不一样,同级别的情况下看到的东西也不一样,例如:领导A和领导B只能看到自己部门下的工作情况,不能互相查看。

领导A和领导B之间的内容也是不能互相查看的,只有他们的共同大领导才可以看A和B的数据的。

基本上用户、角色、权限的管理算是讲述完了,做个总结:

1、要明确客户的业务发展线和行政发展线,要不然做起来修改狠麻烦

2、用户和角色是一对多的关系

3、权限分为操作、菜单、数据权限三大类,做好这三大类基本没问题。

4、要明确业务!!!要明确业务!!!要明确业务!!!

本文地址:https://www.moonpm.com/999.html
关注我们:请关注一下我们的微信:扫描二维码产品设计研究与产品经理交流中心 (鼠标移入红色字)
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

发表评论


表情