信息安全-权限管理-RBAC:百科

ylbtech-信息安全-权限管理-RBAC:百科

基于角色的权限访问控制(Role-Based Access Control)做为传统访问控制(自主访问,强制访问)的有前景的代替受到普遍的关注。在RBAC中,权限与角色相关联,用户经过成为适当角色的成员而获得这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各类工做而创造,用户则依据它的责任和资格来被指派相应的角色,用户能够很容易地从一个角色被指派到另外一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据须要而从某角色中回收。角色与角色的关系能够创建起来以囊括更普遍的客观状况。程序员

1.返回顶部
一、简介
RBAC支持三个著名的安全原则: 最小权限原则,责任分离原则和数据抽象原则
(1)最小权限原则之因此被RBAC所支持,是由于RBAC能够将其角色配置成其完成任务所须要的最小的权限集。
(2)责任分离原则能够经过调用相互独立互斥的角色来共同完成敏感的任务而体现,好比要求一个计账员和财务管理员共参与同一过账。
(3)数据抽象能够经过权限的抽象来体现,如财务操做用借款、存款等抽象权限,而不用操做系统提供的典型的读、写、执行权限。然而这些原则必须经过RBAC各部件的详细配置才能得以体现。
RBAC有许多部件(BUCU),这使得RBAC的管理多面化。尤为是,咱们要分割这些问题来讨论:用户与角色的指派;角色与权限的指派;为定义角色的继承进行的角色与角色的指派。这些活动都要求把用户和权限联系起来。然而在不少状况下它们最好由不一样的管理员或管理角色来作。对角色指派权限是典型的应用管理者的职责。银行应用中,把借款、存款操做权限指派给出纳角色,把批准贷款操做权限指派给经理角色。而将具体人员指派给相应的出纳角色和管理者角色是人事管理的范畴。角色与角色的指派包含用户与角色的指派、角色与权限的指派的一些特色。更通常来讲,角色与角色的关系体现了更普遍的策略。
二、
2.返回顶部
一、
基本概念
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。
二、
3.返回顶部
一、
模型

RBAC96模型

一、基本模型RBAC0模型
定义:RBAC0模型由如下描述肯定:
U、R、P、S分别表示 用户集合、角色集合、许可权集合和会话集合
PA P×R表示许可权与角色之间多对多的指派关系。
UA U×R表示用户与角色之间多对多的指派关系。
用户:S→U每一个会话si到单个用户user(si)的映射函数(常量表明会话的声明周期)。
角色:S→R每一个会话si到角色子集roles(si) {r|user(si, r')∈UA}(能随时间改变)的映射函数,会话si有许可权Ur∈roles(si){p|(p,r')∈PA}。
在使用RBAC0模型时,应该要求每一个许可权和每一个用户至少应该被分配给一个角色。两个角色被分配的许可权彻底同样是可能的,但还是两个彻底独立的角色,用户也有相似状况。角色能够适当的被看作是一种语义结构,是访问控制策略形式化的基础。
RBAC0把许可权处理为非解释符号,由于其精确含义只能由实现肯定且与系统有关。RBAC0中的许可权只能应用于数据和资源类客体,但不能应用于模型自己的组件。修改集合U、R、P和关系PA和UA的权限称为管理权限,后面将介绍RBAC的管理模型。所以,在RBAC0中假定只有安全管理员才能修改这些组件。
会话是由单个用户控制的,在模型中,用户能够建立会话,并有选择的激活用户角色的某些子集。在一个会话中的角色的激活是由用户来决断的,会话的终止也是由用户初始化的。RBAC0不容许由一个会话去建立另外一个会话,会话只能由用户建立。
二、角色分级模型RBAC1
定义:RBAC1由如下内容肯定
U、R、P、S分别表示用户集合、角色集合、许可权集合和会话集合。
PA P×R表示许可权与角色之间多对多的指派关系。
UA U×R表示用户与角色之间多对多的指派关系。
RH R×R是对R的偏序关系,称为角色等级或角色支配关系,也可用≥符号表示。
用户:S→U每一个会话si到单个用户user(si)的映射函数(常量表明会话的声明周期)。
角色:S→R每一个会话si到角色子集roles(si) {r|(r'≥r)[user(si,r')∈UA]}(能随时间改变)的映射函数,会话si有许可权Ur∈roles(si){p|(r''≤r)[(p,r'')∈PA]}。
三、限制模型RBAC2
RBAC2模型是在RBAC0模型增长限制后造成的,它与RBAC1并不兼容。RBAC2定义以下:
定义:除了在RBAC0中增长了一些限制因素外,RBAC2未加改变的来自于RBAC0,这些限制是用于肯定RBAC0中各个组件的值是不是可接受的,只有那些可接受的值才是容许的。
RBAC2中引入的限制能够施加到RBAC0模型中的全部关系和组件上。RBAC2中的一个基本限制是互斥角色的限制,互斥角色是指各自权限能够互相制约的两个角色。对于这类角色一个用户在某一次活动中只能被分配其中的一个角色,不能同时得到两个角色的使用权。
例如,在审计活动中,一个角色不能同时被指派给会计角色和审计员角色。又如,在公司中,经理和副经理的角色也是互斥的,合同或支票只能由经理签字,不能由副经理签字。在为公司创建的RBAC2模型中,一个用户不能同时兼得经理和副经理两个角色。模型汇总的互斥限制能够支持权责分离原则的实现。
更通常化而言,互斥限制能够控制在不一样的角色组合中用户的成员关系是不是可接受的。例如,一个用户能够既是项目A的程序员,也能够是项目B的测试员和项目C的验收员,但他不能同时成为同一个项目中的这3个角色。RBAC2模型能够对这种状况进行限制。
另外一个用户指派限制的例子是一个角色限制其最大成员数,这被称为角色的基数限制。例如,一个单位的最高领导只能为1人,中层干部的数量也是有限的,一旦分配给这些角色的用户数超过了角色基数的限制,就再也不接受新配给的用户了。
限制角色的最小基数实现起来有些困难。例如,若是规定占用某个角色的最小用户数,问题是系统如何在任什么时候刻都能知道这些占用者中的某我的没有消失,若是消失的话,系统又应该如何去作。
在为用户指派某个角色A时,在有的状况下要求该用户必须是角色B的一个成员,B角色成为角色A的先决角色。先决角色(PrerequisiteRoles)的概念来自于能力和适应性。对先决绝对的限制成为先决限制。一个通俗的例子是,一个数学副教授应该从数学讲师中提拔,讲师是任副教授的先决角色。但在实际系统中,不兼容角色之间的先决限制的状况也会发生。
在图ap08-03中,能够限制只有本项目的成员才有资格担任程序员的角色,一般在一个系统中,先决角色比新指派的角色的级别要低一些。但有的状况下,却要求只有当用户不是某个特殊角色时,才能担任另外一个角色A。如,须要执行回避策略时须要这样作,例如,本课题组成员不该当是本项目成果鉴定委员会的成员。这类限制也能够推广到许可权方面。
因为用户与角色的做用会与会话联系在一块儿,所以对会话也能够施加限制。例如,能够容许一个用户被指派给两个角色,但不容许在同一时间内把该用户在两个角色中都激活。另外,还能够限制一个用户在同一时间内能够激活的会话的数量,相应的,对该用户所激活的会话中所分配许可权的数量也能够施加限制。
前面提到的继承概念也能够视为一种限制。被分配给低级别角色的权限,也必须分配给该角色的全部上级角色。或等价的,一个指派给较高级别的角色的用户必须指派给该角色的全部下级角色。所以从某种角度上讲,RBAC1模型是冗余的,它被包含在RBAC2中。但RBAC1模型比较简洁,用继承代替限制可以使概念更清晰。
实现时能够用函数来实现限制,当为用户指定角色或为角色分配权限时就调用这些函数进行检查,根据函数返回的结果决定分配是否知足限制的要求,一般只对那些可被有效检查和那些惯例性的一些简单限制给与实现,由于这些限制能够保持较长的时间。
模型中的限制机制的有效性创建在每一个用户只有惟一标识符的基础上,若是一个实际系统支持用户拥有多标识符,限制将会失效。一样,若是同一个操做能够有两个以上的许可权来比准,那么,RBAC系统也没法实施增强的基本限制和责任分离和限制。所以要求用户与其标识符,许可与对应的操做之间一一对应。
四、统一模型RBAC3
RBAC3把RBAC1和RBAC2组合在一块儿,提供角色的分级和继承的能力。但把这两种概念组合在一块儿也引发一些新问题。
限制也能够应用于角色等级自己,因为角色间的等级关系知足偏序关系,这种限制对模型而言是本质性的,可能会影响这种偏序关系。例如,附加的限制可能会限制一个给定角色的应有的下级角色的数量。
两个或多个角色由可能被限制成没有公共的上级角色或下级角色。这些类型的限制在概念角色等级的权力已经被分散化的状况下是有用的,可是安全主管却但愿对全部容许这些改变的方法加以限制。
在限制和角色的等级之间也会产生敏感的相互影响。在图ap08-03的环境中,一个项目成员不容许同时担任程序员与测试员的角色,但项目管理员所处的位置显然是违反了该限制。在某种状况i下由高等级的角色违反这种限制是可接受的,但在其余状况下又不容许这种违反现象发生。
从严格性的角度来说,模型的规则不该该是一些状况下不容许而在另外一状况下是容许的。相似的状况也会发生在对基数的限制上。假定限制一个用户至多能分配给一个角色,那么对图中的测试员的一个指派可以违背这种限制吗?换句话说,基数限制是否是只能用于直接成员,是否也能应用于继承成员上?
私有角色的概念能够说明这些限制是有用的。一样在图ap08-03的环境中,能够把测试员',程序员'和项目管理员3个角色说明为互斥的,它们处于同一等级,没有共同的上级角色,因此管理员角色没有违反互斥限制。一般私有角色和其余角色之间没有公共上级角色,由于它们是这个等级的最大元素,因此私有角色之间互斥关系能够无冲突的定义。
诸私有角色之间的相同部分能够被说明为具备0成员的最大技术限制。根据这种方法,测试员必须被指派给测试员'这个角色,而测试员角色就做为与管理员角色共享许可权的一种工具。
 

ARBAC97模型

ARBAC97模型是基于角色的角色管理模型,包括三个部分:
URA97:用户-角色指派。该组件涉及用户-指派关系UA的管理,该关系把用户与角色关联在一块儿。对该关系的修改权由管理角色控制,这样,管理角色中的成员有权管理正规角色中的成员关系。把一个用户指定为管理角色是在URA97之外完成的,并假定是由安全员完成的。
PRA97:许可权-角色指派。该组件涉及角色-许可权的指派与撤销。从角色观点来看,用户和许可权有相似的特色,它们都是由角色联系在一块儿的实在实体。所以,能够把PRA97看作是URA97的对偶组件。
RRA97: 角色-角色指派。为了便于对角色的管理,对角色又进行了分类。该组件涉及3类角色,它们是:
  1. 能力(Abilities)角色——进以许可权和其余能力作成成员的角色
  2. 组(Groups)角色——仅以用户和其余组为成员的一类角色
  3. UP-角色——表示用户与许可权的角色,这类角色对其成员没有限制,成员可使用户、角色、许可权、能力、组或其余UP-角色
区别这三类模型的主要缘由是能够应用不一样的管理模型去创建不一样类型角色之间的关系。区分的动因首先是对能力的考虑,能力是许可权的集合,能够把该集合中全部许可权做为一个单位指派给一个角色。相似的,组是用户的集合,能够把该集合中全部许可权做为一个单位指派给一个角色。组和能力角色都彷佛能够划分等级的。
在一个UP-角色中,一个能力是不是其的一个成员是由UP-角色是否支配该能力决定的,若是支配就是,不然就不是。相反的,若是一个UP-角色被一个组角色支配,则这个组就是该UP-角色的成员。
对ARBAC97管理模型的研究还在继续之中,对能力-指派与组-指派的形式化已基本完成,对UP-角色概念的研究成果还未形式化。 [2] 
 

DRBAC

DRBAC是动态结盟环境下的分布式RBAC模型。
DRBAC区别于之前的 信任管理和RBAC方法就在于它支持3个特性:
1. 第三方指派:一个实体若是被受权了指派分配后,就能够指派它的名字空间之外的角色
2 .数字属性:经过分配处理与角色有关的数值的机制来调整访问权限
3. 指派监控:用pub/sub结构对创建的信任关系进行持续监控来跟踪可被取消的指派的状态
DRBAC是由在结盟环境下对资源的访问控制这个问题引出的。“结盟环境”能够是军事上几个国家一块儿工做达到一个共同的目标,或者商业上几个公司合伙。 结盟环境定义的特色是存在多个组织或多个实体没有共同的可信的受权中心。在这种状况下,实体在保护它们各自的资源的同时还必须协做来共享对结盟来讲必要的受保护资源的部分。Internet上网络服务的增加使这样的需求很广泛。
DRBAC结合了RBAC和信任管理系统的优势,是既管理灵活又可分散地,可扩展的实现的系统。DRBAC表示依据角色的受控行为,角色在一个实体的信任域内定义而且能够将这个角色传递地指派给不一样信任域内的其余角色。 DRBAC利用PKI来鉴别全部与信任敏感操做有关的实体以及确认指派证书。从角色到受权的名字空间的映射避免了确认额外的策略根源的须要
二、
4.返回顶部
 
5.返回顶部
一、
二、
 
6.返回顶部
 
warn 做者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归做者和博客园共有,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接,不然保留追究法律责任的权利。
相关文章
相关标签/搜索