(管理科学与工程专业论文)基于xacml的访问控制技术的应用研究.pdf_第1页
(管理科学与工程专业论文)基于xacml的访问控制技术的应用研究.pdf_第2页
(管理科学与工程专业论文)基于xacml的访问控制技术的应用研究.pdf_第3页
(管理科学与工程专业论文)基于xacml的访问控制技术的应用研究.pdf_第4页
(管理科学与工程专业论文)基于xacml的访问控制技术的应用研究.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

(管理科学与工程专业论文)基于xacml的访问控制技术的应用研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着企业信息化程度的提高,信息安全成为企业必须重视的问题。企业级大 型应用软件系统的权限管理功能不完善将极大威胁企业的信息安全。访问控制是 权限管理的重要组成部分,它在信息系统中用来确保只有授权人员才能访问敏感 信息。对访问控制技术和系统实现进行研究具有非常重要的理论和实用价值。 x a c m l ( e x t e n s i b l e a c c e s sc o n t r o lm a r k u pl a n g u a g e ) ,即可扩展的访问控制标 记语言是o a s i s ( o r g a n i z a t i o nf o rt h ea d v a n c e m e n to fs t r u c t u r e d i n f o r m a t i o n s _ t a n d 缸d 幻结构化信息标准推动组织推出的重要的标准。与以往的策略描述语 言相比,x m l 基于x m l 语言,既具有能够同时被人和计算机识别的特点也有 访问目标、主体( 访问者) 、操作以及规则等其他策略描述语言相同的要素。本文 从x a c m l 的基本概念和语言流出发,研究并分析x a c m l 的数据流模型、策略 语言模型和应用领域。在理论研究的基础上提出了基于) 认c m l 的访问控制模型, 并且利用j a v a 对模型进行了实现。由于采用x a c m l 语言,该模型具有标准性。 该模型采用该模型利用策略文件存放访问控制信息,具有良好的通用性和可扩展 性,并支持分布式应用。 笔者利用该模型对y a l e 大学的开源单点登录系统c a s ( c e n t r a l a u t h e n t i c a t i o ns e r v i c e ) 进行相应扩展,通过访问控制策略来实现用户的统一认证。 系统管理员只需维护策略就可实现访问控制的管理,减轻了系统维护的难度。由 于认证模块的通用性,使得c a s 的可移植性和可扩展性的到显著提高。本文的研 究对访问控制和单点登录领域提供有力帮助。 关键词:访问控制;x a c m l ;c a s ;单点登录 t h er e s e a r c ha n da p p l i c a t i o no f a c c e s sc o n t r o lt e c h n o l o g yb a s e d o nx a c l 江l a b s t r a c t i n f o r m a t i o ns e c u r i t yh a sb e c o m em o r ea n dm o r ei m p o r t a n ti nm o d e me n t e r p r i s e s - t h em o s ti m p o r t a n tt h i n gt h a ta s s u r e st h ei n f o r m a t i o ns e c u r ei st ok e e pt h eu n a u t h o r i z e d u s e r sf r o me n t e r p r i s e l e v e la p p l i c a t i o ns y s t e m s t h i sj o bi sd o n eb ya c c e s sc o n t r o l m e c h a n i s m t h er e s e a r c ho na c c e s sc o n t r o lm o d e l sa n ds o f t w a r ei m p l e m e n t a t i o ni so f g r e a ta c a d e m i ca n dp r a c t i c a ls i g n i f i c a n c e x a c m l ( e x t e n s i b l ea c c e s sc o n t r o lm a r k u pl a n g u a g e ) i s a l lx m l b a s e d l a n g u a g ef o ra c c e s sc o n t r o lt h a th a sb e e ns t a n d a r d i z e di no a s i s ( o r g a n i z a t i o nf o rt h e a d v a n c e m e n to fs t r u c t u r e di n f o r m a t i o ns t a n d a r d s ) c o m p a r e dw i t ht h ep r e v i o u sp o l i c y d e s c r i b e dl a n g u a g e ,x a c m ll a n g u a g eb a s e do nx m l ,x a c m lh a sa l s ob e e na b l et o i d e n t i f yt h ec h a r a c t e r i s t i c so f t h ec o m p u t e r o f c o u r s e ,t h e r ea r eo t h e rp o l i c i e sd e s c r i b e d x a c m ll a n g u a g es i m i l a re l e m e n t s ,v i s h e do b j e c t i v e s ,s u b j e c t s ( v i s i t o r s ) ,a c t i o na n d r u l e s i na d d i t i o nt op r o v i d i n gp o l i c yd e s c r i b e dg r a m m a r , x a c m la l s og i v e na s t a n d a r d i z e da c c e s sc o n t r o ld e c i s i o n - m a k i n gm o d e l s t h i st h e s i si n t r o d u c e sx a c m l a t f i r s t ,m a i n l yd i s c u s st h eb a s i cc o n c e p t s ,t h el a n g u a g ed a t af l o wm o d e la n dt h el a n g u a g e m o d e l t h e nt h ex a c m la c c e s sc o n t r o lm o d e li sg i v e na n dr e a l i z e db yj a v al a n g u a g e t h em o d e lh a v eg o o de x p a n s i b i l i t ys i n c ei tb a s e do nt h ep o s c i e sf i l e c a s ( c e n t r a la u t h e n t i c a t i o ns e r v i c e ) i sa no p e ns o u r c ep r o j e c t ,i tr e a l i z e dt h e s i n g l es i g no n ,b u tt h ea c c e s sm o d e li sn o tg i v e nb yt h ed e v e l o p e r s ,i tm u s tb ed o n eb y t h eu s e r s w eu s et h ex a c m la c c e s sm o d e lt oa c c o m p l i s ht h ea c c e s sm o d e la n di tc a n w o r k sw e l lw i mt h ep r o j e c t a tt h ee n do ft h ep a p e rw eg i v es o m et e s to ft h ep r o j e c t t h r o u g ht h i sr e s e a r c h ,ih o p ei tc a ng i v e sh e l pt ot h er e s e a r c h e r so ft h ef i l e do fa c c e s s c o n t r o la n ds i n g l es i g no n k e yw o r d s :a c c e s sc o n t r o l ;x a c m l ;c a s ;s i n g l es i g no n 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成博:k 硕士学位论文! 基王丛丛l 的边回控剑拉苤的廛且班宜:。 除论 文中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在 文中以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经 公开发表或未公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名:多专才 护6 年毒月f 日 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法”,同意大连海事大学保留并向国家有关部门或机构送交学位论 文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本 学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫 描等复制手段保存和汇编学位论文。 保密口,在 年解密后适用本授权书。 本学位论文属于:保密口 不保密匹( 请在以上方框内打“4 ,) 论文作者虢瑚导师虢修纺 日期:饧衫年岁月6 日 第1 章绪论 1 1 研究背景 经济规模的不断增长促使软件开发商们开发更为通用的软件系统,使得软件 能够在更广泛的领域得以使用。毫无疑问,访问控制是客户所关心的重要内容之 一,各种软件都会以专有的方式进行访问控制。但是,不同的软件之间,其访问 控制模块并不具备通用性。随着各种应用软件系统的建设,软件系统复杂度不断 增加。如何确保各种软件系统安全访问策略的通用性和一致性成为难以解决的棘 手问题。 在各种软件系统协同配合的应用环境下,各种安全策略需要由不同的部门来 制订,例如人力资源部门负责制订有关人力资源系统的安全访问策略,而财务部 门负责制订薪资系统的安全访问策略等等。如何在分布式环境下以更符合企业运 行机制的方式确保安全策略的一致和有效是我们研究x a c m l 的出发点之一。 访问控制技术作为计算机系统安全的一个主要的研究方向,已经历了多年的 发展。访问控制的关键是采用何种访问控制策略,即如何向主体授权。主要有三 种不同类型的访问控制策略:强制访问控制( m a n d a t o r y a c c e s sc o n t r o l ,m a c ) 、 自主访问控制( d i s c r e t i o n a r ya c c e s sc o n t r o l ,d a c ) 、基于角色的访问控制 ( r o l e b a s e da c c e s sc o n t r o l ,r b a c ) 。然而,无论是m a c 、d a c 、还是r b a c , 都是访问控制的思想和理论,属于理论抽象层次。 位于访问控制思想理论之下的是具体业务逻辑,根据实际业务需要,各企业 都有其不同的访问控制业务逻辑。x a c m l ( e x t e n s i b l ea c c e s sc o n t r o lm a r k u p l a n g u a g e ) 则处于访问控制思想理论和具体业务逻辑的下层,其目的就是提供一 种承载方式,既能够实现不同的访问控制思想,又可以以一种可移植的、标准的 方式承载不同的业务逻辑。 1 2 课题研究的目的和意义 访问控制技术作为国际标准组织定义的五项标准安全服务之一,是实现信息 系统安全的一项重要机制。美国国防部的可信计算机系统评估标准把访问控制作 为评价系统安全的主要指标之一,其设计对提高系统安全的重要性是不言而喻的。 访问控制技术的应用非常广泛,操作系统、数据库系统、防火墙以及应用程序等, 都需要通过访问控制技术实现对资源的合理利用和合法访问。 伴随着互联网的飞速发展,人们利用计算机所进行的工作不再局限于科学计 算和普通的信息交换,而扩展成以网络为基础的数字化经济活动,也就是我们所 说的电子商务。利用网络人们足不出户就可申请所需的网络服务,企业间的交易 也变得更加便捷。然而,网络带给商业便利的同时也带来了安全隐患。通常来说, 一个企业物理或逻辑的范围己经界定了企业的网络安全;然而,由于在线合作需 要共享更可靠的安全服务环境,因此对网络安全要求就显得尤为迫切。 对用户身份进行有效认证是实施安全保障的必然前提,例如客户必须提供正 确的用户名和口令才能获得服务。然而,每天用户都要登录到多个系统上请求服 务,这样就不得不针对每个系统的认证程序提交不同的用户名和密码。密码的过 度繁殖带来了新的问题,例如工作效率的下降,密码被非法截获的可能性增加等 等。因此寻找一种只需进行一次身份认证就能够对多个系统进行访问的跨服务器 认证方法成为当今研究的热点。 单点登录是一种用于方便用户访问网络的技术。无论多么复杂的网络结构, 用户只需在登录时进行一次注册,即可获得访问系统和应用软件的授权,以后便 可以在网络中自由穿梭,不必多次输入用户名和口令来确定身份。在此条件下, 管理员无需修改或干涉用户登录就能方便地实施希望得到的安全控制。这是一个 为了能够在分布式计算机环境中,安全和方便地鉴别用户而产生的课题。 x m l 语言作为描述互联网上结构化信息和内容的标准,由于其简单性、丰富 的数据结构以及卓越的通用特性而得到了越来越广泛的应用。基于x m l 的 x a c m l 的应用前景也将十分广阔。x a c m l 主要将解决以下问题1 】: 1 创建一种可移植的、标准的方式来描述访问控制。 2 提供一种机制,以比简单地拒绝访问或授权访问更细粒度的控制访问。 这样x a c m l 将简化安全的w e b 应用或要求安全访问控制的应用的开发和配 置,并且可以取代今天采用的将各种专利访问控制策略语言进行拼凑的方法,使 系统管理员无需再去学习这些专利语言和这些语言之间的转换规则;软件开发商 也无需在他们语言的学习上花费大的投资或像他们现在所做的那样去编写自定义 2 编码。这两方面都带来了既节约时间,又节省经费的好处。 1 3 本文主要研究工作 访问控制技术是信息安全系统中一项关键技术,它保证合法用户访问合理资 源,有效防止信息资源的非法访问。本文的研究目标就是研究一种基于x a c m l 的访问控制模型,使之能够以一种可移植的、标准的方式承载不同的业务逻辑。 c a s ( c e n t r a la u t h e n t i c a t i o ns c r v i c e ) 是耶鲁大学的一个开源项目,可以实现 多个w e b 应用的统一认证服务,但该系统没有给出具体的访问控制模块的实现。 本文中利用x a c m l 语言实现单点登录系统的访问控制模袭。相比传统的访问控 制模块,鉴于x a c m l 语言的通用性,使得该系统具有良好的扩展性和通用性。 通过本文的研究,希望能为该领域的应用研究提供有力的帮助。 1 4 论文组织结构 论文各章节的安排如下: 第1 章介绍了论文的背景和研究的目的和意义。 第2 章从x a c m l 的基本概念和语言流出发,研究并分析x a c m l 的数据流 模型、策略语言模型和应用领域。 第3 章在理论研究的基础上提出了基于x a c m l 的访问控制模型,并且利用 j a v a 对模型进行了实现。 第4 章利用该模型对y a l e 大学的开源单点登录系统c a s 进行相应扩展,通 过访问控制策略来实现用户的统一认证。 过访问控制策略来实现用户的统一认证。 第5 章结论。 第2 章x a c m l 访问控制技术 随着计算机技术,特别是网络技术的发展,大型网络应用系统或数据库管理 系统所面临的一个难题就是日益复杂的数据资源的安全管理。国际标准化组织i s o 在网络安全标准( i s 0 7 4 9 8 2 ) 中定义的五个层次型安全服务中,访问控制是其中 个重要组成部分。访问控制机制可以限制对关键资源的访问,防止非法用户进 入系统及合法用户对系统资源的非法使用。 访问控制( a c c e s sc o n t r 0 1 ) 是实施允许被授权的主体对某些客体的访问,同时 拒绝向非授权的主体提供服务的策略。典型的访问控制和授权场景包括三个主要 实体:主体、资源和动作以及它们的属性。主体请求得到对资源执行动作的权限。 比如,访问请求“允许财务经理在财务服务器上的发票文件夹中创建文件”中, 主体是“财务经理”,目标资源是“财务服务器上的发票文件夹”,动作是“创建文 件” 1 1 。 在专有访问控制系统中,这些实体及其属性的信息保存在资料库中。这种资 料库称为访问控制链表( a c c e s sc o n t r o ll i s t ) 。不同的专有系统有不同的实现a c l 的机制,因此难以交换和共享信息。目前多数系统都以专有的方式实现访问控制 和授权。x a c m l 的初衷是开发一项访问控制和授权系统的标准。 2 1 ) ( a o m l 简介 o a s i s ( t h eo r g a n i s a t i o nf o rt h ea d v a n c e m e n to fs t r u c t u r e di n f o r m a t i o n s t a n d a r d s ,先进结构化信息标准组织) 创立于1 9 9 3 年,是一个非营利性国际化组 织,致力于推动电子商务标准( e - b u s i n e s ss t a n d a r d s ) 的发展和推广。o a s i s 在安 全和电子商务标准化方面做出了极大贡献。 2 0 0 3 年2 月,o a s i s 批准) 【a c m l ( e x t e n s i b l e a c c e s s c o n t r o l m a r k u p l a n g u a g e ) 1 , 0 版本成为o a s i s 标准( o a s i ss t a n d a r d ) 。2 0 0 3 年8 月,o a s i sx a c m l 技术 委员会( t e c h n i c a lc o m m i t t e e ,t c ) 批准x a c m l1 1 版本嘲成为o a s i s 委员会规 范( o a s i sc o m m i t t e es p e c i f i c a t i o n ) 。目前,x a c m l2 0 版草案2 ( c o m m i t t e ed r a f t 0 2 ) 己于2 0 0 4 年9 月3 0 日发布。2 0 0 5 年1 2 月x a c m l2 01 3 和相关的文档被批 准为o a s i s 标准。 4 简单的说,x a c m l 是一种对访问控制策略和访问控制请求响应产生过程加 以描述的语言,x a c m l 不仅提供了一系列逻辑算法对整个授权过程进行控制,而 且提供了支持定义新功能、数据结构、合成逻辑算法等的标准可扩展点。可以根 据主体、资源、环境的属性以及所采取的行为进行控制允许还是拒绝。实际 上,返回的结果有四种:允许、拒绝、无法决定( i n d e t e r m i n a t e ) 和不适用 ( n o t a p p l i c a b l e ) 。 x a c m l 使用x m l 作为其描述语言是很自然的事,x m l 元语言的特性、可 扩展的语法和语义特性以及广泛的支持性使其能够对访问控制思想实现最好的支 持。 x a c m l 主要解决以下问题: 创建一种可移植的、标准的方式来描述访问控制实体及其属性。 提供一种机制,以比简单地拒绝访问或授权访问更细粒度的控制访问,也 就是说,在“允许”或“拒绝”之前或之后执行某些操作。 x a c m l 的主要优势【1 3 】: x a c m l 是标准。标准通过了大量专家和使用者审查,开发者不再需要每 次都重新考虑,也不需要在费心考虑在设计一个定义语言所需要的诸多因 素。另外,当x a c m l 越是被大量部署,开发者越是能轻松的通过标准语 言来与其它应用系统协作交互。 x a c m l 是通用的。这意味着可以在大多数环境中使用,而不只是在一些 特殊的环境中或对特殊的资源可以使用。一个访问控制策略编写后,可以 被很多不同类型的应用程序使用。当使用一个较通用的语言来实现时,访 问控制策略的管理也变得简单了。 x a c m l 是分布式的。这意味着一个访问控制策略可以被编写为引用其它 任意位置的其它策略。其带来的好处就是可以由不同的用户或组各自管理 策略中各自业务范围内、或专业领域内的子策略并最终合并为总策略,而 不是集中管理一个集成的访问控制策略。由x a c m l 来处理如何正确的合 并不同的子策略判断结果,并做出统一的访问控制。 x a c m l 是强大的。因为由若干基于基本语言的扩展方法,所以对多环境 考虑已经不再必要。标准语言已经可以支持广泛的数据类型、功能、和合 并不同策略判断结果的规则。另外,已经有若干标准小组致力于开发扩展 和能力描述( e x t e n s i o n sa n dp r o f i l e s ) 来使得x a c m l 可以与其它诸如 s a m l 和l d a p 之类的标准协调工作。这使得x a c m l 可以得到更广泛 的应用。 目前,已经有许多开发出了基于x a c m l 的代码和开发工具,下面列举了一 些主要的实现: 1 s u n 公司的x a c m l 实现 s u n x a c m l1 2 版【7 】已经发布,s u n x a c m la p i 宣布对x a c m l1 1 版的全 部特性支持,完全采用j a v a 语言实现,而且是开源软件。本文后面的基于x a c m l 的访问控制模型的实现就是采用s u n 公司的实现。 2 x a c m l 的n e t 实现 x a c m l n e t 的实现【8 l 采用c 群编码实现的开源x a c m l 软件。 3 j a v a - b a s e dx a c m le d i t o r t g l x a c m l 编辑器由u n i v e r s i t yo f m u r c i a 开发的,可以用来编写x a c m l 策略, 本文中的具体策略编写用到x a c m l 编辑器。 4 x a c m l p o l i c yv e r i f i c a t i o na n dc h a n g ea n a l y s i st o o l 1 0 】 由b r o w nu n i v e r s i t y 大学开发的x a c m l 策略验证和分析工具。 5 a x e s c o n x a c m l 2 0 e n g i n e ( b e t a v e r s i o n ) 【1 1 x a c m l2 0e n g i n e 现在推出了b e t a 版本,支持最新的x a c m l 2 0 。 6 p a r t h e n o nx a c m le v a l u a t i o ne n g i n e 1 2 1 由p a r t h e n o n 电脑公司开发的一个x a c m l 引擎。 2 2 术语与概念 策略管理点( p o l i c ya d m i n i s t r a t i o np o i n t ,p a p ) 创建策略或策略集的系统主体,即策略创建人。 策略决定点( p o l i c yd e c i s i o np o i n t ,p d p ) 评估可用策略( a p p l i c a b l ep o l i c y ) 并提供授权决定( a u t h o r i z a t i o nd e c i s i o n ) 的系统主体。 策略强制点( p o l i c ye n f o r c e m e n tp o i n t ,p e p ) 强制执行访问控制的系统主体。p e p 创建一个x a c m l 请求并发送到策略 决策点( p d p ) ,后者评估请求并返回一个响应。该响应可以是允许访问的, 也可以是拒绝访问的,并具有适当的义务。 策略信息点( p o k e yi n f o r m m i o np o i n t ,p i p ) 存储属性值( a t t r i b u t e v a l u e ) 的系统主体。可以是数据库。 行为( a c t i o n ) 针对于某种资源所采取的操作。 可用策略( a p p l i c a b l ep o l i c y ) 适用于特定请求( d e c i s i o nr e q u e s t ) 的策略。 授权决定( a u t h o r i z a t i o nd e c i s i o n ) 针对特定请求,对可用策略评估的结果,由p d p 返回给p e p 。结果可能 为“p e r m i t ”、“d e n y ”、“i n d e t e r m i n a t e ”、“n o t a p p l i c a b l e ”和可选的义务集。 决定请求( d e c i s i o nr e q u e s t ) 由p e p 发给p d p 的请求,要求p d p 返回授权决定( a u t h o r i z a t i o n d e c i s i o n ) 。 规则( r u l e ) 一个策略可以与多条规则相关联。每条规则由条件( c o n d i t i o n ) 、结果 ( e f f e c t ) 和目标( t a r g e t ) 组成。 一条件:是关于属性的陈述,评估结果为t r u e 、f a l s e 或i n d e t e r m i n a t e 。 一结果:是符合规则的预期后果,值可以为p e r m i t 或d e n y 。 _ 目标:与策略中的目标相同,都有助于确定规则是否与请求有关,实 现的机制也与策略中的目标的实现机制类似。 规则的最终结果取决于条件的评估。如果条件返回i n d e t e r m i n a t e ,则该规 则返回i n d e t e r m i n a t e 。如果条件返回f a l s e ,则规则返回n o t a p p l i c a b l e 。如果 条件返回t r u e ,则返回e f f e c t 元素的值,可以是p e r m i t 或d e n y 。 规则合成算法( r u l e c o m b i n i n ga l g o r i t h m ) 一个策略可以包含多条规则,然而,不同的规则有可能得到冲突的结果。 规则组合算法负责解决这种冲突,每一策略、每一请求都得到一个最终结果。 每个策略只能使用一种规则组合算法。规则组合算法结合策略中所有规则的结 果得到最终的授权决策。x a c m l 定义了以下几种规则组合算法( 也可定义自 己的算法) 【3 】: d e n y - o v e r r i d e s ( 拒绝覆盖) :只要有一条规则的评估为d e n y ,那么最 终授权决策也是d e n y 。 o r d e r e d - d e n y o v e r r i d e s ( 有序拒绝覆盖) :与拒绝覆盖相同,只不过评 估相关规则的顺序与将规则添加到策略中的顺序相同。 p e r m i t - o v e r r i d e s ( 允许覆盖) :只要有一条规则计算的评估为p e r m i t , 则最终授权决策也是p e r m i t 。 o r d e r e d p e r m i t - o v e r r i d e s ( 允许按顺序覆盖) :与允许覆盖相同,只不 过评估相关规则的顺序与规则添加到策略中的顺序相同。 f i r s t - a p p l i c a b l e ( 最先应用) :遇到的第一条相关规则的评估结果作为 最终授权决策的评估结果。 目标( t a r g e t ) 每个策略只有一个目标。该目标有助于确定策略是否与请求有关。策略和 请求的相关性决定了是否要为请求评估该策略。这是通过定义目标中的三类属 性( 主体、资源、动作) 及其属性值来实现的。目标中不一定都有这三类属性。 将这些属性的值与请求中具有相同属性的值进行比较,如果匹配( 对其应用某 些函数之后,将会看到它们是否匹配) ,则认为该策略是相关的,并对其进行 评估。 义务( o b l i g a t i o n ) x a c m l 的目标之一是提供更高层次的访问控制,而不仅仅是允许和拒绝 决策,义务是实现这种控制的机制。义务是p e p 必须与授权决策的实施一起 执行的动作。在评估策略之后,特定的义务与授权决策一起发送给p e p 。除了 强制实施授权决策外,p e p 还负责执行义务所规定的操作。 8 2 3 相关模型 2 3 1 数据流模型 x a c m l 由多个组件组成,包括策略执行点( p e p ) ,策略决策点( p d p ) ,策略访 问点( p a p ) ,策略信息点( p i p ) ,主体( s u b j e c t ) ,资源s o l l r c e ) ,环境( e n v i r o n m e n 0 。 数据流模型如图2 1 所剥1 5 1 : 匿一a c c e s s 唧”骨1 3 o b l i g a ;t “僵 图2 1 数据流模型 f i g2 ,1d a t a - f l o wd i a g r a m 由用户发送的一个服务请求,经过p e p 、p d p 等组件,完成一个完整的授权 过程,一般要经过十四个步骤: 1 p a p 定义的策略和策略集合存储在p d p 可以检索到的地方。这些策略和策 略集合都有各自的目标( t a 培e t ) 标识。 2 用户向保护资源的p e p 发送一个服务请求。 3 p e p 收到用户的服务请求,根据其内容构造一个本地( 即p e p 可以理解的, 比如s a m l 格式的请求) 请求,包括请求主体、所请求资源、所进行的操 作以及当时的执行环境的属性( 有些是可选的) ,发送给p d p 的c o n t e x t h a n d l e r 。 4 c o n t e x th a n d l e r 根据收到的p e p 的请求,重新构造x a c m l 请求。 5 p d p 要求c o n t e x th a n d l e r 对x a c m l 请求评估过程中需要的其他主体、资 源、行为和环境的属性进行检索。 6 c o n t e x th a n d l e r 从p 邛处检索所需要的属性信息。 7 p i p 获取c o n t e x th a n d l e r 所需要的属性信息。 8 p i p 把所得到的属性返回给c o n t e x th a n d l e r 。 9 c o n t e x t h a n d l e r 获取资源的内容( 此操作为可选项目) 。 1 0 c o n t e x th a n d i e r 把p d p 所要求的属性以及( 可选的) 资源发送给p d p 。 1 1 p d p 把评估x a c m l 请求后的响应内容( 包含授权决策的结果) 返回给 c o n t e x th a n d l e r 。 1 2 c o n t e x th a n d i e r 把收到的p d p 的响应转换成p e p 能够理解的响应格式, 并把转换后的响应消息发送给p e p 。 1 3 p e p 根据收到的响应内容( 可能包含o b l i g a t i o n s ,即p d p 的授权策略要求 p e p 在执行该策略授权的同时,需要执行p d p 所规定的一组指令) ,实施 义务。 1 4 如果访问允许,p e p 允许访问受保护的资源,否则访问将被拒绝。 2 3 2 上下文处理器 由上面的授权流程,我们可以看出x a c m l 体系能够适应多种应用需求,其 原因是利用c o n t e x th a n d l e r 的转换功能,不需要对p e p 和p d p 作很大的改动,就 能够把各种p e p 与x a c m lp d p 集成在一起。由于有了c o n t e x th a n d l e r ,就使 x a c m l 的核心语言同具体的应用环境相隔离,从而进一步确定了x a c m l 的作 用范围。x a c m l 规范的作用范围如图2 2 所示【2 5 】。 图2 2x a c m l 规范的作用范围示意图 f i g2 2x a c m lc o n t e x t 图2 2 中阴影区域即是x a c m l 规范的作用范围,其中的p o l i c y x r n l 、 r e q u e s t x m l 和r e s p o n s e x m l 都是符合x a c m l 规范的,都是由x a c m l 规范所定 义的x m ls c h e m a 所定义的,是x a c m l 授权模型的各个组件所能够理解的。 x a c m l 策略中可以以x p a t h 的表达形式引用所需要的属性,或者以主体、资源、 行为或环境的标识的形式来引用。在实现过程中,对于输入,这些属性必须由 c o n t e x th a n d i e r 模块把它们从外部域的表现形式( 如s a m l ,j 2 s e ,c o r b a 等) 转换 成x a c m l 策略所能够理解的上述两种格式之一;同样对于输出,必须由c o n t e x t h a n d l e r 把它们转换成外部能够理解的格式。尤其对于s a m l ,c o m e x th a n d l e r 可 以使用x s l t 自动实现这种转换【3 1 。 2 3 3 策略语言模型 在策略语言模型如图2 3 所示。模型的最主要的三个组件是:规则( r u l e ) 、 策略( p o l i c y ) 、策略集( p o l i c ys e t ) : 图2 3 策略语言模型 f i g2 3p o l i c yl a n g u a g em o d e l 策略和策略集 所有的x a c m l 访问控制策略的根是p o l i c y 或p o l i c y s e t 。一个p o l i c y s e t 是一 个可以容纳其它p o l i c y 或p o l i c y s e t 的容器,可以通过其引用到非本地的p o l i c y 或 p o l i c y s e t 。一个p o l i c y 表现为一个单一访问控制策略的引用,它通过一套规则 ( r u l e ) 来表现。每一个x a c m l 访问控制策略文档都在其x m l 标签根部包含了 唯一的一个p o l i c y 或p o l i c y s e t 。 因为一个p o l i c y 或p o l i c y s e t 可以包含多个策略或规则。因为这些策略或规则 会有不同的访问控制判断结果决定,所以x a c m l 需要一个协调判断结果的方法。 这在x a c m l 中是通过一套合并算法( c o m b i n i n ga l g o r i t h m s ) 来实现。每个算法 表示一种不同的合并多判断结果到单一判断结果的方法。x a c m l 有“策略合并算 法p o l i c yc o m b i n i n ga l g o r i t h m s ”( p o l i c y s e t 采用) 和“规则合并算法r u l e c o m b i n i n ga l g o r i t h m s ”( p o l i c y 采用) 。这当中的一个例子是“d e n yo v e r r i d e s a l g o r i t h m ”,代表无论其它策略判断结果如何,只要其中有一个策略或规则判断返 回结果d e n y ,则最终判断结果定为d e n y 。这些合并算法可以用于构建复杂的策略。 在已有的7 种标准的合并算法以外,你可以构造自己的合并算法来满足你的需求a 目标和规则 x a c m l p d p 要做的一部分工作是根据一个请求找到对应的策略。为了实现这 一点,x a c m l 提供另一个被称为t a r g e t 的特性。一个t a r g e t 基本上来说是一套简 化了的在一个请求中p o l i c y 、p o l i c y s e t 、r u l e 必须遇到的关于主题( s u b j e c t ) 、动 作( a c t i o n ) 、资源( r e s o u r c e ) 的条件限制。这些条件限制都使用布尔判断( 将 在下一节作阐述) 来比较一个请求中的参数值和一个t a r g e t 里面的条件对应值。 如果一个t a r g e t 中的所有的条件都符合,该请求就被关联到相应的p o l i c y 、 p o l o c y s e t 、r u l e 上。作为一种检查策略适用性的方法,t a r g e t 的信息中还有一种方 法进行策略索引。这在当需要在同一t a r g 吼中存储多种策略并且需要快速的审阅 这些策略以选择最合适策略时非常有用。例如,一个p o l i c y 可能包含一个只适用 于某一特定服务的t a r g e t 时。当一个要求访问该服务的请求发生时,p d p 就知道 n 叨i i j i 去找适合判断该请求的策略。因为策略被基于他们的t a r g e t 的限制条件进 行了索引。注意,t a 增e t 也可以定义为适用于所有的请求。 旦p o l i c y 被找到并被用于验证一个请求,其规则( r u l e ) 即发生作用。p o l i c y 可以容纳任意数量的r u l e ,这些r u l e 中包含一个x a c m l 策略的核心逻辑。绝大 多数的r u l e 表现为一个条件布尔判断。当前条件为真时,“规则的结果r u l e s e f f e c t ”( 一个根据规则判断的p e r m i t 或d e n y 的结果) 即被返回。条件的判断结果 也可以为一个错误( 也即“不明确i n d e t e r m i n a t e ”) 或该条件不适用于判断请求( 即 “不适合n o t a p p l i c a b l e ”) 。一个条件可以非常复杂,如:由一系列嵌套的非布尔 判断的函数或属性来判断。 属性,属性值和函数 x a c m l 运行时处理的是属性。属性是已知类型的值,可能包括属性定义者的 标识或定义日期时间。特定的,属性是s u b j e c t 、r e s o u r c e 、a c t i o n 或访问请求发 生的环境的特征值。一个用户名称、访问间歇、试图访问的文件、访问日期等都 可能成为属性值。当一个请求从p e p 被发送到p d p 时,该请求被构成属性扩展集, 并被用于与策略中的属性值进行比较,并最终产生访问控制结果。 p o l i c y 以两种机制来解析来自请求或其它来源( 其它p o l i c y ) 中的属性值: a t t r i b u t e d e s i g n a t o r 和a t t r i b u t e s e l e c t o r 。a t t r i b u t e d e s i g n a t o r 让策略定义以一个名称 和类型来定义属性,同时可以提供一个发布者( i s s u e r ) 可选项。然后p d p 就在请 求中寻找该属性的值,或判断该属性值是否在请求中可以被找到。一共有4 种指 示者( d e s i g n a t o r ) ,分别对应请求中的4 种类型的属性:s u b j e c t ,r e s o u r c e ,a c t i o n ,a n d e n v i r o n m e n t 。因为s u b j e c t 属性可以被拆分到不同的目录中, s u b j e c t a t t r i b u t c d e s i g n a t o r s 也可以定义目录来查询之。a t t r i b u t e s e l e c t o r s 使得一个 策略根据x p a t hq u e r y 的形式查询一个属性值。只要提供一个数据类型和x p a t h 表 达式,就可以解析请求文档中的属性值。 a t t r i b u t e d e s i g n a t o r 和a t t r i b u t e s e l e e t o r 都可以返回多值( 因为可能存在一个请 求匹配多条件的情况) ,所以x a c m l 提供一个特殊的属性叫“b a g ”,b a g 是一个 无序的集合,并且允许重复。通常d e s i g n a t o r 和s e l e c t o r 都返回b a g ,甚至当只有 单值返回时也是以b a g 返回。当没有匹配项是返回空的b a g 。当然,d e s i g n a t o r 和 s e l e c t o r 可以设置一个标记,当这一情况发生时产生一个错误。 当属性值b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论