目录
一、什么是RBAC模型?
RBAC模型(Role-Based Access Control:基于角色的访问控制)模型
是20世纪90年代研究出来的一种新模型,但其实在20世纪70年代的多用户计算时期,这种思想就已经被提出来,直到20世纪90年代中后期,RBAC才在研究团体中得到一些重视,并先后提出了许多类型的RBAC模型。其中以美国George Mason大学信息安全技术实验室(LIST)提出的RBAC96模型最具有代表,并得到了普遍的公认。
在RBAC模型里面,有3个基础组成部分,分别是︰用户、角色和权限。
RBAC通过定义角色的权限,并对用户授予某个角色从而来控制用户的权限,实现了用户和权限的逻辑分离(区别于ACL模型),极大地方便了权限的管理。
二、RBAC的权限授权过程
RBAC认为权限授权的过程可以抽象地概括为:
Who是否可以对What进行How的访问操作,并对这个逻辑表达式进行判断是否为True的求解过程,也即是将权限问题转换为What、How的问题,Who、What、How构成了访问权限三元组,具体的理论可以参考RBAC96的论文,这里我们就不做详细的展开介绍,大家有个印象即可。
三、 RBAC模型中的核心概念
RBAC模型中的核心概念包括:
- User(用户)︰每个用户都有唯一的UID识别,并被授予不同的角色
- Role (角色)︰不同角色具有不同的权限
- Permission(权限)︰访问权限
-用户-角色映射:用户和角色之间的映射关系
-角色-权限映射:角色和权限之间的映射
四、RBAC支持三个著名的安全原则:
最小权限原则、责任分离原则和数据抽象原则
- 最小权限原则:RBAC可以将角色配置成其完成任务所需的最小权限集合
- 责任分离原则:可以通过调用相互独立互斥的角色来共同完成敏感的任务,例如要求一个计账员和财务管理员共同参与统一过账操作
- 数据抽象原则:可以通过权限的抽象来体现,例如财务操作用借款、存款等抽象权限,而不是使用典型的读、写、执行权限