RBAC权限管理(一)

本文涉及的产品
访问控制,不限时长
简介: RBAC权限管理

权限相关的模式


权限模型是用于管理系统中用户和资源之间访问控制的一种机制。在这方面,有几种常见的模型,包括基于角色的访问控制(Role-Based Access Control,RBAC)、基于属性的访问控制(Attribute-Based Access Control,ABAC)和访问控制列表(Access Control Lists,ACL)。下面我将为你简要描述这几种权限模型。


基于角色的访问控制(RBAC):

RBAC模型将访问权限授予角色,而不是直接授予用户。用户被分配到角色,而角色则被授予相应的权限。这种模型的核心思想是将用户的权限管理集中在角色上,简化了权限的分配和管理。管理员可以根据用户的职责和职位将其分配到不同的角色,而不必为每个用户单独配置权限。RBAC模型可以提高系统的安全性和管理的灵活性。


基于属性的访问控制(ABAC):

ABAC模型通过使用资源、用户和环境等属性来决定访问权限。在ABAC中,访问策略是由一组属性表达式定义的。这些属性表达式可以涵盖各种因素,如用户的属性(如角色、职位)、资源的属性(如类型、所有者)、环境的属性(如时间、地点)等。系统通过评估这些属性表达式来确定是否授予用户访问权限。ABAC模型非常灵活,能够根据系统的需求和上下文动态地进行访问控制。


访问控制列表(ACL):

ACL模型是一种简单直接的访问控制模型。在ACL中,每个资源都有一个关联的访问控制列表,其中包含了对该资源的访问权限信息。这些权限信息通常是由用户或用户组来定义的。当用户请求访问某个资源时,系统会检查ACL中对应的权限,然后决定是否授予访问权限。ACL模型适合于小规模系统,但在大规模和复杂系统中可能会变得难以管理。


总的来说,RBAC模型强调角色和权限的管理,ABAC模型强调属性的使用和灵活性,而ACL模型则是一种基于资源的简单访问控制模型。选择适合的权限模型取决于具体的系统需求和复杂性。


下图是这三种模式的一个二维表。


2a17409facf57e698b3d39ec8609c8b8_60aa4102a51b46a1ac46cd196b34c822.png

示例


为了更好的理解这三种模式,下面通过三个例子来取理解这三种模式。

RBAC(基于角色的访问控制)示例: 假设有一个大型企业,其中包含不同的部门,如人力资源、财务和研发。在该企业中,可以使用RBAC来管理员工对各个部门的访问权限。例如,将员工分配到特定的角色,如HR Manager、Accountant和Software Engineer。每个角色都与特定的权限相关联,例如HR Manager具有访问人力资源系统和员工档案的权限,而Software Engineer具有访问开发工具和源代码库的权限。


ABAC(基于属性的访问控制)示例: 考虑一个医疗机构,其中有不同级别的医生和护士,以及不同的病人。使用ABAC可以基于属性来管理对病人医疗记录的访问控制。例如,可以定义访问策略,只允许特定医生角色访问其所属科室的病人记录,并且只允许护士角色访问他们负责的病人记录。这里的属性可能包括医生和护士的所属科室、病人的病历号等。


ACL(访问控制列表)示例: 假设有一个共享文件夹,多个用户需要对其中的文件进行访问。使用ACL可以直接授权用户对特定文件的访问权限。例如,管理员可以设置文件夹的访问控制列表,指定用户A具有读取和写入文件的权限,而用户B只有读取权限。这样,用户A可以编辑和保存文件,而用户B只能查看文件内容。


RBAC简介


本博文会着重介绍一下RBAC的相关内容。


什么是RBAC


BAC是Role-Based Access Control的缩写,含义为基于角色的访问控制模型,此模型是20世纪90年代在美国第十五届全国计算机安全大会上提出的,后逐步被业界广泛使用,至2004年形成了ANSI/INCITS标准。时至今日,RBAC访问控制模型已经渗入IT领域的多个方面,有传统技术方面的操作系统、数据库、中间件Web服务器,有新兴技术方面的Kubernetes、Puppet、OpenStack等。RBAC访问控制模型能得到如此丰富而广泛的使用,得益于它基于用户与角色关系分配权限进行访问控制的核心理念。


RBAC 是基于角色的访问控制(Role-Based Access Control )在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。


RBAC 认为授权实际上是Who 、What 、How 三元组之间的关系,也就是Who 对What 进行How 的操作,也就是“主体”对“客体”的操作。

Who:是权限的拥有者或主体(如:User,Role)。

What:是操作或对象(operation,object)。

How:具体的权限(Privilege,正向授权与负向授权)。


RBAC解决了什么问题


基于角色的访问控制(RBAC)模型解决了许多与权限管理相关的问题,主要包括以下几个方面:


简化权限管理:RBAC模型通过将权限授予角色而不是直接授予用户,简化了权限管理的复杂性。管理员可以根据用户的职责和职位将其分配到适当的角色,而不必为每个用户单独配置权限。这样可以减少管理工作量,提高效率。


降低错误和风险:RBAC模型减少了手动配置权限的错误风险。由于权限是基于角色进行管理,管理员只需要为角色定义适当的权限,而不必考虑每个用户的具体权限。这样可以减少配置错误和意外授权的可能性,提高系统的安全性。


支持权限的继承和维护:RBAC模型支持权限的继承。当一个用户被分配到一个角色时,他将自动继承该角色所具有的权限。如果需要更改权限,只需调整角色的权限定义即可,而无需逐个修改每个用户的权限。这样简化了权限的维护和更新过程。


增强了系统的可扩展性和灵活性:RBAC模型使系统能够更好地适应变化和扩展。当新增用户或角色时,只需将其分配到相应的角色,而无需修改系统的访问规则。这样可以轻松地扩展系统并适应组织结构的变化。


促进了合规性和审计:RBAC模型使合规性和审计更加可行。通过角色的权限分配和管理,可以更容易地跟踪和审计系统中的权限使用情况。这有助于确保符合法规要求,并提供了追踪和解决潜在安全问题的能力。


综上所述,RBAC模型通过简化权限管理、降低错误和风险、支持权限继承和维护、增强系统的可扩展性和灵活性,以及促进合规性和审计,解决了许多与权限管理相关的问题,提高了系统的安全性和管理效率。


RBAC的适用场景


基于角色的访问控制(RBAC)模型适用于许多不同的场景,尤其是那些需要对用户和资源之间的访问进行细粒度控制和管理的场景。以下是一些常见的RBAC使用场景:


企业组织架构:在企业中,RBAC可用于根据员工的职位、角色和职责来管理访问权限。不同部门的员工可以被分配到不同的角色,以便根据其工作职能限制他们对系统和资源的访问。


应用程序和系统访问控制:RBAC可用于管理应用程序和系统中的用户访问权限。管理员可以根据用户的角色将其分配到适当的角色,并定义角色的权限集合。这样,系统可以确保用户只能访问其所需的功能和数据,从而提高安全性。


多租户系统:在多租户环境中,RBAC模型可以用于对不同租户之间的访问进行隔离和管理。每个租户可以有自己的角色和权限定义,以确保其数据和资源只能被其授权的用户访问。


医疗保健:在医疗保健领域,RBAC可用于管理医生、护士和管理员等不同角色的访问权限。例如,医生可以被分配到具有病人记录和处方访问权限的角色,而护士只能访问病人记录。


金融和银行:在金融和银行领域,RBAC可用于管理不同用户角色的访问权限,例如客户、经理和审计人员。通过RBAC,可以确保客户只能访问其自己的账户信息,而经理和审计人员可以拥有更广泛的访问权限。


云计算和网络服务提供商:RBAC可用于管理云计算平台和网络服务提供商中的用户访问权限。不同用户可以被分配到不同的角色,以限制其对云资源、虚拟机或网络设备的操作。


RBAC模型可以应用于各种不同的领域和系统,以提供更安全、灵活和可管理的访问控制机制。根据特定的需求和环境,可以根据RBAC模型进行定制和扩展。


相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
3月前
|
安全 数据安全/隐私保护 开发者
|
4月前
|
前端开发 NoSQL 中间件
rbac基于用户角色的权限管理
rbac - 基于角色的权限管理,介绍了acl(访问权限列表)基于用户的权限管理,rbac基于角色的权限管理。
rbac基于用户角色的权限管理
|
安全 数据安全/隐私保护
基于RBAC实现权限系统
基于RBAC实现权限系统
457 0
|
6月前
|
存储 监控 安全
深入理解RBAC权限系统
RBAC(Role-Based Access Control)是一种访问控制模型,其核心概念是基于角色的权限分配。该模型的设计目标是简化对系统资源的访问管理,提高系统的安全性和可维护性。
849 1
深入理解RBAC权限系统
|
数据安全/隐私保护
RBAC权限模型
RBAC权限模型
149 0
|
监控 安全 数据安全/隐私保护
|
存储 缓存 运维
基于RBAC模型的权限管理设计
RBAC模型(Role-Based Access Control:基于角色的访问控制)是比较早期提出的权限实现模型,在多用户计算机时期该思想即被提出,其中以美国George Mason大学信息安全技术实验室(LIST)提出的RBAC96模型最具有代表,并得到了普遍的公认。 RBAC认为权限授权的过程可以抽象地概括为:Who是否可以对What进行How的访问操作,并对这个逻辑表达式进行判断是否为True的求解过程,也即是将权限问题转换为Who、What、How的问题,Who、What、How构成了访问权限三元组,具体的理论可以参考RBAC96。
551 0
基于RBAC模型的权限管理设计
|
安全 数据安全/隐私保护
RBAC的用户权限管理原理
RBAC的用户权限管理原理
160 0
|
前端开发 数据安全/隐私保护
关于接口权限控制以及rbac
关于接口权限控制以及rbac
327 0
关于接口权限控制以及rbac
|
数据库 数据安全/隐私保护
RBAC用户权限管理数据库设计
原文来自:http://minjiechenjava.iteye.com/blog/1759482 最近正在为下一项目版本设计权限管理的。看到了这篇文章,可以参考参考! RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。
7139 1