B端产品之权限设计(RBAC权限模型)rbac调用

编辑导语:在B端管理系统中,“权限管理”是必不可少的功能,不同的系统中权限的应用复杂程度不一样,要根据实际产品以及需求而设置合理的权限。本文作者通过介绍RBAC权限模型的概念,结合实际案例,对B端产品的权限设计进行了分析,一起来看一下吧。

随着互联网的快速发展,B端行业也逐渐崛起,很多企业管理中使用的软件我们通常称其为B端管理系统,而在B端系统中“权限管理”是必不可少的功能,不同的系统中权限的应用复杂程度不一样,都是根据实际产品以及需求情况而设置合理的权限。

而我们现在对于权限的设置基本上都是建立在RBAC权限模型上的、扩展的,下面我会通过介绍RBAC权限模型的概念,以及结合实际业务情况列举权限设置的应用。

一、什么是RBAC权限模型?

简单的理解其理念就是将“角色”这个概念赋予用户,在系统中用户与权限之间通过角色进行关联,以这样的方法来实现灵活配置。

RBAC其实是一种分析模型,主要分为:基本模型RBAC0、角色分层模型RBAC1、角色限制模型RBAC2和统一模型RBAC3。

RBAC权限模型是基于角色的权限控制。模型中有几个关键的术语:

1.RBAC0

RBAC0是RBAC权限模型的核心思想,RBAC1、RBAC2、RBAC3都是在RBAC0上进行扩展的。RBAC0是由四部分构成:用户、角色、会话、许可。

用户和角色的含义很简单,通过字面意思即可明白,会话:指用户被赋予角色的过程,称之为会话或者是说激活角色;许可:就是角色拥有的权限(操作和和被控制的对象),简单的说就是用户可使用的功能或者可查看的数据。

用户与角色是多对多的关系,用户与会话是一对一的关系,会话与角色是一对多的关系,角色与许可是多对多的关系。

2.RBAC1

RBAC1是在RBAC0权限模型的基础上,在角色中加入了继承的概念,添加了继承的概念后,角色就有了上下级或者等级关系。

举例:集团权责清单下包含的角色有:系统管理员、总部权责管理员、区域权责管理员、普通用户,当管理方式向下兼容时,就可以采用RBAC1的继承关系来实现权限的设置。上层角色拥有下层的所有角色的权限,且上层角色可拥有额外的权限

3.RBAC2

RBAC2是在RBAC0权限模型的基础上,在用户和角色以及会话和角色之间分别加入了约束的概念(职责分离),职责分离指的是同一个人不能拥有两种特定的权限(例如财务部的纳入和支出,或者运动员和裁判员等等)。

用户和角色的约束有以下几种形式:

会话和角色之间的约束,可以动态的约束用户拥有的角色,例如一个用户可以拥有两个角色,但是运行时只能激活一个角色。

例如:iconfont和蓝湖的用户与角色就采用了约束的概念,超级管理员只允许只有一个

4.RBAC3

RBAC3是RBAC1与RBAC2的合集,所以RBAC3包含继承和约束。

二、为什么要引用RBAC权限模型?

RBAC中具有角色的概念,如果没有角色这个概念,那么在系统中,每个用户都需要单独设置权限,而系统中所涉及到的功能权限和数据权限都非常多,每个用户都单独设置权限对于维护权限的管理员来说无疑是一件繁琐且工作量巨大的任务。

而引入角色这个概念后,我们只需要给系统设置不同的角色,给角色赋予权限,再将用户与角色关联,这样用户所关联的角色就直接拥有了该角色下的所有权限。

例如:用户1~用户8分别拥有以下权限,不同用户具有相同权限的我用不同的颜色做了区分,如下图:

在没有引入RBAC权限模型的情况下,用户与权限的关系图可采用下图的杨叔叔展示,每个用户分别设置对应的权限,即便是具有相同权限的用户也需要多次设置权限。

引入RBAC权限模型及引入了角色的概念,根据上面表格的统计,用户1、用户3、用户5、用户8拥有的权限相同,用户2、用户6、用户7拥有相同的权限,用户4是独立的权限,所以我们这里可以根据数据统计,以及实际的需求情况,可以建立三个不同的角色,角色A、角色B、角色C,三个角色分别对应三组用户不同的权限,如下图所示:

对应的上面的案例表格我们就可以调整为含有角色列的数据表,这样便可以清楚的知道每个用户所对应的角色及权限。

通过引用RBAC权限模型后,对于系统中大量的用户的权限设置可以更好的建立管理,角色的引入让具有相同权限的用户可以统一关联到相同的的角色中,这样只需要在系统中设置一次角色的权限,后续的用户便可以直接关联这些角色。

三、引入用户组的概念

我们依旧拿上面表格案例举例,虽然前面我们应用的RBAC权限模型的概念,但是对于大量用户拥有相同权限的用户,我们同样的也需要对每个用户设置对应的角色,如果一个部门上万人,那么我们就需要给这个部门上万人分别设置角色。

而这上万其实是具有相同的权限的,如果直接采用基础的RBAC权限模型的话,那么面对这样的情况,无疑也是具有一个庞大的重复的工作量,并且也不利于后期用户变更的维护管理,那么针对相同用户具有相同的权限的情况,我们便可以引入用户组的概念。

什么是用户组呢?用户组:把具有相同角色的用户进行分类。

上面我们的数据表格案例中的用户1、用户3、用户5、用户8具有相同的角色A,用户2、用户6、用户7也拥有相同的角色B,那么我们就可以将这些具有相同角色的用户建立用户组的关系,拿上面的案例,我们分别对相同角色的用户建立组关系,如下:

因为用户4只有一个用户,所以直接还是单独建立用户与角色的关系,不需要建立用户组,当然尽管只有一个用户也是可以建立用户组的关系,这样有利于后期其他用户与用于4具有相同的角色时,就可以直接将其他用户添加到这个用户组下即可,根据业务的实际情况而选择适合的方案即可。

通过案例表格的变化我们就可以直观的看出权限设置变得清晰简洁了,通过对用户组赋予角色,可以减少大量的重复的工作,我们常见的企业组织、部门下经常会出现不同用户具有相同角色的情况,所以采用用户组的方式,便可以很好地解决这个问题。

给具有相同权限的用户建立用户组,将用户组关联到对应的角色下,此用户组就拥有了此角色下的所有权限,而用户是属于用户组的,所以用户组下的所有用户也就同样的拥有了此角色下的所有权限。一个用户可以属于多个用户组,一个用户组也可以包括多个用户,所以用户与用户组是多对多的关系。

四、引入权限组的概念

权限组与用户组的原理差不多,是将一些相对固定的功能或者权限建立组的关系,然后再给此权限组赋予角色,目前我所接触的B端项目中使用权限组的概念的比较少,可简单地看一下关系图:

五、功能权限和数据权限

B端系统中一般产品的权限由页面、操作和数据构成。页面与操作相互关联,必须拥有页面权限,才能分配该页面下对应的操作权限,数据可被增删改查。所以将权限管理分为功能权限管理和数据权限管理。

例如:一个系统中包含多个权责清单(清单1、清单2、清单3),系统管理员能对整个系统操作维护,也就可以对系统中的所有清单都能操作(增、删、改、查);假如分配给总部权责管理员的是清单1,那么他将只能对清单1进行操作(增、改、查);普通用户也许只有查看数据的权限,没有数据操作的权限(查),这里的操作是系统中所有可点击的按钮权限操作,列举的增删改查只是最常见的几种操作而已。

六、实战案例总结

我目前所做的项目是一个关于权责管理平台的B端系统,关于系统中的权限需求我这里简单的介绍一下,并采用上面所总结的RBAC权限模型对实际业务需求进行设计分析:

简单说明一下,我所做这个项目的人员管理是在另外一个系统中管理的,权责平台只是调用另外一个平台的组织结构树即可,所以权限设置模块没有做人员管理的模块。

根据上面对需求的分析,整个权限管理模块中我们需要建立用户组管理模块、功能角色管理模块、业务(数据)管理模块、权限设置模块,下面就对每个模块做更细致的页面展示设计分析。

1.用户组管理模块

用户组管理主要是对具有相同权限的用户分类建组,所以页面中我们需要有新建用户组的功能,每个用户组下我们需要关联对应的组织、部门、岗位、人员,让这些具有相同权限的用户在同一个用户组下,如下图:

2.功能角色管理模块

B端项目中一般会建立几个默认的角色是不支持用户修改、删除的,例如最常见的系统管理员,而也会需要有其它角色的需求,所以此模块需要支持用户新建角色,功能角色是对大模块的页面和操作的权限设置,操作权限的颗粒度可以细分到每个页面的每一个按钮的操作,如下图:

3.业务(数据)角色管理模块

业务角色是对页面中的数据查看的权限设置,而对于系统中的普通用户查看系统的权限是常用不变的,所以我们考虑默认有一个普通用户的角色,其它业务角色用户根据实际需求情况自行建立即可。

由于我们权责系统的特殊性,我们需要满足用户对部分数据可编辑且对部分数据的字段可编辑,按照常理来说,编辑的操作行为是属于功能权限的设置,但是这里的操作行为是建立在数据的基础之上的,所以如果把这里对数据的操作权限在功能角色模块中设置,就会显得混乱。

所以我们直接在业务角色模块中加入对数据的可编辑权限,这里在设置的时候更方便灵活。

4.权限设置模块

权限设置模块只需要设置权限分配的对象,选择对应的用户或者用户组,关联对应的功能角色和业务(数据)角色即可,这样就形成了一条完整的闭环的权限设置。

对于06同一用户会存在多个角色,我们系统是采用切换角色的模式来实现的,因为不同角色中存在互斥的情况,以及所涉及的领域不同,操作权限差距较大,求合集不利于控制权限,所以只能采用切换的模式实现。

七、总结

本文由@设计小余原创发布于人人都是产品经理。未经许可,禁止转载

THE END
1.IResultData(mmc.h)IResultData::D eleteAllRsltItems 方法使管理单元能够从结果视图窗格中删除所有用户插入的项和子项。 IResultData::D eleteItem 允许管理单元删除结果视图窗格中的单个项。 IResultData::FindItemByLParam IResultData::FindItemByLParam 方法使管理单元能够根据其用户插入的 lParam 值查找项或子项。 IResultData:https://msdn.microsoft.com/zh-cn/subscriptions/aa814905
2.中国科技论文在线检查完您的请求后,将很快会重定向至您所需的内容。 请等待最多5秒钟。 防护由Paper-GoEdge提供 您的IP:119.39.128.131已被记录 Request ID:173357124765911000002http://www.paper.edu.cn/scholar/showpdf/MUz2UN5IMTz0AxeQh
3.用户管理模块功能描述用户管理模块功能描述 作者:赵前 创建时间:2016.12.4 最后修改时间:2016.12.4 修订次数:1 任何应用的大多数行为总是伴随着用户管理的功能进行,如:用户执行了某一个操作,后台需要解决的几个问题如下: 用户是否可以这么做? 哪个用户做了这件事? 抽象为高层概念即:用户身份的区分与用户行为的权限管理。 https://www.jianshu.com/p/d92b7f3fc5d0
4.用户管理系统客户管理系统平台用户管理是任何后端产品的基本模块。简单的用户管理系统的功能,只涉及企业基本的账户进行管理,让开发者可以在代码中标注相应的账户,从而能够实现权限的区分;但是,如果我们需要建立一套完善的用户管理工作流程,,云朵课堂https://www.yunduoketang.com/article/lwt1325.html
5.图书借阅管理的功能模块根据登录人员的不同可分为普通用户和图书借阅管理的功能模块根据登录人员的不同可分为两个部分,普通用户登录,和管理员登录。普通用户登录后可以查看所有图书、查询图书、查看最新的图书列表和自己的图书借阅记录。而管理员登录后不但可以进行关于图书的操作,还可以管理所有的普通用户,添加删除普通用户,查看普通用户的个人信息。系统的功能模块图如图2-1所示。https://gitee.com/hehe8/library
6.10张图,系统扫盲权限管理功能设计思路(2)完善用户、角色、组织、资源、操作的管理功能,其中的组织管理模块只提供组织视图,不参与权限的控制管理。 (3)开发人员开发新的系统功能,通过资源和角色模块进行操作管理。使用系统管理员身份登陆,直接将访问路径作对角色资源授权给操作,实现资源访问控制管理。 http://www.360doc.com/content/22/0303/13/64352794_1019803027.shtml
7.Vue实战之5.用户管理模块用户管理模块有哪些内容Vue实战之 5.用户管理模块 本文详细介绍了如何使用Vue.js和Element-UI实现用户管理功能,包括用户信息的展示、添加、修改、删除、状态切换和角色分配。通过作用域插槽实现用户状态列和操作列的自定义,利用Element-UI的表格和分页组件展示数据,并实现搜索、添加用户、编辑用户和删除用户的功能。此外,还涉及到了邮箱和手机https://blog.csdn.net/weixin_47505105/article/details/122798114
8.T+软件模块功能介绍(2)业务管理及自制加工解决方案T+软件模块功能介绍(2) 业务管理及自制加工 一、T+产品用户可选的部署模式 a.T+cloud (公有云,云原生直接使用,授权注册用户,用户按年支付服务费) b.T+云主机版 (厂商直接管理,云软件+云主机+云运维,授权注册用户,用户按年支付软件及主机服务费) https://www.yonyout.com/newsdetail_2499342.html
9.用户管理系统——后台产品必备模块用户管理,是任何一款后台产品必备的模块。简单的用户管理功能,只需要涉及基础的账号管理,让开发人员在代码里给相应的账号打标记,从而实现权限的区分;但如果需要一套完善的内部用户管理流程,除了要满足管理人员账号的需求之外,还必须思考相应的角色和权限管理的业务流程。 https://www.niaogebiji.com/article-101789-1.html
10.电商平台系统的功能模块介绍在当今数字经济的迅猛发展中,电商平台成为了企业与消费者之间的重要桥梁。一个高效、稳定的电商平台系统不仅能提升用户体验,还能帮助商家实现销售目标并扩展市场。本文将分享电商平台系统的核心功能模块,展示其在数字商业中的关键作用。 1、用户管理模块 用户管理模块是电商平台系统的基础组件,负责处理用户的注册、登录、认https://www.shopxx.net/news/detail/6654015d7b78610001e62085
11.物流信息管理系统研究论文此部分群体主要是对整个系统进行日常维护、数据备份、申请审核以及其他使用者的权限管理,同时还负责对系统管理、环境管理、业务管理、监督管理以及决策管理等方面的内容进行管理拥有本系统最高的管理权限;其主要操作是系统管理模块、用户登录管理、数据库管理,权限分配,各个模块的功能设置等,同时还负责系统的正常运行与维护https://www.unjs.com/lunwen/guanli/20181129174107_1780967.html
12.用户管理BDP帮助中心如果为普通用户,可以为其指定具可用的功能模块权限,用户权限的分类如下: 权限说明如下: 仪表盘:启用后,用户具备”仪表盘”模块,可以查看被分配或分享的仪表盘内容,也可以使用自有数据创建仪表盘。 仪表盘协同:启用后,用户可以协同管理他人的仪表盘,管理员为其指定仪表盘权限后,可以通过仪表盘协同将需要协同编辑的仪表https://www.bdp.cn/bdp-docs/product/account/user
13.JAVA实战练习之图书管理系统实现流程java在还书时,读者首先将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息。太过于繁琐了!所以,我们需求设计一个图书管理系统来方便学生的借书和图书馆管理书籍。 项目说明: 本系统功能分为读者信息管理模块、图书信息管理模块、图书借阅管理模块、基础信息维护模块和用户管理模块。https://www.jb51.net/article/225929.htm
14.2015湖南省会计从业资格证《电算化会计》考试大纲蒋隽固定资产管理模块主要是以固定资产卡片和固定资产明细账为基础,实现固定资产的会计核算、折旧计提和分配、设备管理等功能,同时提供了固定资产按类别、使用情况、所属部门和价值结构等进行分析、统计和各种条件下的查询、打印功能,以及该模块与其他模块的数据接口管理。 https://cjxx.csedu.gov.cn/datamigration/msgzs/tszs2/content_268030
15.基于SSM框架的农场商城系统的设计与实现(文末附源码论文系统功能设计 本系统实现一个“自然”农场信息管理系统,系统角色分为用户角色和管理员角色两种。两者角色功能的具体划分设计如下: 前台用户模块 农场首页:用户登录后,系统的首个页面,显示所有农场信息。 用户注册/登录功能:实现游客用户注册功能和系统用户的登录功能。 https://cloud.tencent.com/developer/article/1974032
16.系统功能模块设计样例doc1、系统功能模块设计描述(样例) 根据前面对数据流的分析,本系统划分为两大模块:应用模块和管理模块。 应用模块是为整个用户提供服务的各个模块的总和, 包括用户登录、 在线测 评、信息浏览(包括测评新闻、测评结果、系统帮助、测评指标等) 、用户留言、 修改密码、信息查询(包括用户信息和测评记录)等。系统管理模块用https://www.renrendoc.com/paper/182375941.html
17.天翼云眼手机客户端使用指引专注通信领域云眼客户端作为行业应用的入口(比如明厨亮灶应用等),以及云眼客户端的特色功能入口(比如智能提醒、手机摄像头等),前期收到用户反馈功能入口较深的问题,为了优化并解决该问题,本次版本在首页前置 “核心功能入口” 露出,提升应用访问的便捷性,一键快捷触达。 https://v.im.189.cn/ckb/keNewV3.do?action=showChannelKnlgDetail&ki=971969
18.微友助手微信机器人功能介绍选择需要加好友的群,机器人会自动给群内不是好友用户发送加好友请求,群主不在加好友请求内。 社群管理功能模块 一、数据分析 微友助手支持数据分析功能。可以帮助微信群管理者查看群内进群、离群人员动态。昨日、历史统计等功能还能帮助大家分析群聊关键词,活跃用户名称、潜水成员详细名单等社群运营关键数据。 http://blog.weiyouzhushou.cn/detail/5913d6e8f2151c37f8a844a8.html
19.使用说明书(精选12篇)环界ERP系统的主要功能是进行订单管理和生产管理。主要功能模块有系统管理、合同评审、库房管理、生产管理、资源管理和信息查询等。 以上内容的主要操者是:综合部、供销部、生产部、技术部、质量部、库房、人力资源部和设备科。 ERP系统操作说明 一、登录系统 https://www.ruiwen.com/shiyongshuomingshu/7951239.html
20.泛微协同办公平台E本手册针对泛微协同管理平台E-cology的最终用户的系统管理员及模块功能管理员,模块管理员必需具备基本的计算机操作技能,熟悉Windows操作环境并且已经掌握基本的软件操作方法,掌握Internet Explorer浏览器的基本使用,系统管理员还必须对数据库有基本的了解。更多资源本手册涵盖泛微协同管理平台E-cology系统功能的后台维护和配置https://www.hefeiyu.com/?p=4320