RBAC认为权限授权实际上是Who、What、How的问题。在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What(Which)进行How的操作”。
Who:权限的拥用者或主体(如Principal、User、Group、Role、Actor等等) What:权限针对的对象或资源(Resource、Class)。
How:具体的权限(Privilege,正向授权与负向授权)。
Operator:操作。表明对What的How操作。也就是Privilege+Resource
Role:角色,一定数量的权限的集合。权限分配的单位与载体,目的是隔离User与Privilege的逻辑关系.
Group:用户组,权限分配的单位与载体。权限不考虑分配给特定的用户而给组。组可以包括组(以实现权限的继承),也可以包含用户,组内用户继承组的权限。User与Group是多对多的关系。Group可以层次化,以满足不同层级权限控制的要求。
RBAC的关注点在于Role和User, Permission的关系。称为User assignment(UA)和Permission assignment(PA).关系的左右两边都是Many-to-Many关系。就是user可以有多个role,role可以包括多个user。
凡是用过RDBMS都知道,n:m 的关系需要一个中间表来保存两个表的关系。这UA和PA就相当于中间表。事实上,整个RBAC都是基于关系模型。
Session在RBAC中是比较隐晦的一个元素。标准上说:每个Session是一个映射,一个用户到多个role的映射。当一个用户激活他所有角色的一个子集的时候,建立一个session。每个Session和单个的user关联,并且每个User可以关联到一或多个Session.
在RBAC系统中,User实际上是在扮演角色(Role),可以用Actor来取代User,这个想法来自于Business Modeling With UML一书Actor-Role模式。考虑到多人可以有相同权限,RBAC引入了Group的概念。Group同样也看作是Actor。而User的概念就具象到一个人。
这里的Group和GBAC(Group-Based Access Control)中的Group(组)不同。GBAC多用于操作系统中。其中的Group直接和权限相关联,实际上RBAC也借鉴了一些GBAC的概念。
Group和User都和组织机构有关,但不是组织机构。二者在概念上是不同的。组织机构是物理存在的公司结构的抽象模型,包括部门,人,职位等等,而权限模型是对抽象概念描述。组织结构一般用Martin fowler的Party或责任模式来建模。
Party模式中的Person和User的关系,是每个Person可以对应到一个User,但可能不是所有的User都有对应的Person。Party中的部门Department或组织Organization,都可以对应到Group。反之Group未必对应一个实际的机构。例如,可以有副经理这个Group,这是多人有相同职责。
引入Group这个概念,除了用来解决多人相同角色问题外,还用以解决组织机构的另一种授权问题:例如,A部门的新闻我希望所有的A部门的人都能看。有了这样一个A部门对应的Group,就可直接授权给这个Group。
分享到:
相关推荐
这种模型有三个基本概念:用户(User)、角色(Role)和权限(Permission)。 2. **RBAC模型的组成部分** - **用户(User)**:在系统中进行操作的实体,可以是个人或者程序,它们需要通过角色来获取访问资源的...
#### 二、RBAC的基本概念 1. **角色(Role)**:是系统中一种抽象的概念,代表了一组权限或操作的集合。例如,“管理员”、“财务人员”等都是常见的角色。 2. **用户(User)**:是指系统中的实际使用者,每个用户...
RBAC的基本概念始于早期的多用户计算机系统,而RBAC的兴趣复兴是由于对RBAC通用的、可定制的设施的需求,以及对管理RBAC本身的需求所驱动的。 随着对RBAC的兴趣复苏,RBAC设施的范围从简单到复杂不等。本文描述了一...
首先,让我们了解RBAC的基本概念。在RBAC模型中,有三个核心概念: 1. **用户(User)**:系统中的实际操作者,如管理员、员工等。 2. **角色(Role)**:角色是一组权限的集合,用户通过扮演角色来获得相应的权限。 3....
本文讨论了基于RBAC模型的通用权限管理系统的设计,主要阐述了RBAC模型的基本概念、RBAC模型的四个组件模型、核心对象模型设计和权限管理系统的设计思想。 RBAC模型的基本概念: 访问控制是针对越权使用资源的...
首先,我们要理解RBAC的基本概念。RBAC模型基于角色进行权限分配,角色是一组预定义的权限集合,用户通过被赋予不同的角色来获得相应的操作权限。这种设计简化了权限管理,降低了权限分配的复杂性,同时也有助于满足...
#### 一、RBAC基本概念 **RBAC (Role-Based Access Control)** 是一种广泛应用于信息系统中的权限管理模型。它通过定义不同的角色来分配相应的权限,使得权限管理更加清晰且易于维护。在这个模型中,用户通过扮演...
首先,让我们了解RBAC的基本概念。RBAC是一种权限模型,其中权限不是直接分配给用户的,而是通过用户所属的角色来间接赋予的。这种模型有三个主要组件:用户(User)、角色(Role)和权限(Permission)。用户可以被...
9. **文档**:提供的文档将进一步解释 RBAC 的概念和使用方法,可能会涵盖如何设置 RBAC 组件,如何创建和管理角色、权限,以及如何在实际场景中应用 RBAC。 综上所述,这个“Yii Rbac 资源包”是一个全面的学习和...
同时本文介绍了基于角色的访问控制理论RBAC 的基本概念,在此基础上设计并实现了一个权限管理系统。实践表明,该设计使业务逻辑与访问控制逻辑分开,解决了传统的权限管理系统中代码重复、分散、混乱的问题,具有...
本练习将深入探讨RBAC模型的基本原理、设计与实现,帮助你更好地理解和应用这一概念。 首先,RBAC模型的核心概念包括用户(User)、角色(Role)和权限(Permission)。用户是系统的实际操作者,角色是一组权限的...
首先,"秦乐11.4(一周).doc"和"秦乐11.11(二周).doc"可能是课程资料或笔记,可能详细介绍了RBAC的概念和实现过程,包括角色的创建、用户的分配、权限的设置等。这些文档可能涵盖了RBAC的基础理论和实际操作步骤,是...
#### 二、RBAC的基本模型(RBAC0) RBAC0是RBAC模型的基础部分,其核心概念包括: - **用户(User)**:代表系统中的实际使用者。 - **角色(Role)**:一组权限的集合,用于表示用户在系统中扮演的角色。 - **目标...
首先,我们要了解RBAC的基本概念。在RBAC模型中,用户通过扮演不同的角色来获取相应的权限。角色是权限的集合,而权限则定义了用户可以执行的操作。这样,管理员只需要管理角色和角色的权限,用户加入或离开某个角色...
RBAC权限体系设计中涉及的关键概念包括: 1. **Who**:指的是权限的所有者或主体,可以是用户(User)、角色(Role)、组(Group)等。 2. **What**:即权限针对的对象或资源(Resource)。资源可以是系统中的各种实体,...