对权限管理模型的理解
常见权限管理模型
这部分内容网上有很多文章都有描述,虽然一眼cv,但是不影响看基本概念的,所以不在赘述
- DAC
- MAC
- ACL
- RBAC
- ABAC
- RuBAC
我的理解
DAC,MAC这两种模型主要是讲如何分配权限,而后面几种模型是讲在分配权限后如何确定一个用户的权限.
DAC由资源发布者确定那些人进行哪些操作,MAC引入了管理员的概念,管理员可以杜绝因为资源发布者的误操作导致权限分配错误.
举个例子,现在有一个类似公告板的系统,所有人都可以在上面发布公告,一种设计是发布完成公共后,发布者选择哪些人可以看,但是如果发布者不小心点了全部人,就会导致某些不该看到公告的人看到公告(某东经常有店铺把测试消息发给所有人).另一种设计是公告发布后,有一个管理员来配置那些人可以看到,好处是管理员是专门配置权限的,熟练后犯错几率大大降低,就算出错了,还可以让管理员背锅
ACL,RBAC,ABAC,RuBAC 这几种模型在我看来,都可以算作是RuBAC.
不同点是ACL可以看作是将RuBAC的结果事先计算出来,保存成一个列表或矩阵,有点类似是设计一个九九乘法表正常人用for循环嵌套,"聪明人"直接输出一个string.
RBAC在人和权限中间加了一层角色,分开看就是角色对权限的ACL加上人对角色的ACL
ABAC则是把RBAC的角色换成的属性
RuBAC在我看来最接近普通人思维里对权限管理的理解,即在某种条件下,拥有某些权限
最后,个人认为RBCA使用的比较多是因为角色与企业中的岗位高度相似,这样可以快速对接,不过代价是一个人通常只能有一个角色
评论已关闭