专利名称:一种网格授权实现方法
技术领域:
本发明涉及一种网格授权实现方法,特别是一种遵循国际标准,细粒度的基于策略的网格授权实现方法。
背景技术:
网格是近年来逐渐兴起的一个研究领域。当前的Internet技术实现了计算机硬件的连通,Web技术实现了网页的连通,而网格技术是要把整个因特网上的各种资源整合成一台巨大的计算机,从而实现资源共享与协同工作。网格要达到资源共享与协作的目的,必须解决访问资源的授权问题。网格应用环境具有典型的分布性、异构性和动态性等特征,对授权技术提出了新的挑战。首先,网格可以跨越多企业、多系统或个人,它们对安全控制的需求和采用的安全策略可能完全不同,因此要求授权系统具有通用的授权机制以实现多种用户根据不同需求自定义授权策略。其次,不同用户需要能独立的制定自己管辖的资源的授权策略而不受其他用户的授权策略的影响,网格中的全局的安全策略还需要与本地的安全策略协调和交互,既要满足全局控制的需要,又要满足用户自主控制的需求。此外,网格作为一个开放、动态的系统,具有多种安全策略、大量的用户及访问服务请求、以及异构的资源,这要求授权机制灵活并易于管理。
目前网格授权技术正处于不断发展过程中,Globus项目作为网格中间件的事实标准,在其2.x版本中的授权是通过grid-mapfi1e绑定在Unix类操作系统上,在其3.x版本中引入了社团授权服务器(Community Authorization Server,简称CAS)来在虚拟组织范围内为用户指派各网格节点提供的访问权限,增强了访问控制的灵活性,但主要仍然是基于身份的授权,有很大的局限性。
发明内容
本发明的目的在于针对现有技术的不足,提出一种基于策略的网格授权实现方法,为网格应用提供细粒度的、基于属性的授权支持。
为实现上述目的,本发明提出了一种网格授权实现方法,其中执行以下步骤步骤1、用户发起初始访问请求;步骤2、客户端授权处理链接点收集客户端的安全信息,将该安全信息插入简单对象访问协议报文的头部部分,与用户请求一起发送到服务端;步骤3、服务端解析安全信息,验证签字,并判断安全信息是否有效,如果是,则执行步骤5;否则执行步骤4;步骤4、丢弃安全信息中的无效部分;步骤5、服务端授权处理链接点收集服务端的安全信息;步骤6、服务端授权处理链接点构造授权请求上下文;步骤7、根据客户端及服务端的安全信息进行授权决策;步骤8、判断授权是否通过,如果是,则执行步骤9;否则返回授权不通过的信息;步骤9、允许用户访问目标服务,返回访问服务结果。
该方法遵循IETF RFC2903、2904 AAA授权框架,应用XACML,SAML,WS-Secur ity等通用国际标准,使用基于策略的设计,配置管理灵活方便,为网格应用提供细粒度的、基于属性的授权支持,能够较好的满足网格环境下的授权需求,而且使授权系统灵活且易于定制和管理。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明网格授权实现方法的流程图;图2为本发明网格授权实现方法的实施例的流程图;
图3为本发明网格授权实现方法的实施例中进行授权决策的流程图。
具体实施例方式
在网络授权系统的概念模型中,授权过程包括两种常用模式1、拉模式,请求者1发起对资源的访问,策略强制点(Policy EnforcementPoint,简称PEP)截获此访问请求并构造授权请求上下文向策略决策点(Policy Decision Point,简称PDP)请求授权,PDP根据从策略管理点(PolicyAdministration Point,简称PAP)获取的相关授权策略和从策略信息点(Policy Information Point,简称PIP)获取的安全信息,做出授权决策,并将决策结果返回给PEP,PEP根据授权结果允许或拒绝请求者1对资源的访问,授权过程对于请求者1是透明的;2、推模式,由请求者2向PDP发出授权请求,然后使用PDP返回的授权许可票据来请求对资源的访问,PEP在验证授权许可票据后允许或拒绝请求者2的访问请求,授权过程需要请求者2的参与。
本发明基于策略的网格授权实现方法对该模型的拉模式进行了实现。
如图1所示,为本发明网格授权实现方法的流程图,具体执行以下步骤步骤101、用户发起初始访问请求;步骤102、客户端授权处理链接点收集客户端的安全信息,将该安全信息插入简单对象访问协议报文的头部部分,与用户请求一起发送到服务端;步骤103、服务端解析安全信息,验证签字,并判断安全信息是否有效,如果是,则执行步骤105;否则执行步骤104;步骤104、丢弃安全信息中的无效部分;步骤105、服务端授权处理链接点收集服务端的安全信息;步骤106、服务端授权处理链接点构造授权请求上下文;步骤107、进行授权决策;步骤108、判断授权是否通过,如果是,则执行步骤109;否则返回授权不通过的信息;步骤109、允许用户访问目标服务,返回访问服务结果。
在该方法中,客户端授权处理链接点在客户端截获用户对目标服务的访问请求,为服务端的授权决策提供源于客户端的信息收集,收集的安全信息将遵循WS-Security规范通过SOAP报文传递给服务端。用户可以在该模块的安全配置中提供用户安全断言标记语言(Security Assertion MarkupLanguage,简称SAML)属性断言。该模块是授权模型中PIP功能点在客户端的实现。
该模块部署在客户端,是有可能被恶意的用户绕过或篡改的。在这种情况下,服务端授权处理链接点会抛弃无法正确解析和验证的无效属性,仅凭借服务端收集的信息对用户的访问请求作出授权。
服务端授权处理链接点在服务端截获用户的访问请求,首先收集服务端的各种安全信息,解析由客户端授权处理链接点传递过来的客户端信息,并验证各属性断言的可信任性,然后向授权服务发出策略决策请求或在本地完成策略决策,最后根据策略决策的结果实现策略强制,即允许或拒绝用户对目标服务的访问。
除了策略决策模式配置,该模块的安全配置还包括SAML属性断言指定和可信任的属性权威的证书指定。目标服务的管理员可通过SAML属性断言指定服务端的安全信息,并支持以XPath和QName的形式在SAML断言中指定查找运行时动态信息,如用户访问目标服务的方法参数、服务资源的当前值等。指定的属性权威证书被用来验证客户端属性断言的签名,以判断其是否可信任。
该模块是授权模型中PIP功能点在服务端的实现,并实现了PEP功能点,对于本地授权方式的PDP功能点也在该模块实现。
进行授权决策有两种选择1.本地授权决策在服务端直接进行授权决策,这种情况下,由服务端授权处理链接点完成;2.集中授权决策访问域授权服务进行授权决策,这种情况下,服务端授权处理链接点把授权请求上下文发送给域授权服务,域授权服务进行授权决策。
2相对于1来说,便于域中的集中授权管理,能够支持全局的授权策略和服务指定的服务特定授权策略相接合。同时域授权服务能为域中的各主体管理授权策略。但2对于1来说,多了一次远程访问的过程,需要耗费更多的处理时间。
因此,本发明提供给用户这两种授权方式的选择,用户可以根据具体部署的环境和需求来选择。
如图2所示,为本发明网格授权实现方法的实施例的流程图,具体执行以下步骤步骤201、用户发起初始访问请求;步骤202、客户端授权处理链接点收集客户端的安全信息,根据客户端的安全配置定制客户端授权处理链接点,并将该安全信息插入简单对象访问协议报文的头部部分,与用户请求一起发送到服务端;步骤203、服务端解析安全信息,并验证签字,证明其有效性;步骤204、判断安全信息是否有效,如果是,则执行步骤206;否则执行步骤205;步骤205、丢弃安全信息中的无效部分;步骤206、服务端授权处理链接点收集服务端的安全信息,根据服务端安全配置定制服务端授权处理链接点;步骤207、服务端授权处理链接点构造授权请求上下文,并根据客户端用户属性证书为授权请求加入用户属性信息,根据服务端属性证书为授权请求加入服务属性信息;步骤208、进行授权决策;这里提供了两种授权决策模式的选择①本地授权决策由目标服务管理员在安全配置中指定授权策略,在本地完成策略决策,而不访问域授权服务;②集中授权决策生成授权请求上下文向域授权服务发出授权请求,由域授权服务完成策略决策,授权策略由授权策略仓库集中管理;本地授权模式牺牲了域一级的集中授权管理,需要由目标服务自己承担授权策略的管理以及本地策略与全局策略的合成,换来的是避免了对域授权服务的远程访问,使得在授权效率上得到一定的提升,服务管理员可以根据具体的应用场景的需求对两种授权模式进行选择配置;步骤209、判断授权是否通过,如果是,则执行步骤210;否则返回授权不通过的信息;步骤210、允许用户访问目标服务,返回访问服务结果。
其中,如图3所示,本发明网格授权实现方法的实施例中步骤208进行授权决策的流程图,具体执行以下步骤步骤2080、接收授权请求,并对授权请求消息解包;步骤2081、从请求中解析出用户的身份信息,这个身份信息是用户所访问的目标服务的身份信息;在网格授权场景中,每个主体都是有其身份的,访问一个网格服务的网格用户具有其身份,网格服务本身有其身份,同时域授权服务也有其身份,网格服务的服务端授权链接点向域授权服务发起授权请求时,它是域授权服务的用户,因此这里是网格服务的身份,域授权服务处集中管理着域中多个网格服务的策略,需要依靠服务的身份来确定服务所对应的授权策略,对于访问某特定服务的不同的网格用户,请求域授权服务时使用的身份信息都是同一个身份信息——此服务的身份。对应提取的也都是同一批授权策略——此网格服务指定的授权策略;步骤2082、根据身份信息从授权策略仓库中提取出与用户请求的服务对应的服务授权策略,并根据授权策略仓库的配置信息定制授权策略仓库的行为;授权策略仓库负责对域授权服务进行授权决策过程中所需要的策略进行管理,并为用户提供了管理策略的API接口和辅助管理工具;它为每一个服务分别维护一个策略空间,依据访问者的身份确定其可操作的策略空间,不同服务的授权策略位于各自的策略空间中,确保不会互相干扰和被混用,当域授权服务向授权策略仓库请求授权策略时,需提供受保护目标服务的身份信息,授权策略仓库根据此身份信息索引到受保护目标服务相关的策略空间,返回其授权策略给域授权服务,授权策略仓库是授权模型中PAP功能点的实现;步骤2083、根据服务持有者的配置从用户的服务访问请求中搜集指定安全信息,调用策略决策引擎根据目标服务设置的服务授权策略进行授权决策;步骤2084、判断授权是否通过,如果是,则执行步骤2085;否则执行步骤2088;步骤2085、从授权策略仓库中提取出域全局授权策略;步骤2086、调用策略决策引擎根据域全局授权策略进行授权决策;步骤2087、判断授权是否通过,如果是,则设置授权不通过结果,执行步骤2089;否则执行步骤2088;步骤2088、设置授权通过结果;步骤2089、授权返回消息组包,返回结果。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。
权利要求
1.一种网格授权实现方法,其中执行以下步骤步骤1、用户发起初始访问请求;步骤2、客户端授权处理链接点收集客户端的安全信息,将该安全信息插入简单对象访问协议报文的头部部分,与所述请求一起发送到服务端;步骤3、所述服务端解析所述安全信息,验证签字,并判断所述安全信息是否有效,如果是,则执行步骤5;否则执行步骤4;步骤4、丢弃所述安全信息中的无效部分;步骤5、服务端的授权处理链接点收集服务端的安全信息;步骤6、所述授权处理链接点构造授权请求上下文,用于请求授权决策;步骤7、根据客户端及服务端的安全信息进行授权决策;步骤8、判断所述授权是否通过,如果是,则执行步骤9;否则返回授权不通过的信息;步骤9、允许用户访问目标服务,返回访问服务结果。
2.根据权利要求1所述的网格授权实现方法,其中所述步骤7的具体流程为步骤70、接收授权请求,并对授权请求消息解包;步骤71、从所述请求中解析出所述用户的身份信息;步骤72、根据所述身份信息从授权策略仓库中提取出与用户请求的服务对应的服务授权策略;步骤73、调用策略决策引擎根据目标服务设置的服务授权策略进行授权决策;步骤74、判断授权是否通过,如果是,则执行步骤75;否则执行步骤78;步骤75、从所述授权策略仓库中提取出域全局授权策略;步骤76、调用所述策略决策引擎根据所述域全局授权策略进行授权决策;步骤77、判断授权是否通过,如果是,则设置授权不通过结果,执行步骤79;否则执行步骤78;步骤78、设置授权通过结果;步骤79、授权返回消息组包,返回结果。
3.根据权利要求1或2所述的网格授权实现方法,其中步骤8中所述授权决策在本地或发送到域授权服务中进行,当在本地进行时,没有授权策略仓库对策略的管理,也不需要解析网格服务的身份信息,没有全局授权策略的应用。
全文摘要
本发明涉及一种网格授权实现方法,执行以下步骤1.用户发起初始访问请求;2.客户端授权处理链接点收集客户端的安全信息,将该安全信息插入简单对象访问协议报文的头部部分,与用户请求一起发送到服务端;3.服务端解析安全信息,并验证签字,证明其有效性;4.判断安全信息是否有效,如果是,则执行步骤6;否则执行步骤5;5.丢弃安全信息中的无效部分;6.服务端授权处理链接点收集服务端的安全信息;7.构造授权请求上下文;8.进行授权决策;9.判断授权是否通过,如果是,则允许用户访问目标服务;否则返回授权不通过的信息。该方法能够较好的满足网格环境下的授权需求。
文档编号H04L29/06GK1791026SQ20051013254
公开日2006年6月21日 申请日期2005年12月26日 优先权日2005年12月26日
发明者怀进鹏, 胡春明, 李建欣, 颜强, 李沁, 刘小佩 申请人:北京航空航天大学