您的位置:首页 > 其它

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