美文网首页
acl pattern 2023-02-01

acl pattern 2023-02-01

作者: 9_SooHyun | 来源:发表于2023-01-31 21:45 被阅读0次

权限

权限的本质是分类,不同权限模型的分类纬度不同

DAC

discretionary access control 自主访问控制
DAC规定资源可以被哪些主体进行哪些操作,只存在操作权限
同时,主体可以将资源、操作的权限,授予其他主体。允许拥有权限的用户,可以自主地、直接或间接地将访问权限赋予其他主体,自主性强
应用:文件系统的权限设计

MAC

Mandatory Access Control 强制访问控制,亦称为非自主访问控制
MAC规定了操作权限和资源权限。与MAC对比,DAC的数据存取权限由用户控制,系统无法控制,因为DAC实际上只存在操作权限,而这些操作权限是可传递的,因此说DAC的数据存取权限由用户控制;MAC安全等级更高,用户不能直接【完全控制】。
自主访问控制是指一类可以在主体之间相互转让权限的访问控制,而强制访问控制则指的是另一类强制限制权限的访问控制。
MAC要求:既要拥有操作权限,又要拥有资源权限,才能通过鉴权。例如,运维拥有关机权限(操作权限),同时拥有机器权限(资源权限),才能最终完成关机操作。因此,MAC的特点是实现资源与操作的双重验证,提高安全性
例如:om2的权限模型就是RBAC+MAC

RBAC

role based access control 基于角色的权限控制
注意角色和组的区别。虽然它们都是分治内聚的思路,但是它们内聚的对象并不同:

  • 角色是权限的集合
  • 组是用户的集合

基于角色的权限控制,把若干权限集合起来,称为role。实现逻辑是:权限→角色→用户。比如用户A拥有100个权限,新加入的用户B想拥有同样的权限,就不需要一个一个添加权限,直接赋予角色即可
不同role的权限集合不一样,可以进行的操作也不一样
注意,RBAC不适合权限高度个性化的系统,比如每个人都有与他人不同的权限,这样的情况很难内聚出【角色】
例如:golang casbin

ABAC

attribute based access control
比如IP鉴权、年龄段鉴权(18岁以下限制游戏时间)
ABAC对用户本身的属性进行标识,通过标识来判断用户权限。使得ABAC非常灵活,可扩展性也很高

相关文章

网友评论

      本文标题:acl pattern 2023-02-01

      本文链接:https://www.haomeiwen.com/subject/kembhdtx.html