• 1746阅读
  • 0回复

[互联网]技术笔记 | RBAC权限设计 [复制链接]

上一主题 下一主题
 

发帖
682
铜币
48325
威望
621
贡献值
20
银元
28073
宠物信息
宠物: 旺财 [查看]
性别: 男仔
年龄: 211周岁
只看楼主 倒序阅读 使用道具 楼主   发表于: 2018-11-07
#~S>K3(  
RBAC权限设计 i-]U+m*  
"b`7[;a  
F_v-}bbcFQ  
根据人员职级的不同所使用的系统功能不同,当人员使用相同功能时,根据组织机构的不同,看见的数据不同。按照不同的维度,进行权限的划分,而不同。 < <sE`>)  
jQ|:I7y  
其一基于角色的访问权限控制(RBAC)模型,人员角色来赋值给用户的权限管理,可以分为两大类型:功能权限、数据权限。 7*/J4MN  
m<3w^mww  
那么现在我们就先按照RBAC来看权限分配。 (xu=%  
Kr]z]4.d@  
[]gRfM]$ &  
一、背景
J+|/-{g  
I>aGp|4  
N}DL(-SQ3  
%A) 538F  
在对应系统中每个用户所看见的界面功能和数据不可能都一样,而是根据人员的组织机构和职级不同进行相应的区分。 .;g}%C  
or!!s 5[d  
举个例子: #3+~.,X9  
^&MK42,\  
部门经理可见可操作功能‘业务报表’,员工不可见。业务A部门经理在‘业务报表’中只能看见本部门业务A部门的数据。而总经理可在‘业务报表’中,可查看所有部门业务A、B、C、3个部门的数据。这时就需要进行对应的权限分配。 x9&p!&*&IT  
*7Xzht&f  
}vY.EEy!  
二、RBAC xG1?F_ ]  
Gc'M[9Mh  
T)~!mifX  
M$H`^Pv  
经典模型RBAC模型是现在权限管理系统的基础,但包括不限于此。根据公司组织架构不同设计有所不同,或2B业务是设计的通用权限划分,RBAC模型可分为:RBAC_0、RBAC_1、RBAC_2、 RBAC_3共4个版本。其他3个模型都是基于RBAC_0演化的。 Y& 5.9 s@'  
#|?8~c;RWG  
先简述下这4个RBAC模型: jM@?<1  
l sr?b  
RBAC_0模型: 权限——角色——用户。ERP系统:后台权限设计 xp^ 7#`MJ?  
D"!jbVz]*  
XhN{S]Wn  
                                    图一 f3 v F"O  
7h`^N5H.q  
RBAC_1模型:基于RBAC_0增加了子角色,子角色可继承父角色的所有权限。RBAC_2模型:基于RBAC_0增加了角色互斥,互斥的角色不可同时赋予一个用户账号。RBAC_3模型:结合了RBAC_0、RBAC_1、RBAC_2,目前为更全面更复杂的模型 oqYt/4^Q  
^KbL , T  
三 、使用场景 L#2ZMy  
A? r^V2+j  
!D ;c,{Oz  
{[P!$ /  
基于RBAC来做的权限赋予角色再赋予用户。 NH4?q!'G  
^BiP LQ   
{E~Xd  
功能权限 G,|KL" H6  
q/x/N5HU  
-?z\5 z  
bb1  f/C%  
配置每个用户所见及所能操作的功能项不同。 /?P!.!W&  
JD*8@N  
当在主系统中存在不同子系统时,选定对应子系统将不同的功能项赋予到指定的角色上。 |z*>ixK   
~j"3}wXc5  
mf9hFy* <4  
图二 (hN?:q?'  
Wq QU@sA  
*VDVC0R  
数据权限 Ha)np  
X3yS5wh d(  
iD714+N(  
+>}o;`hPe  
根据组织机构所属部门不同,用户使用相同功能时所能看见的展示数据是不一样的,因根据公司业务情况不同。 V&iS~V0.  
B`1kGEx .  
其一直接套用组织机构进行权限划分,缺点不可配置,无法根据实际业务跨部门查看数据。其二根据组织机构再次进行配置划分数据权限,缺点为每个组织机构都进行数据权限分配。 |IN[uQ  
>vAN(3Idu  
j^nu|  
图三 y42#n  
~b6GrY"vB  
`[Sl1saZ$S  
角色结合 %K l(>{N  
P,ydt  
R5kH0{zM  
V%51k{  
在某个组织机构下选取的岗位角色,赋予对应的功能角色和数据角色。 )i-gs4[(QN  
Y{+3}drJE  
岗位角色=功能角色+数据角色 PJK9704 6  
dp<$Zw8BE  
:j,}{)5=  
S3y246|4  
图四 9yL6W'B!  
CmHyAw(  
配置账号 > c:Zx!  
q:]Q% IC^  
m#n]Wgp'  
qrE0H  
将不同的用户账号赋予不同的岗位权限,因我们在角色就是用的多角色构成关系,及岗位角色被赋予了多个功能权限与数据权限。因此,一个用户账号在此只需要对应一个岗位角色即可。 p9iu:MucD<  
x<>YUw8`  
:c:V%0Yji  
图五 N}mh}  
;_N5>3C:  
若无任何一权限进入系统后则应有“无权限”提示,对于企业级系统如ERP、OA主体为公司员工使用,而账号分配及权限分配都是有专人负责进行,并无开放注册功能。 WFDCPQ@  
] \dHU.i  
按照不同的维度进行权限的划分还可以对接人力资源管理系统,按照组织机构进行权限划分,也可在当前设置按钮中加入共享功能再特定人员(如:分部、部门、个人、角色),这时根据系统主体架构而定。 p[qg&VKB  
J@Yj\9U  
Ao"C<.gUYP  
四、最后的话 gr+Pl>C{  
#&BS ?@  
]r959+\$  
$1e pf  
看到这里相信只要产品同学对RBAC 4 个模型有了认知后,那么做一个简单的权限系统应该只是水到渠成,做一个简单的权限系统应该没问题。 -*3(a E  


点赞支持 歌曲链接
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
 
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个