RBAC权限设计模型---模型简介
2018-01-08 17:02
309 查看
0.简介
RBAC是Role-Based-Access-Control的缩写,即基于角色的访问控制。
1.RBAC0模型
RBAC0模型如上图所示,包括用户(User),角色(Role),会话(Session),权限(Permission)这些抽象元素。这些抽象元素之间存在如下关系:
一、用户(User)和角色(Role)为多对多关系,一个用户可以对应多个角色,一个角色也可以对应多个用户。举个例子,一个财务管理系统可能会有管理员,财务会计,财务主管,公司职工等众多角色,一个用户可以同时对应多个角色,比如既是管理员又是财务主管;当然一个角色也可以同时对应多个用户,比如该财务管理系统中存在多个管理员,管理员这个角色就对应了多个用户。
二、用户(User)和会话(Session)是一对一关系,一个用户对应一次会话,一次会话对应一个用户。这在任何系统中都是如此,为了保证会话的唯一性。
三、会话(Session)和角色(Role)是多对多关系,一个会话对应多个角色,多个角色对应一个会话。
四、角色(Role)和权限(Permission)是多对多关系,一个角色对应多个权限,一个权限对应多个角色。同样以财务管理系统为例,财务管理系统中可能存在增删改查,结算,转账等权限,管理员可能同时拥有这些权限,而其他角色如财务主管可能只有查,结算,转账等权限,财务会计的权限可能更低。所以,角色和权限是多对多关系。
RBAC0模型是RBAC96模型族的基础,RBAC1、RBAC2、RBAC3都由此发展而来。RBAC0提供了权限设计的基本能力,它解决了who,what,how的问题,即【who是否可以对what进行how的访问操作(Operator)】。RBAC的鉴权也是对这个表达式求值的过程。一下是对RBAC0的简单分析:
优点
一、隔离了用户(User)和权限(Permission),用户的私有特性和权限的私有特性完全无关,相较于用户和权限的变动频率,角色本身的修改更少,因而可以减少处理变化的成本。
二、结构简单易于实现
缺点
一、角色(Role)和权限(Permission)之间都是平行关系,而实际业务场景中,二者都有层级关系。
二、新的用户(User)需要分配所需的所有角色(Role),新的权限需要分配给需要它的所有角色(Role)。
2.RBAC1模型
RBAC0是整个RBAC模型的核心,简单有效,但也存在它的局限性,比如角色(Role)和权限(Permission)的平级关系,业务场景有限,新用户或者新角色的添加都会有较大改动,扩展性较差。RBAC1在RBAC0的基础上引入了角色权限树(Role
Hierarchy),角色权限树是对现实中的组织结构和职责权限的展现,它能让RBAC体系更具扩展性和维护性。
RBAC是Role-Based-Access-Control的缩写,即基于角色的访问控制。
1.RBAC0模型
RBAC0模型如上图所示,包括用户(User),角色(Role),会话(Session),权限(Permission)这些抽象元素。这些抽象元素之间存在如下关系:
一、用户(User)和角色(Role)为多对多关系,一个用户可以对应多个角色,一个角色也可以对应多个用户。举个例子,一个财务管理系统可能会有管理员,财务会计,财务主管,公司职工等众多角色,一个用户可以同时对应多个角色,比如既是管理员又是财务主管;当然一个角色也可以同时对应多个用户,比如该财务管理系统中存在多个管理员,管理员这个角色就对应了多个用户。
二、用户(User)和会话(Session)是一对一关系,一个用户对应一次会话,一次会话对应一个用户。这在任何系统中都是如此,为了保证会话的唯一性。
三、会话(Session)和角色(Role)是多对多关系,一个会话对应多个角色,多个角色对应一个会话。
四、角色(Role)和权限(Permission)是多对多关系,一个角色对应多个权限,一个权限对应多个角色。同样以财务管理系统为例,财务管理系统中可能存在增删改查,结算,转账等权限,管理员可能同时拥有这些权限,而其他角色如财务主管可能只有查,结算,转账等权限,财务会计的权限可能更低。所以,角色和权限是多对多关系。
RBAC0模型是RBAC96模型族的基础,RBAC1、RBAC2、RBAC3都由此发展而来。RBAC0提供了权限设计的基本能力,它解决了who,what,how的问题,即【who是否可以对what进行how的访问操作(Operator)】。RBAC的鉴权也是对这个表达式求值的过程。一下是对RBAC0的简单分析:
优点
一、隔离了用户(User)和权限(Permission),用户的私有特性和权限的私有特性完全无关,相较于用户和权限的变动频率,角色本身的修改更少,因而可以减少处理变化的成本。
二、结构简单易于实现
缺点
一、角色(Role)和权限(Permission)之间都是平行关系,而实际业务场景中,二者都有层级关系。
二、新的用户(User)需要分配所需的所有角色(Role),新的权限需要分配给需要它的所有角色(Role)。
2.RBAC1模型
RBAC0是整个RBAC模型的核心,简单有效,但也存在它的局限性,比如角色(Role)和权限(Permission)的平级关系,业务场景有限,新用户或者新角色的添加都会有较大改动,扩展性较差。RBAC1在RBAC0的基础上引入了角色权限树(Role
Hierarchy),角色权限树是对现实中的组织结构和职责权限的展现,它能让RBAC体系更具扩展性和维护性。
相关文章推荐
- 我设计的一个基于RBAC模型的通用权限管理系统的域模型类图
- 基于RBAC的权限设计模型
- 基于RBAC的权限设计模型[转]
- 基于RBAC模型的通用权限管理系统的设计(数据模型)的扩展
- 基于RBAC模型的通用权限管理的设计
- 基于RBAC模型的通用权限管理系统的设计(数据模型)的扩展
- 后台设计的基石:用户权限管理(RBAC)及工作流(workflow)模型
- 基于RBAC的权限设计模型
- RBAC模型的权限设计
- 用户权限设计(四)——基于RBAC模型的通用权限管理系统的设计(数据模型)的扩展
- 基于RBAC的权限设计模型
- RBAC角色权限模型设计
- 基于RBAC的权限设计模型
- 基于RBAC模型的权限管理系统的设计和实现
- 读书札记:基于RBAC的权限设计模型-- 权限设计
- RBAC的权限设计模型
- 基于RBAC的权限设计模型:
- 读书札记:基于RBAC的权限设计模型--RBAC介绍
- 基于RBAC模型的通用权限管理系统的设计(数据模型)的扩展
- 基于RBAC模型的权限管理系统的设计和实现