nmsn / blog

记录日常遇到的问题,需要记录的笔记以及新学到的知识,会进行汇总和分类,自动更新 README,欢迎评论和补充,互相学习
36 stars 0 forks source link

权限系统设计 #49

Open nmsn opened 2 years ago

nmsn commented 2 years ago

种类

介绍

ACL 权限控制列表

规定资源可以被哪些主体进行哪些操作

在 ACL 权限模型下,用来判断用户是否可以对资源做特定的操作

抽象 ACL 配置表如下

主体:用户或组
操作:增删改查等
资源:文档页面等

DAC 自主访问控制

规定资源可以被哪些主体进行哪些操作同时,主体可以将资源、操作的权限,授予其他主体

DAC 是 ACL 的拓展模型

DAC 可以讲授权下方,允许拥有权限的用户,自主将权限授予其他用户

特点:增强了 ACL 的灵活性

MAC 强制访问控制

在 ACL 模型基础上,需要对被操作资源赋予权限(被操作的权限),同时满足操作和被操作权限的基础上,才允许操作

MAC 实现了主体和资源的双重验证,确保资源的交叉隔离,提高安全性

特点:增加了 ACL 的安全性

RBAC 基于角色的访问权限

a. 规定角色可以对哪些资源进行哪些操作 b. 规定主体拥有哪些角色当一个操作,同时满足a与b时,允许操作

RBAC的思想,来源于现实世界的企业结构。比如,销售角色,拥有查看客户信息的权限。当一个销售人员小王入职了,可以把销售角色赋予小王,那么小王就拥有了查看客户的权限。这种方式,避免了ACL模型下,每次新人入职,需要逐个配置资源表的情况。同样,权限变动也变得很方便,只要修改角色,即可实现多用户的权限修改。

ABAC 基于属性的访问控制

规定哪些属性的主体可以对哪些属性的资源在哪些限制条件下进行哪些操作

跟 RBAC 相比,ABAC 对权限的控制粒度更细,主要规定了下面四类属性

设定一个权限,就是定义一条含有四类属性信息的策略

举例

操作:流入
主体:来自上海IP的客户端
资源:所有以33开头的端口(如3306)
条件:在北京时间 9:00~18:00

参考

  1. https://zhuanlan.zhihu.com/p/70548562
  2. https://juejin.cn/post/7025918356309934116