权限系统模型:RBAC模型与ABAC模型

news2024/11/18 9:48:20

权限系统

基于角色的访问控制(RBAC

基于角色的控制访问(Role-Based Access Control,简称 RBAC),即:给予该账号角色(Role),授权角色对应的相关权限,实现了灵活的访问控制,相比直接授予用户权限,更加简单、高效、可扩展。

如下图:

img

图片来源自:Apache Directory

当使用RBAC模型时,需要分析该用户的具体使用情况,确认他的职责以及需求,然后基于共同的职责及需求分配不同的角色,属于一种用户->角色->权限的关系,这样的话就可以减去操作单个用户权限的繁琐操作,用户直接从角色中获取所需要的权限。

通过RBAC模型,当存在多个用户存在相同权限时,只需要创建好与权限相对应的角色即可,分配给这一批用户,以后修改角色的权限,就会自动的修改角色内的所有用户的权限。

例如数据库:MongoDB便是采用的RBAC模型,对数据库的操作都划分成了权限(MongoDB权限文档)

权限标识权限说明
find具有此权限的用户可以运行所有和查询有关的命令,如:aggregate、checkShardingIndex、count等。
insert具有此权限的用户可以运行所有和新建数据有关的命令:insert和create等。
collStats具有此权限的用户可以对指定database或collection执行collStats命令。
viewRole具有此权限的用户可以查看指定database的角色信息。

基于这些权限,MongoDB提供了一些预定义的角色(MongoDB预定义角色文档,而且你还可以进行自定义角色):

角色findinsertcollStatsviewRole
read
readWrite
dbAdmin
userAdmin

最后授予用户不同的角色,就可以实现不同粒度的权限划分。

以上基本上RBAC模型的核心设计(RBAC Core)。而基于核心概念之上,RBAC规范了还提供了扩展模式。

角色继承(Hierarchical Role

img

带有角色继承的RBAC,图片来源自:Apache Directory

听到继承,我会想到Java中的继承,感觉其实RBAC中的继承和Java中的也是大差不差的。在RBAC中,角色可以继承于其他角色,这样就会拥有其他角色权限,而且还可以关联额外的权限。这种设计可以给角色分组和分层,一定程度简化 了权限的管理工作。我个人对此的比如我有上级AB,上级A是上级B的上级,如果他们职责几乎完全相同,那么上级A一定会有上级B的权限,这样可以理解为上级A继承于上级B,这样就会拥有他的所有权限,然后根据自己的身份再确定额外的权限。

职责分离(Separation of Duty

为了避免用户拥有过多权限而产生的冲突,比如一个球员同时拥有裁判的权限,那么在比赛的时候不无敌了,另一种职责分离扩展版的RBAC被提出。

职责分离有两种模式:

  • 静态职责分离(Static Separation of Duty):即用户不能被赋予有冲突的角色,比如球员和裁判。

img

静态职责分离,图片来源自Apache Directory

  • 动态职责分离(Dynamic Separation of Duty):用户在一次会话中,不能同时激活自身所拥有的所拥有的、互相有冲突的角色,只能选择其一,比如在足球比赛中,你只能选择球员或者裁判其中一种身份。

img

动态职责分离,图片来自Apache Directory

基于属性的访问控制(ABAC

基于属性的控制访问(Attribute-Based Access Control,简称 ABAC)是一种比RBAC模型更加灵活的授权模型,即:通过各种属性来动态判断某个操作是否被允许。这个模型在云系统中使用的比较多,例如AWS,阿里云等。

考虑下面场景的权限控制:

  1. 授权某个人可以编辑某篇文章的权限
  2. 开发文档的所属部门与用户的部门相时,用户可以访问这个文档
  3. 公司9:00进行打卡,但有的部门是9:30进行打卡,不允许该部门9:00之前进行打卡
  4. 除了某地区外的用户可以观看到此条视频
  5. 在某某时间前创建的订单,我可以进行操作

可以发现上述厂家很难通过RBAC模型进行一个实现,因为他们没有具体的身份,只能描述该身份可以操作的事物,操作的一些条件和数据是没有办法进行限制的,但上述是某个操作规划了某些条件的权限。但这确实ABAC模型的长处,ABAC模型的思想是基于用户、访问的数据的属性、以及各种环境因素区动态计算用户是否有权限进行操作。

ABAC模型的原理

ABAC模型中,某些操作是否被允许是基于对象、资源、操作和环境信息共同计算决定的。

  • 对象:对象即当前访问的用户。用户的属性包括ID,个人资源,角色,部门和组织成员身份等。
  • 资源:资源即当前用户需要访问的资产或者对象,例如:文件,数据,服务器,API等
  • 操作:操作即用户对资源进行的操作。常见的操作包括“读取”,“写入”,“编辑”,“复制”和“删除”
  • 环境:环境是每个访问请求的上下文。环境属性包含访问的时间,位置,设备,通信协议,加密强度等

转转新权限系统的设计思想

RBAC模型已经满足了大部分的场景业务,开发成本也远低于ABAC模型的权限系统,转转此次新权限系统选择基于RBAC模型来实现。

标准的RBAC模型是完全遵从的用户->角色->权限的链路,也就是用户的权限完全由他所拥有的角色来控制,但是这样给用户加权限的效率比较低,所以转转在RBAC模型的基础商,新增了给用户直接添加权限的能力,个人理解就是在角色的基础上,扩展了一个可以单独加权限的操作。最终用户的权限是根据所拥有角色权限和独立新增权限组合而成。

新权限系统的权限模型:用户最终权限 = 用户拥有的角色带来的权限 + 用户独立配置的权限,两者取并集。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1377076.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

0基础学习VR全景平台篇第137篇:720VR全景,DJI无人机遥控器调参

上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! 这节课以御2为例 介绍的是无人机调参 步骤一:下载DJI Go 4并注册账号 步骤二:拿下遥杆并装好,展开遥控天线。将无人机与遥控器相连&#xff…

什么是云服务器ECS - 云服务器 ECS - 阿里云

阿里云服务器ECS英文全程Elastic Compute Service,云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务,阿里云提供多种云服务器ECS实例规格,如经济型e实例、通用算力型u1、ECS计算型c7、通用型g7、GPU实例等,阿里云百科aliyunbai…

ChatGPT、Claude等聚合平台Poe,获7500万美元融资

1月11日,生成式AI聊天助手聚合平台Poe,获得7500万美元(约5.3亿美元),估值5亿美元(约35.8亿元)。本次由 Andreessen Horowitz、a16z等投资。 Poe几乎聚合、镜像了目前市面上所有知名的文本、图片…

Easticsearch性能优化之硬件优化

Easticsearch性能优化之硬件优化 一、CPU配置二、内存配置1、内存配置总体方针2、内存实际分配3、禁止swap4、GC设置 三、IO(磁盘) 对于性能优化,升级硬件设备配置一直都是提高服务能力最快速有效的手段。硬件优化主要可以从CPU、内存、存储设…

数字孪生+可视化技术 构建智慧新能源汽车充电站监管平台

前言 充电基础设施为电动汽车提供充换电服务,是重要的交通能源融合类基础设施。近年来,随着新能源汽车产业快速发展,我国充电基础设施持续增长,已建成世界上数量最多、服务范围最广、品种类型最全的充电基础设施体系。着眼未来新…

【Matlab】在Matlab中安装优化工具yalmip的方法

最近博主想做一些关于多目标优化的问题,因为之前对Matlab有一定经验,所以直接在网上查找了如何在Matlab上实现多目标优化的文献,看到有人提到了yamip,于是博主就试着在Matlab中安装yamip,将其中遇到的问题和一些经验和…

C++力扣题目404--左叶子之和

给定二叉树的根节点 root ,返回所有左叶子之和。 示例 1: 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 思路 首先要注意是判断左叶子&#xff0…

商业定位,1元平价商业咨询:豪威尔咨询!平价咨询。

在做生意之前,就需要对企业整体进行一完整的商业定位,才能让商业定位带动企业进行飞速发展。 所以,包含商业定位的有效工作内容就显得极为重要,今天,小编特地为大家整理出了商业定位所需要的筹备的工作,如下…

#mysql 8.0 踩坑日记

事情发生在,修改一个已有功能的时候,正常的参数传递进去接口异常了。查看日志报的 Column date cannot be null 。因为是一直未修改过的功能,首先排除了程序代码问题,首先想到是不是升级过程序的jar包版本,检查下来发…

一键转换,创新无限:将HTML轻松转化为PDF!

在数字时代,HTML与PDF已成为信息传递的两大主流格式。然而,在这两者之间转换常常让人感到困扰。现在,有了我们的创新工具,您只需轻点一下,即可一键将HTML转化为PDF! 首先,我们要进入首助编辑高…

《SPSS统计学基础与实证研究应用精解》视频讲解:SPSS依托统计学处理数据的应用场景

《SPSS统计学基础与实证研究应用精解》1.4 视频讲解 视频为《SPSS统计学基础与实证研究应用精解》张甜 杨维忠著 清华大学出版社 一书的随书赠送视频讲解1.4节内容。本书已正式出版上市,当当、京东、淘宝等平台热销中,搜索书名即可。本书旨在手把手教会使…

20/100 删除链表的倒数第 N 个结点 21/100 有效的括号 22/100 合并两个有序列表

20/100 删除链表的倒数第 N 个结点 题目: 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 题解: 方法1:第一次完整遍历一遍得到长度,第二次遍历到倒数第n个数据前一个,进…

矩阵起源携手深智城入选中国信通院“星河”案例

近日,由中国信息通信研究院和中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)共同组织的 2023 大数据“星河(Galaxy)”案例征集活动评选结果现已公示。案例征集自9月启动以来,受到了业界广泛关注和…

图文看懂Android的Matrix原理

Matrix结构 在Android开发中,矩阵是一个非常强大且有趣的工具。位于图形库中,android.graphics.Matrix 是一个 33 的 float 矩阵,其主要作用是坐标变换。 它的结构大概是这样的: 其中每个位置的数值作用和其名称所代表的的含义是…

基于Java SSM框架实现雁门关风景区宣传网站项目【项目源码】计算机毕业设计

基于java的SSM框架实现雁门关风景区宣传网站演示 Java技术 Java技术它是一个容易让人学会和使用的一门服务器语言。它在编程的过程当中只需要很少的知识就能建立起一个真正的交互站点。对于这个教程来说它并不需要你完全去了解这种语言,只要能快速融入web站点就可以…

互信息法的原理详解

文章目录 互信息法(上)互信息是什么从信息增益角度理解互信息从变量分布一致角度理解互信息 卡方检验与离散变量的互信息法 互信息法(上) 尽管f_regression巧妙的构建了一个F统计量,并借此成功的借助假设检验来判断变…

拼夕夕的拼团模式已经过时!全新拼团模式你可以看一下!

全民拼购,这个新兴的社交电商模式,正以令人惊叹的速度重塑消费者的购物体验。通过与亲朋好友的互动,消费者不仅能享受到购物的乐趣,还能获得实实在在的优惠和福利。 在全民拼购的世界里,用户不再只是孤立的消费者。他们…

给视频添加动图,让视频更具动感与活力

相较于静态图片和文字,GIF动图能更直观地传达信息,为内容增添趣味性。那么,该如何给你的视频添加GIF动图,使其更具吸引力呢?接下来,让我们一起探讨这个话题。 所需工具: 一个【视频剪辑高手】…

CMVAE

use the encoder to obtain two sets of output: 1) (μ i ( m m ) ^{(mm)}_i i(mm)​,σ i ( m m ) ^{(mm)}_i i(mm)​) and 2) (μ i ( m t ) ^{(mt)}_i i(mt)​,σ i ( m t ) ^{(mt)}_i i(mt)​) 作者未提供代码

trilium笔记私有化部署

前言:一直用有道云笔记,随着笔记越多,每次搜索跟打开都感觉没那么顺畅。再考虑到数据安全问题,想着有没私有化部署的笔记,于是开始探索私有化部署笔记。 为知笔记:比较早之前,家里的NAS部署过为…