什么是RBAC?

什么是RBAC?

全称:role-based access control 基于角色的权限访问控制

作用:实现访问控制

RBAC模型概括

RBAC权限授权的过程可以概括为:W是否可以对Z进行H的访问操作,并对这个逻辑表达式进行判断是否为true的过程,也是将权限问题转换为Z、H的问题,W、Z、H构成了访问权限三元组。

权限与角色相关联,用户通过称为适当角色的成员而得到这些角色的权限,极大的简化了权限的管理。

RBAC的组成

3个基础组成部分

- 用户

- 角色

- 权限

RBAC通过定义角色的权限,并且对用户授予某个角色来控制用户的权限,从而实现了用户和权限的逻辑分离,方便了权限的管理

1. user(用户):每个用户都有不同且唯一的ID,用来进行识别,并被授予不同的角色

2. role(角色):不同的角色具有不同的权限

3. jurisdiction(权限):访问权限

关系

- 用户--->角色的映射:用户和角色之间的映射关系

- 角色--->权限的映射:角色和权限之间的映射关系


例如:

用户的角色不同,看到的权限也就有所不同

RBAC的安全原则

- 最小权限原则:将角色配置成其完成所需的最小权限集合

- 责任分离原则:通过调用相互独立且互斥的角色来完成敏感任,例如:记账员和财务管理员共同参与过账操作

- 数据抽象原则:借助于抽象许可权这样的概念实现,例如:在账目管理活动中,可以使用信用,借方等抽象许可权,而不是使用典型的读、写、执行权限

RBAC的优缺点

优点:

1. 便于授权管理

2. 便于角色的划分

3. 便于赋予最小权限的原则

4. 便于职责的分离

5. 便于客体分类

缺点

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

RBAC的3种模型

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

在该模型中,用户和角色之间可以是多对多的关系,一个用户在不同场景下是可以有不同的角色。

2. RBAC1:基于RBAC0模型,引入了角色间的继承关系,角色上有了上下级的区别

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

你可能感兴趣的:(什么是RBAC?)