前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >RBAC:基于角色的权限访问控制

RBAC:基于角色的权限访问控制

作者头像
看、未来
发布于 2022-05-11 06:21:18
发布于 2022-05-11 06:21:18
1.8K00
代码可运行
举报
运行总次数:0
代码可运行

文章目录

RBAC模型概述

RBAC模型(Role-Based Access Control:基于角色的访问控制)模型是20世纪90年代研究出来的一种新模型,但其实在20世纪70年代的多用户计算时期,这种思想就已经被提出来,直到20世纪90年代中后期,RBAC才在研究团体中得到一些重视,并先后提出了许多类型的RBAC模型。其中以美国George Mason大学信息安全技术实验室(LIST)提出的RBAC96模型最具有代表,并得到了普遍的公认。

RBAC认为权限授权的过程可以抽象地概括为:Who是否可以对What进行How的访问操作,并对这个逻辑表达式进行判断是否为True的求解过程,也即是将权限问题转换为What、How的问题,Who、What、How构成了访问权限三元组;


RBAC的组成

在RBAC模型里面,有3个基础组成部分,分别是:用户、角色和权限。

RBAC通过定义角色的权限,并对用户授予某个角色从而来控制用户的权限,实现了用户和权限的逻辑分离(区别于ACL模型),极大地方便了权限的管理 :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
User(用户):每个用户都有唯一的UID识别,并被授予不同的角色
Role(角色):不同角色具有不同的权限
Permission(权限):访问权限
用户-角色映射:用户和角色之间的映射关系
角色-权限映射:角色和权限之间的映射

它们之间的关系如下图所示:

管理员和普通用户被授予不同的权限,普通用户只能去修改和查看个人信息,而不能创建创建用户和冻结用户,而管理员由于被授 予所有权限,所以可以做所有操作。

例如下图,管理员和普通用户被授予不同的权限,普通用户只能去修改和查看个人信息,而不能创建创建用户和冻结用户,而管理员由于被授予所有权限,所以可以做所有操作。


RBAC支持的安全原则

RBAC支持三个著名的安全原则:最小权限原则、责任分离原则和数据抽象原则

最小权限原则:RBAC可以将角色配置成其完成任务所需的最小权限集合 责任分离原则:可以通过调用相互独立互斥的角色来共同完成敏感的任务,例如要求一个计账员和财务管理员共同参与统一过账操作 数据抽象原则:可以通过权限的抽象来体现,例如财务操作用借款、存款等抽象权限,而不是使用典型的读、写、执行权限


RBAC的优缺点

(1)优点:

简化了用户和权限的关系 易扩展、易维护

(2)缺点:

RBAC模型没有提供操作顺序的控制机制,这一缺陷使得RBAC模型很难适应哪些对操作次序有严格要求的系统


RBAC的3种模型

(1)RBAC0

RBAC0,是最简单、最原始的实现方式,也是其他RBAC模型的基础。

在该模型中,用户和角色之间可以是多对多的关系,即一个用户在不同场景下是可以有不同的角色,例如:项目经理也可能是组长也可能是架构师。同时每个角色都至少有一个权限。这种模型下,用户和权限被分离独立开来,使得权限的授权认证更加灵活。

(2)RBAC1

基于RBAC0模型,引入了角色间的继承关系,即角色上有了上下级的区别。 在这里插入图片描述

角色间的继承关系可分为一般继承关系和受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承。而受限继承关系则进一步要求角色继承关系是一个树结构,实现角色间的单继承。

这种模型适合于角色之间层次分明,可以给角色分组分层。

(3)RBAC2

RBAC2,基于RBAC0模型的基础上,进行了角色的访问控制。

在这里插入图片描述

RBAC2中的一个基本限制是互斥角色的限制,互斥角色是指各自权限可以互相制约的两个角色。对于这类角色一个用户在某一次活动中只能被分配其中的一个角色,不能同时获得两个角色的使用权。

该模型有以下几种约束:

  • 互斥角色 :同一用户只能分配到一组互斥角色集合中至多一个角色,支持责任分离的原则。互斥角色是指各自权限互相制约的两个角色。对于这类角色一个用户在某一次活动中只能被分配其中的一个角色,不能同时获得两个角色的使用权。常举的例子:在审计活动中,一个角色不能同时被指派给会计角色和审计员角色。
  • 基数约束 :一个角色被分配的用户数量受限;一个用户可拥有的角色数目受限;同样一个角色对应的访问权限数目也应受限,以控制高级权限在系统中的分配。例如公司的领导人有限的;
  • 先决条件角色 :可以分配角色给用户仅当该用户已经是另一角色的成员;对应的可以分配访问权限给角色,仅当该角色已经拥有另一种访问权限。指要想获得较高的权限,要首先拥有低一级的权限。就像我们生活中,国家主席是从副主席中选举的一样。
  • 运行时互斥 :例如,允许一个用户具有两个角色的成员资格,但在运行中不可同时激活这两个角色。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
RBAC权限系统分析、设计与实现
最近,因为项目上需要设计实现一个权限管理模块,所以专门整理总结了RBAC的一些知识。
架构师修行之路
2021/03/16
9.3K0
权限系统与RBAC模型概述[绝对经典]
一年前,我负责的一个项目中需要权限管理。当时凭着自己的逻辑设计出了一套权限管理模型,基本原理与RBAC非常相似,只是过于简陋。当时google了一些权限管理的资料,从中了解到早就有了RBAC这个东西。可惜一直没狠下心来学习。
菲宇
2019/06/13
4.5K0
权限系统与RBAC模型概述[绝对经典]
【设计模式】RBAC 模型详解
在大型多人协作的系统中,如何有效地管理不同用户的访问权限,确保系统的安全性和稳定性,是每一个开发者都需要面对的挑战。为了解决这一问题,业界提出了一种被广泛应用的权限管理模型——基于角色的访问控制(Role-Based Access Control,简称RBAC)。
绿毛龟
2024/01/19
1.8K0
【设计模式】RBAC 模型详解
超级全面的权限系统设计方案
权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。
良月柒
2019/10/14
7.8K0
超级全面的权限系统设计方案
权限管理系统RBAC和ABAC模型
目前广泛采用的两种权限模型:基于角色的访问控制(role-based access control RBAC)和基于属性的访问控制(attribute-based access control ABAC)
用户9914333
2022/07/22
10.9K0
权限管理系统RBAC和ABAC模型
【安全知识】访问控制模型DAC、MAC、RBAC、ABAC有什么区别?
不同的公司或软件提供商,设计了无数种控制用户访问功能或资源的方法。但无论哪种设计,都可归到四种经典权限模型里——自主访问控制(DAC, Discretionary Access Control)、强制访问控制(MAC, Mandatory Access Control)、基于角色访问控制(RBAC, Role-based Access Control)和基于属性访问控制(ABAC, Attribute-based Access Control)。
星尘安全
2024/09/16
6780
【安全知识】访问控制模型DAC、MAC、RBAC、ABAC有什么区别?
RBAC 模型 - 权限系统是如何进行架构设计的?
大家在平时使用网页的时候,遇到和权限相关的场景应该很多,比如视频网站的会员视频,管理后台的访问控制,那么,本文将带大家了解一下,权限系统的通用设计模型理念,和如何设计一个简易的权限系统。
用户3806669
2021/07/06
1K0
RBAC 模型 - 权限系统是如何进行架构设计的?
【尚筹网】六、RBAC 权限控制模型和 Ajax 请求
如果没有权限控制,系统的功能完全不设防,全部暴露在所有用户面前。用户登录以后可以使用系统中的所有功能。这是实际运行中不能接受的。
用户11332765
2024/12/25
990
【尚筹网】六、RBAC 权限控制模型和 Ajax 请求
Spring Security 实战干货: RBAC权限控制概念的理解
欢迎阅读 Spring Security 实战干货系列文章 。截止到上一篇我们已经能够简单做到用户主体认证到接口的访问控制了,但是依然满足不了实际生产的需要。 如果我们需要一个完整的权限管理系统就必须了解一下 RBAC (Role-Based Access Control基于角色的访问控制) 的权限控制模型。
码农小胖哥
2019/12/10
9510
Spring Security 实战干货: RBAC权限控制概念的理解
权限控制的解决方式(科普向)
目录 1 权限控制是什么   1.1 ACL   1.2 RBAC     1.2.1 名词术语     1.2.2 RBAC定义     1.2.3 RBAC分类       1.2.3.1 RBAC0       1.2.3.2 RBAC1       1.2.3.3 RBAC2     1.2.4 RBAC 接口 2 垂直权限(功能权限) 3 水平权限(数据权限) 4 OAuth   4.1 授权码模式(authorization code)   4.2 简化模式(implicit)   4.3 密码
butterfly100
2018/04/17
4.5K0
权限控制的解决方式(科普向)
Spring Security 中最流行的权限管理模型!
前面和大家说了 ACL,讲了理论,也给了一个完整的案例,相信小伙伴们对于 ACL 权限控制模型都已经比较了解了。
江南一点雨
2020/09/23
1.3K0
Spring Security 中最流行的权限管理模型!
TienChin 项目中的 RBAC 是怎么玩的?
松哥最近正在录制 TienChin 项目视频~采用 Spring Boot+Vue3 技术栈,里边会涉及到各种好玩的技术,小伙伴们来和松哥一起做一个完成率超 90% 的项目,戳戳戳这里-->TienChin 项目配套视频来啦
江南一点雨
2022/06/23
6760
TienChin 项目中的 RBAC 是怎么玩的?
RBAC 和 Keto(Go RBAC 框架)
RBAC(Role-Based Access Control)是最通用的权限访问控制系统。其思想是,不直接授予具体用户各种权限,而是在用户集合和权限集合之间建立角色集合。每种角色对应一组相应的权限,一旦用户被分配适当的角色,他就拥有此角色的所有权限。这样做的好处是,不必在每次创建用户时都分配权限,只要给用户分配相应的角色即可,并且角色的权限变更比用户的权限变更要少得多,这将简化用户的权限管理,减少系统开销。
小阑本阑
2023/06/15
9700
RBAC 和 Keto(Go RBAC 框架)
权限系统就该这么设计,yyds
权限管控可以通俗的理解为权力限制,即不同的人由于拥有不同权力,他所看到的、能使用的可能不一样。对应到一个应用系统,其实就是一个用户可能拥有不同的数据权限(看到的)和操作权限(使用的)。
码猿技术专栏
2023/05/01
1.3K0
权限系统就该这么设计,yyds
RBAC模型与权限系统的梳理(附案例源码)
在进行查询时,自定义了一个异常类, 用于在用户查询不到是,打印出"用户不存在或密码有误"的异常
时间静止不是简史
2020/07/27
2.4K0
RBAC模型与权限系统的梳理(附案例源码)
基于角色访问控制RBAC权限模型的动态资源访问权限管理实现
前面主要介绍了元数据管理和业务数据的处理,通常一个系统都会有多个用户,不同用户具有不同的权限,本文主要介绍基于RBAC动态权限管理在crudapi中的实现。
crudapi
2021/08/23
6K2
基于角色访问控制RBAC权限模型的动态资源访问权限管理实现
使用.NET从零实现基于用户角色的访问权限控制
在设计系统时,我们必然要考虑系统使用的用户,不同的用户拥有不同的权限。主流的权限管理系统都是RBAC模型(Role-Based Access Control 基于角色的访问控制)的变形和运用,只是根据不同的业务和设计方案,呈现不同的显示效果。
桑榆肖物
2022/11/18
1.7K0
使用.NET从零实现基于用户角色的访问权限控制
访问控制技术
访问控制技术是指:防止对任何资源进行未授权的访问,从而使计算机系统在合法的范围内使用,用户身份及其所归属的某项定义组来限制用户对某些信息项的访问,或限制对某些控制功能的使用的一种技术,如UniNAC网络准入控制系统等。访问控制通常用于系统管理员控制用户对服务器、目录、文件等网络资源的访问。
网络安全观
2021/02/25
2.2K0
【实践】RBAC 权限管理分析和样例
RBAC 是基于角色的访问控制(Role-Based Access Control )在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。
辉哥
2020/04/09
3.5K0
RBAC-基于角色的访问控制
RBAC 是基于角色的访问控制(Role-Based Access Control )在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。
HammerZe
2022/05/09
2.2K0
RBAC-基于角色的访问控制
相关推荐
RBAC权限系统分析、设计与实现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验