常见权限管理模型

这部分内容网上有很多文章都有描述,虽然一眼cv,但是不影响看基本概念的,所以不在赘述

  1. DAC
  2. MAC
  3. ACL
  4. RBAC
  5. ABAC
  6. RuBAC

我的理解

DAC,MAC这两种模型主要是讲如何分配权限,而后面几种模型是讲在分配权限后如何确定一个用户的权限.
DAC由资源发布者确定那些人进行哪些操作,MAC引入了管理员的概念,管理员可以杜绝因为资源发布者的误操作导致权限分配错误.
举个例子,现在有一个类似公告板的系统,所有人都可以在上面发布公告,一种设计是发布完成公共后,发布者选择哪些人可以看,但是如果发布者不小心点了全部人,就会导致某些不该看到公告的人看到公告(某东经常有店铺把测试消息发给所有人).另一种设计是公告发布后,有一个管理员来配置那些人可以看到,好处是管理员是专门配置权限的,熟练后犯错几率大大降低,就算出错了,还可以让管理员背锅

ACL,RBAC,ABAC,RuBAC 这几种模型在我看来,都可以算作是RuBAC.
不同点是ACL可以看作是将RuBAC的结果事先计算出来,保存成一个列表或矩阵,有点类似是设计一个九九乘法表正常人用for循环嵌套,"聪明人"直接输出一个string.
RBAC在人和权限中间加了一层角色,分开看就是角色对权限的ACL加上人对角色的ACL
ABAC则是把RBAC的角色换成的属性
RuBAC在我看来最接近普通人思维里对权限管理的理解,即在某种条件下,拥有某些权限

最后,个人认为RBCA使用的比较多是因为角色与企业中的岗位高度相似,这样可以快速对接,不过代价是一个人通常只能有一个角色

标签: none

评论已关闭