权限管理介绍,在哪里找,允许好还是禁止好?

营销圈公众号引导关注

权限管理模型

一、 基于角色的权限访问控制(Role-Based Access Control)

最小权限原则

责任分离原则

数据抽象原则。

二、 种类

RBAC96模型

1、基本模型RBAC0模型

定义:RBAC0模型由以下描述确定:

U、R、P、S分别表示用户集合、角色集合、许可权集合和会话集合。

PA P×R表示许可权与角色之间多对多的指派关系。

UA U×R表示用户与角色之间多对多的指派关系。

用户:S→U每个会话si到单个用户user(si)的映射函数(常量代表会话的声明周期)。

角色:S→2每个会话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不允许由一个会话去创建另一个会话,会话只能由用户创建。

2、角色分级模型RBAC1

定义:RBAC1由以下内容确定

U、R、P、S分别表示用户集合、角色集合、许可权集合和会话集合。

PA P×R表示许可权与角色之间多对多的指派关系。

UA U×R表示用户与角色之间多对多的指派关系。

RH R×R是对R的偏序关系,称为角色等级或角色支配关系,也可用≥符号表示。

用户:S→U每个会话si到单个用户user(si)的映射函数(常量代表会话的声明周期)。

角色:S→2每个会话si到角色子集roles(si) {r|(r’≥r)[user(si,r’)∈UA]}(能随时间改变)的映射函数,会话si有许可权Ur∈roles(si){p|(r”≤r)[(p,r”)∈PA]}。

3、限制模型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系统也无法实施加强的基本限制和责任分离和限制。因此要求用户与其标识符,许可与对应的操作之间一一对应。

4、统一模型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来鉴别所有与信任敏感操作有关的实体以及确认指派证书。从角色到授权的名字空间的映射避免了确认额外的策略根源的需要。

三、 分析

cms系统所使用过的是RBAC0权限管理控制模型,原则上涉及系统权限的操作只能由超级管理员来进行,并且系统中一定需要一个超级管理员。rbac0模型的引入解决了权限和用户分离的问题,其实用户没有拥有权限,只有用户被赋予一个角色才有了这个角色所拥有的权限。通常情况下,rbac0就可以解决权限管理的模型,是最通用的。 在项目中开发中我们正是使用这种最简单,但是却最通用的权限模型。这里想提一下我们建数据库表,我们用了五张表来实现这个权限模型,将其中的两个多对多分解成了两对多对一来完成,这样更有利于我们维护表,感觉也更加简单,更容易控制。

下图为rbac1模型,在rbac0模型上实现了继承,rbac0也可以实现但是会有数据冗余。

RBAC2,也是基于RBAC0模型的基础上,进行了角色的访问控制。a,RBAC2中的一个基本限制时互斥角色的限制,互斥角色是指各自权限互相制约的两个角色。对于这类角色一个用户在某一次活动中只能被分配其中的一个角色,不能同时获得两个角色的使用权。

RBAC3是最全面也是最复杂的模型 RBAC3 = RBAC1+RBAC2.

好了,这篇文章的内容营销圈就和大家分享到这里,如果大家网络推广引流创业感兴趣,可以添加微信:Sum8338 备注:营销圈引流学习,我拉你进直播课程学习群,每周135晚上都是有实战干货的推广引流技术课程免费分享!

好了,这篇文章的内容营销圈就和大家分享到这里,如果大家对网络推广引流和网络创业项目感兴趣,可以添加微信:Sum8338 备注:营销圈引流学习,我拉你进直播课程学习群,每周135晚上都是有实战的推广引流技术和网络创业项目课程分享,当然是免费学!

版权声明:本站部分文章来源互联网用户自发投稿,主要目的在于分享信息,版权归原作者所有,不承担相关法律责任。如有侵权请联系我们反馈邮箱yingxiaoo@foxmail.com,我们将在7个工作日内进行处理,如若转载,请注明本文地址:https://www.yingxiaoo.com/193092.html