权限管理 ACL、RBAC、ABAC的学习

news/2024/7/7 20:18:12

ACL(Access Control List:访问控制列表)

最简单的一种方式,将权限直接与用户或用户组相关联,管理员直接给用户授予某些权限即可。
这种模型适用于小型和简单系统,权限一块较为简单,并且角色和权限的变化较少。

RBAC(Role-Based Access Control,基于角色的访问控制)

最常见的一种方式,通过定义角色和角色的权限集合来管理访问控制。用户被分配到角色,角色与权限相关联,从而精确地控制用户对系统资源的访问。适用于大型系统,特别是那些需要灵活、可扩展的权限管理的场景。使用 RBAC 可以简化权限管理的复杂性并提高系统的安全性。

用户和角色的关系:多对多关系,一个用户可以有多种角色,一个角色对应好几个用户。

角色和权限的关系:多对多关系,一个角色可以拥有多种权限,同样某个权限可能有多个角色拥有

RBAC的扩展(NIST标准包含的4级RBAC模型)

RBAC0(Core RBAC)

基本模型有三个元素:用户、角色和权限。

模型设计基于“多对多”原则,即多个用户可以具有相同的角色,一个用户可以具有多个角色。同样,您可以将同一权限分配给多个角色,也可以将同一角色分配给多个权限。

RBAC1(Hierarchical RBAC)

添加了第四个组件-层次结构,它定义了不同角色之间的资历关系。通过允许高级角色自动获取下级角色的权限,可以消除冗余,例如在角色重叠时必须指定某些权限。

        分层RBAC支持几种类型的层次结构:

        树:自底向上的层次结构,树底部的元素将权限授予更高的元素。例如,底部是一个具有常规权限的部门角色,所有权限比较小,上面的节点除了继承底部节点的权限,还可以添加自有的权限,这可以满足不同部门拥有不用的权限也有相同的权限的需求。

        倒树:自上而下的层次结构,其中高级角色将其部分权限继承给下级角色。这种结构中层节点的权限均继承于底部节点,所以同层节点不存在共享权限。

        网格:二者相结合的组合,其中每个角色都可以从其下方和上方的节点继承权限。此种结构相对比较灵活,既可以有共享权限,也可以有自有权限,且顶级节点拥有最大的权限。

RBAC2(Static separation of duty (SSD) relations)

为了在存在利益冲突策略的情况下提供帮助,将根据用户分配添加角色之间的关系。即角色之间有相斥的联系,作为一个角色的成员的用户将无法被指派为具有利益冲突的角色的成员。

RBAC3(Dynamic separation of duty (DSD) relations)

与SSD一样,DSD限制了可用的用户权限,但基于不同的上下文。例如,根据会话期间执行的任务,用户可能需要不同级别的访问,DSD限制会话期间激活的权限。

使用RBAC的好处有哪些?

RBAC最大的优点之一是它提供了一种系统化的方法,用于定义和维护角色,能够仅根据用户需要一致地授予访问权限,从而降低数据泄露或数据丢失的风险。

当然他还有很多好处,比如:

  • 简化了基础操作,可以通过属性自动为新用户分配访问权限(可以用来快速入职)
  • 简化IT管理工作,可以快速重新分配权限
  • 降低高级访问控制的成本

RBAC存在的缺陷

1、需要了解组织结构知识

在真正运用的时候,需要对组织、部门等东西进行协调,并和之前所存在角色进行比较区分,并在参与讨论后才能定义并创建角色。

2、分配角色需要深思熟虑

分配角色可能是一项挑战。可能会出现很多问题,答案并不总是清晰的。例如:安全团队是否需要访问他们试图保护的数据,包含哪些访问权限(创建/读取/更新/删除)?是否应为用户分配部门之外的角色,以确保临时访问特权文件?

3、缺乏灵活性

组织成长,团队扩张,访问需求发生变化。在RBAC项目开始时定义的角色可能不再符合公司目标。

结果如何?人员的角色和权限级别可能不一致。例如,一个人可能被赋予过多的角色权限、分配过多的角色,或者两者兼而有之。虽然这些努力可能会起到快速修复的作用,但它们也会造成安全漏洞和法规遵从性挑战,从而打消了您最初实施RBAC的全部原因。

4、角色爆炸

一些团队试图通过定义越来越细粒度的角色、在出现新需求时创建临时角色,或将太多的角色分配给单个用户来回避上述问题。虽然这可能会在短期内缓解摩擦,但也会让RBAC变得混乱,难以管理。

ABAC(Attribute-Based Access Control,基于属性的访问控制)

又称为PBAC(Policy-Based Access Control,基于策略的访问控制),或CBAC(Claims-Based Access Control,基于声明的访问控制)。

是一种基于属性的权限管理模型,它根据多个属性(如用户属性、环境、时间、操作等)来进行访问控制决策。ABAC 通过定义策略来决定用户是否有权访问特定的资源。该模型适合于需要更细粒度、动态和灵活的访问控制的场景。ABAC 在复杂的环境中可以提供高度的可配置性和可扩展性。

有较好的灵活性,


http://lihuaxi.xjx100.cn/news/1504453.html

相关文章

【C++】C++11新特性 lambda表达式

C11新特性 lambda表达式1、引入2、lambda表达式语法3、 捕获列表说明4、 lambda表达式的原理5、 lambda对象的大小 lambda表达式 1、引入 在C98中,如果想要对一个数据集合中的元素进行排序,可以使用std::sort方法,如果待排序元素为自定义类…

JVM的故事——垃圾收集器

垃圾收集器 文章目录 垃圾收集器一、serial收集器二、parnew收集器三、parallel scavenge收集器四、serial old收集器五、parallel old收集器六、CMS收集器七、Garbage First收集器八、收集器的权衡 一、serial收集器 新生代收集器,最基础的收集器,单线…

文件操作方式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:…

哪吒汽车“三头六臂”之「浩智电驱」

撰文 / 翟悦 编审 / 吴晰 8月21日,在哪吒汽车科技日上,哪吒汽车发布“浩智战略2025”以及浩智技术品牌2.0。根据公开信息,主编梳理了以下几点:◎浩智滑板底盘支持400V/800V双平台◎浩智电驱包括180kW 400V电驱系统和250kW 800…

java八股文面试[数据库]——B树和B+树的区别

B树是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(logn)的时间复杂度进行查找、顺序读取、插入和删除等操作。 1、B树的特性 B树中允许一个结点中包含多个key,可以是3个、4个、5个甚至更多,并不确定,需要看具体的实…

vscode+esp-idf 搭建esp32开发环境,编译信息中文乱码

1.修改波特率 2.C:\Users\Administrator\.vscode\extensions\vsciot-vscode.vscode-arduino-0.6.0-win32-x64\out\src\common 打开文件 util.js 屏蔽掉这部分的代码 、

座舱3.0时代!产业涌现哪些新机会?

智能座舱一直是汽车智能化普及的领跑角色,目前已经逐步进入了软件定义座舱的新周期。 过去几年,中控多媒体系统、车载语音、OTA等单一功能的搭载率已经快速普及。其中,中控娱乐系统的前装渗透率已经超过90%。高工智能汽车研究院监测数据显示…

计算机/嵌入式入门教材资料

背景 自学计算机,首先我们要找到好的教材、教程,可以事半功倍。 目前,互联网上计算机资源较多,难的不再是寻找资源,而是筛选出质量比较高的资源。 基于笔者经验,推荐以下资源。 书籍 传统的书籍是纸质版…