前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈权限系统

浅谈权限系统

作者头像
用户6021891
发布2020-02-19 14:39:27
6670
发布2020-02-19 14:39:27
举报
文章被收录于专栏:万能的小草万能的小草

一、RBAC模型

目前业界控制权限的模型主要是基于RBAC(Role Based Access Control)理论,RBAC认为权限授权实际上是Who、What、How的问题。在RBAC模型中,Who、What、How构成了访问权限三元组,也就是“Who(权限的拥用者或主体)对What(Which)(权限针对的对象或资源)进行How(具体的权限)的操作”。

RBAC模型引入了“角色”的概念。所谓“角色”就是一个或一群用户在系统中可执行操作的集合,它是一个用户的集合,又是一个授权许可的集合。通过将角色指派给用户,为角色赋予权限的方式,使用户和权限通过角色间接相联系。RBAC基本模型如图所示:

在RBAC中,用户与角色之间、角色与权限之间都是多对多的关系。会话是一个用户对多个角色的映射,此时的用户权限可以为激活角色权限的并集。RBAC对资源授权管理过程分为两个部分,首先实现访问权限与角色相关联,然后再实现角色与用户相关联,从而实现了用户与访问权限的逻辑分离。

二、权限类型

在现实世界中,权限主要分为数据权限、页面和操作权限

数据权限:即账号可以看到的数据范围,比如公司管理者(董事长、CXO)能看到公司的所有数据,而区域的人只能看区域产生的数据。在设计过程中,数据权限控制的难易程度与业务和公司部门设置的复杂程度有关。

页面和操作权限:页面权限是指用户可以看到的页面,操作权限则指用户可以进行哪些操作,比如增、删、改、查; 在产品设计的时候,可以将页面权限和操作权限做到集合中去,创建角色的时候将权限赋予给角色即可。

系统的主要流程为:将权限设置成不同的集合,即角色;然后将用户、职位绑定到角色. 那么这些用户或职位即拥有相关的角色; 一个用户可以绑定多个角色,一个角色可以有多重权限。同事,一个用户可以有有多个职位,一个职位也有多个用户.

如上图,用户拥有了角色1和角色2,从而拥有了增加、删除、编辑的权限;职位也拥有这两张角色,所以也有这些权限。

三、权限系统规划

背景:多个产品没有统一的权限管理,各自管理杂乱且增加开发的工作量,需要一个统一且功能完备的权限管理系统。

解决方案:建立统一的权限系统,能快速接入各平台进行权限管理,可针对不同平台权限管理需求定制授权内容。可查询用户权限及权限操作日志。

规划

权限系统核心的功能可以分为平台管理、授权管理、角色管理、用户管理、用户权限查询;辅助功能包括操作日志、管辖反查(角色>>> 所有对象、权限>>> 所有对象)。

四、权限系统思考

1.如何能设计高度抽象的模型,方便所有平台管理。

2.是否有完善的职位体系。

3.在一些系统流程中,还需要为权限设置互斥和继承,这样的话,拥有互斥权限的两个角色就不能同时绑定给同一个账号了。继承的话,拥有父权限则相应具有其所有子权限。

4. 特例情况的纳入;比如数据权限,区域HR归属于HR事业群,与实际产生业绩的节点归属于前线业务群,但却希望看到区域数据。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小草学Python和SQL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档