`

RBAC基本概念

 
阅读更多
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。
分享到:
评论

相关推荐

    RBAC相关概念解析

    这种模型有三个基本概念:用户(User)、角色(Role)和权限(Permission)。 2. **RBAC模型的组成部分** - **用户(User)**:在系统中进行操作的实体,可以是个人或者程序,它们需要通过角色来获取访问资源的...

    RBAC标准基本原理

    #### 二、RBAC的基本概念 1. **角色(Role)**:是系统中一种抽象的概念,代表了一组权限或操作的集合。例如,“管理员”、“财务人员”等都是常见的角色。 2. **用户(User)**:是指系统中的实际使用者,每个用户...

    thinkphp rbac架构代码

    首先,让我们了解RBAC的基本概念。在RBAC模型中,有三个核心概念: 1. **用户(User)**:系统中的实际操作者,如管理员、员工等。 2. **角色(Role)**:角色是一组权限的集合,用户通过扮演角色来获得相应的权限。 3....

    基于RBAC模型的通用权限管理系统的设计(数据模型)

    本文讨论了基于RBAC模型的通用权限管理系统的设计,主要阐述了RBAC模型的基本概念、RBAC模型的四个组件模型、核心对象模型设计和权限管理系统的设计思想。 RBAC模型的基本概念: 访问控制是针对越权使用资源的...

    RBAC权限控制代码

    首先,我们要理解RBAC的基本概念。RBAC模型基于角色进行权限分配,角色是一组预定义的权限集合,用户通过被赋予不同的角色来获得相应的操作权限。这种设计简化了权限管理,降低了权限分配的复杂性,同时也有助于满足...

    权限控制与管理的ppt

    #### 一、RBAC基本概念 **RBAC (Role-Based Access Control)** 是一种广泛应用于信息系统中的权限管理模型。它通过定义不同的角色来分配相应的权限,使得权限管理更加清晰且易于维护。在这个模型中,用户通过扮演...

    html版本rbac

    首先,让我们了解RBAC的基本概念。RBAC是一种权限模型,其中权限不是直接分配给用户的,而是通过用户所属的角色来间接赋予的。这种模型有三个主要组件:用户(User)、角色(Role)和权限(Permission)。用户可以被...

    RBAC 通用权限设计

    1. **基本模型RBAC0**(Core RBAC):这是RBAC的基础,定义了角色、用户和权限之间的关系。 2. **角色分级模型RBAC1**(Hierarchical RBAC):在此基础上加入了角色层次的概念,允许角色继承权限。 3. **角色限制...

    Yii Rbac 资源包

    9. **文档**:提供的文档将进一步解释 RBAC 的概念和使用方法,可能会涵盖如何设置 RBAC 组件,如何创建和管理角色、权限,以及如何在实际场景中应用 RBAC。 综上所述,这个“Yii Rbac 资源包”是一个全面的学习和...

    基于J2EE实现的RBAC系统(包含论文与源码)

    同时本文介绍了基于角色的访问控制理论RBAC 的基本概念,在此基础上设计并实现了一个权限管理系统。实践表明,该设计使业务逻辑与访问控制逻辑分开,解决了传统的权限管理系统中代码重复、分散、混乱的问题,具有...

    RBAC 权限练习

    本练习将深入探讨RBAC模型的基本原理、设计与实现,帮助你更好地理解和应用这一概念。 首先,RBAC模型的核心概念包括用户(User)、角色(Role)和权限(Permission)。用户是系统的实际操作者,角色是一组权限的...

    RBAC权限管理数据库和项目

    首先,"秦乐11.4(一周).doc"和"秦乐11.11(二周).doc"可能是课程资料或笔记,可能详细介绍了RBAC的概念和实现过程,包括角色的创建、用户的分配、权限的设置等。这些文档可能涵盖了RBAC的基础理论和实际操作步骤,是...

    rbac的权限模式是什么

    #### 二、RBAC的基本模型(RBAC0) RBAC0是RBAC模型的基础部分,其核心概念包括: - **用户(User)**:代表系统中的实际使用者。 - **角色(Role)**:一组权限的集合,用于表示用户在系统中扮演的角色。 - **目标...

    ThinkPHP(RBAC)权限管理系统_第25讲_RBAC认证配置信息

    首先,我们要了解RBAC的基本概念。在RBAC模型中,用户通过扮演不同的角色来获取相应的权限。角色是权限的集合,而权限则定义了用户可以执行的操作。这样,管理员只需要管理角色和角色的权限,用户加入或离开某个角色...

    RBAC权限体系设计UML

    RBAC权限体系设计中涉及的关键概念包括: 1. **Who**:指的是权限的所有者或主体,可以是用户(User)、角色(Role)、组(Group)等。 2. **What**:即权限针对的对象或资源(Resource)。资源可以是系统中的各种实体,...

Global site tag (gtag.js) - Google Analytics