一种跨域认证方法及其系统的制作方法

文档序号:7927956阅读:138来源:国知局
专利名称:一种跨域认证方法及其系统的制作方法
技术领域
本发明涉及一种跨域认证方法及其系统,属于计算机技术领域。
技术背景随着技术的不断革新以及网络规模的不断扩大,分布式环境下的各种应用层出不穷, 而其相应的安全需求也变得越来越复杂。分布式系统由一个个孤立的安全域通过网络互联 而形成,每个信任域管理着本地的资源和用户。当用户跨域访问资源的时候,由于访问主 体、资源客体以及认证服务分别属于不同的信任域,需要解决该环境中身份标识、信任建 立和跨域互操作等各种问题。而传统的身份认证解决方案显然已经无法应对这种新的安全 需求和安全挑战,跨域身份认证成为安全保障的重要内容。同时,随着人们对于隐私问题 的重视不断提高,如何提高对用户隐私的保护同时又不降低系统的安全性能,是认证系统 设计人员面临的一大挑战。由于认证与被保护的应用本身没有业务上的联系,把认证作为一个单独的功能提取出 来,构建一套独立的认证系统为多个应用提供服务是安全领域的一种发展趋势。因此,认 证系统的设计应充分考虑其通用性与灵活性。它应该能够适用于各种异构平台,提供对访 问控制、授权管理等其他安全保护机制的支持,同时其内部功能可以自由裁剪,以适应于 各种不同的应用场景。目前,较为典型的基于Web的认证解决方案包括耶鲁大学提出的统一认证服务(CAS, Central Authentication Service)系统和美国Internet2项目的Shibboleth中间件系统。耶鲁大学提出的统一认证服务CAS是一个比较典型的认证与应用分离的解决方案。它 提供了一套独立的,适用于分布式环境下的,兼容各种异构平台的单域认证系统。它在需 要保护的应用系统中插入CAS客户端插件,由CAS服务器端作为认证中心,通过票据验 证为多个应用系统提供统一认证服务,让用户可以一次登录多次访问。但是它只能解决单 域环境下的统一认证、单点登录问题,无法满足跨域认证的要求,也没有考虑用户的隐私 保护等需求。美国Internet2项目的Shibboleth中间件系统用于各个大学之间建立信任关系以及共享Web资源。Shibboleth可以实现跨信任域的单点登录,并且采用基于属性的授权框架,因 此也应用于网格解决虚拟组织之间的身份认证以及资源管理问题。它采用安全断言标记语 言(SAML, Security Assertion Markup Language)在多个信任域之间提供身份认证服务, 并且有隐私性保护的解决方案。然而,Shibboleth本身不提供认证功能,常见的做法是结 合CAS与Shibboleth来提供完整的认证及身份管理功能。Shibboleth的一个主要的问题在于,在Shibboleth体系中,所谓的域只针对于用户,而 不包括被保护的应用资源,所以在跨域访问的场景下,被保护资源实际上没有其所属的信 任域,而是同时归属于多个信任域,如图1所示。这种解决方案在很多场景下是不适合的, 如对于一个组织——公司或大学,其内部包含多个资源或应用系统,它们只能信任其所在 的组织——即本地信任域。如果某些资源需要与外域用户共享,应该由其信任域来统一管 理,并与外域建立信任关系。发明内容本发明的目的之一在于克服现有技术中存在的问题,提供一种跨域认证整体解决方 案,包括跨域认证方法及其系统。具体来说,本发明技术方案包括下列几个重要方面-一、基本跨域认证方法用户跨域访问资源时,目标域对用户进行跨域认证的基本方法如下所述1. 用户域的某个用户访问目标域的某个应用系统,该系统检测用户是否经过认证,如果是,则直接从缓存中获得用户信息,允许访问;否则,缓存用户请求信息,交由目标 域的身份认证系统对用户进行身份认证;2. 目标域的身份认证系统检测用户是否已认证过,如果是,就转到步骤6;如果否, 就交由域定位系统来确定用户所属身份域;3. 域定位系统通过其维护的信息确定用户所在的域或由用户选择其用户域后,将用 户交由用户域的身份认证系统来进行认证;4. 用户域的身份认证系统检测用户是否已认证过,如果是,就从缓存中获得用户认 证信息;如果否,就由用户选择一种系统支持的认证方式进行认证,比如通过输入用户名 密码的方式,或者通过PKI证书的方式;认证通过后,缓存用户认证信息,并将该认证信 息发送至目标域的身份认证系统。在此过程中,可检査该用户是否与目标域建立过身份联
合,如果有就在认证信息中发送身份联合涉及的联合假名,否则,直接发送用户名;5. 目标域的身份认证系统验证用户域发送的用户认证信息是否可信。验证通过,判 断用户身份是否为联合身份。如果是,就根据联合身份提取用户在本域的认证信息并缓存, 否则直接缓存用户在用户域的认证信息;6. 目标域以可信方式将用户认证信息发送给用户要访问的应用系统;7. 应用系统获得用户认证信息,解析并验证,如果验证通过则缓存用户认证信息, 并允许用户访问,否则提示用户身份认证失败,跨域资源访问流程结束。其中,对于步骤4,在非身份联合的情况下,用户域的身份认证系统发送的认证信息 中可用一个用户假名替换真正的用户名,以保护用户隐私。步骤6中目标域的身份认证系 统也类似。在该方案中,用户认证信息需要在不同组织的身份认证系统之间以及组织内部的身份 认证系统与应用系统之间通过可信方式传递。传递方式可以选择多种不同的形式来实现, 在B/S应用模式下可以选择在HTTPS保护下采用安全断言标记语言(SAML)标准作为认 证信息的发布形式,组织之间以及组织内部的信任通过PKI体系来保证。在C/S应用模式 下,如果采用对称密钥体系来建立信任关系可直接对认证信息加密进行传输,如果采用PKI 体系可以选择加密信道下对认证信息进行签名的方式传送。二、跨域认证方法中的用户属性查询以上过程中用户的认证信息只考虑用户身份信息(如,用户名)。而当用户访问资源 时,还需要进一步获得用户属性才能判断是否允许其访问。对于用户属性信息,可以有以 下两种方法进行査询。属性査询方法一在认证过程中,用户属性随用户身份信息一同在认证信息中发布, 一次性获得用户的所有属性。属性査询方法二,当认证后的用户访问某个应用系统时,它根据用户身份信息向本域 的身份认证系统查询需要的属性。如果是外域用户,本域身份认证系统再向外域査询该属 性。在跨域的情况下,每个域所定义的用户属性可能存在不同的情况,需要采取措施来使 不同域可以彼此解析对方的属性,从而在不改变本域资源访问控制策略的前提下,实现对 外域用户的访问控制。
本发明在以上跨域认证方法的基础上,通过以下方法实现跨域属性査询每个域的身 份认证系统维护与其他域之间的属性映射列表。该列表指明了本域中的属性对应于外域的 哪个属性及其属性值之间的映射。在跨域査询用户属性时,通过该列表进行不同域间属性 的转换。下面以属性查询方法二为例,具体介绍该属性査询的方法1、 当用户域的用户访问目标域的应用系统上的资源R时,该应用系统需要判断用户 是否拥有目标域的属性AttrA。它根据当前访问用户的身份信息向目标域的身份认证系统发 出对属性AttrA的査询请求;2、 目标域的身份认证系统收到属性査询请求后,检査是否有该用户的这个属性的缓存,如果有就直接回复。如果没有,就检査用户是本域的还是外域的。对于外域用户,从属性映射列表中查找对应于AttrA的用户域中属性的名称,如AttrB,然后向用户域的IAS 发出对该用户的属性ArtrB的査询。对于本域用户,则直接进行本地査询。3、 用户域的身份认证系统收到目标域发来的属性査询请求后,进行本地査询,得到 用户的AttrB属性的值,缓存该信息并返回给目标域。4、 目标域的身份认证系统收到回复后,根据属性映射列表将属性AttrB转化为AttrA 回复给应用系统,并对其进行缓存。5、 目标域的应用系统收到回复后,根据用户的属性AttrA的值进行访问控制,判断用 户是否能够访问。和现有技术相比,本发明的跨域认证方法具有如下优势1、 信任关系层次清晰,易于管理。本发明的跨域认证方法将被保护资源划归为域管 理的范畴,在一个信任域内,由一个身份认证系统来负责管理并认证本域内用户的身份, 同时它也负责检验本地资源需要的外域用户的身份信息。不同域之间的信任关系只在身份 认证系统之间建立。其信任结构如图2所示。这样,域的数量或信任关系发生的变化对被 保护资源而言是透明的。相比Shibboleth系统,本发明采用的系统模型更为合理,信任关 系更为简单,易维护,易管理;2、 功能全面,适用范围广。本发明的跨域认证方法提供了对跨域访问过程中需要的 跨域身份认证、单点登录、跨域属性査询、身份联合等多个功能的解决方法,能够充分满 足实际应用的各种需求;3、 支持灵活简便的跨域访问控制。本发明的跨域属性查询方法使得每个域不需要修
改其自身原有的访问控制策略,就可以实现对跨域用户的访问控制,且管理简单,只需维 护属性映射列表。三、跨域认证系统本发明针对B/S应用模式,根据以上跨域认证方法的核心思想给出了一套跨域认证中 间件系统。它由身份认证系统(IAS, Identity Authentication System),认证状态过滤插件 (ASF, Authentication State Filter),以及域定位系统(DLS, Domain Location System)三部分组 成。其中,身份认证系统与域定位系统是独立的Web应用系统,认证状态过滤插件作用于 被保护的应用系统(SP, Service Provider)。整个系统中, 一个IAS负责一个域内的资源及 用户身份认证,IAS之间在DLS的辅助下实现对用户的跨域认证。该系统的网络拓扑结构 如图3所示。1.身份认证系统(IAS) : IAS是一个独立的Web应用系统,负责本域内的用户身份 信息与属性信息管理,对其管理的信任域内的用户进行身份认证,向其他域提供用户认证 状态查询与身份属性信息査询等功能。同时维护用户的认证状态,提供单点登录功能。其 中,用户认证信息采用安全断言标记语言(SAML)中规定的断言标准格式进行发布。该子系统内部包含下列功能构件-a. 认证管理构件(AMC, Authentication Management Component):该构件是整个IAS 的核心构件,提供了认证的整体框架,主要负责Web层信息的处理,以及各个构件的组装 及调用,完成用户身份认证的主体功能。它的主体功能由两个模块组成,包括HTTP请求 处理模块以及认证结果发布模块。请求处理模块,负责处理外界转发来的用户请求,根据 请求的不同,进行不同的处理。同时它为每个用户维护一个用户对象,记录用户信息,并 与用户维持会话状态,以记录用户认证状态,实现单点登录。认证结果发布模块从请求处 理模块获得用户对象,然后分别检査身份联合构件,属性査询构件以及匿名访问构件是否 启用,如果启用就调用它们对用户对象中的信息进行更新,然后调用SAML断言构件将用 户的信息封装为认证断言的形式发布。b. 可插拔认证构件(PAC, Pluggable Authentication Component):该构件负责对用 户的身份进行认证。它包括认证Servlet与核心认证模块两部分。认证Servlet负责Web层 与用户的交互。核心认证模块实现认证的主体功能,它默认支持传统的口令认证和X.509 证书认证两种认证方式,并且支持各种类型的数据库。如果用户采用默认认证方式,只需
要配置数据库参数就可以快速实现认证系统与数据库的对接。用户也可以自行扩展该模块 的认证接口,以支持其他新的认证方式。此外,用户也可以通过增加过滤器的方式来实现 与其他非Web形式的认证方式的集成,如Kerberos等。c. SAML断言构件(SAC, SAML Assertion Component):该构件负责SAML断言 的封装解析,以及对SAML Artifact的査询。它将用户认证信息封装为SAML断言的形式, 根据断言请求方的身份决定采用SAML Artifact形式还是POST Form形式进行最后的封 装。断言请求方可以通过WebService的方式来对SAML Artifact进行査询。d. 属性査询构件(ARC, Attribute Request Component):该构件负责维护本域与其他信 任域之间的属性映射列表,并提供对用户属性的查询服务。该构件接收属性査询请求(包 含用户名及属性列表)后,首先检査匿名访问构件是否启用,如果是就调用该构件获取用 户真名。然后检查本地是否有属性的缓存,如果有则直接发布SAML属性断言。如果没有, 则检查用户所属域。如果是外域用户,根据外域IAS的标识,査询属性映射列表获得外域 对应属性名称,然后通过WebService的方式向用户身份域的IAS发出属性査询请求,获 得结果后将其转换为本域对应的属性并缓存。如果是查询本地信任域的用户属性,则直接 进行本地属性査询,并对査询结果进行缓存。这里的本地属性査询可选择两种方式实现。 一是实例化本地属性查询接口, 二是与授权管理系统结合,采用SAML属性査询的标准接 口定义,利用WebService的方式来调用授权管理提供的属性査询服务。鉴于属性査询是同 属于身份管理与授权管理的范畴,用户可以采用自己的授权管理系统来负责用户的属性查 询,所以在不启用匿名访问构件的前提下,用户可在系统配置中选择不启用该构件。e. 匿名访问构件(AAC, Anonymous Access Component):该构件负责维护"用户 名一用户假名"信息列表,提供用户真假名转换査询服务,是实现用户隐私保护的主要环 节。该构件可在系统配置中选择是否启用。f. 身份联合构件(IFC, Identity Federation Component):该构件主要负责用户联合 身份的建立、删除,联合身份查询以及真实身份查询。它通过Web页面与用户交互,完成 联合身份的建立与删除。该构件可在系统配置中选择是否启用。以上构件中,属性査询构件(ARC)、匿名访问(AAC)与身份联合构件(IFC)可 以由用户根据实际的应用场景,选择是否启用,体现了本发明的一大特点——系统功能任 意裁剪。完整的IAS子系统的结构组成如图4所示。2.认证状态过滤插件(ASF): ASF是作用于被保护的应用系统端(SP)的插件。该插
件的核心是一个过滤器,它的主要功能是过滤用户的访问请求,如果是未认证用户,就将 用户定向到所在信任域的身份认证系统(IAS)。用户通过认证后,该构件验证IAS发回 的认证断言,如果验证通过就记录该用户的登录状态以及认证信息,则用户再一次访问这 个SP时,可以不必再次登录。该插件内部包括了 SAML断言构件SAC,用来对IAS发布 的断言进行解析。经过该插件过滤的用户请求中包含经过认证后的用户名或用户假名,以 及在认证过程中获得的属性信息。3.域定位系统(DLS): DLS主要负责为各信任域的IAS服务器之间进行彼此定位,为 各域用户提供其身份认证域的选择,并重定向用户请求。DLS通过维持与用户的会话状态, 记录用户的选择,从而辅助实现跨域访问时的单点登录。如果用户系统不存在跨域认证的 需求,只应用于单域管理模式,可以不安装该子系统,只需安装身份认证系统(IAS)以 及认证状态过滤构件(ASF),这一点也体现了本发明的跨域认证系统具有灵活组装,适 应多种环境的特点。以上描述的身份认证系统、认证状态过滤构件以及域定位系统组成了本发明所要提供 的跨域认证中间件系统。它可以灵活的与应用系统进行结合,通过在实际物理环境中搭建 一套该系统来保护应用系统的安全。这是一种传统的系统应用模式。除此之外,该系统还可以搭建于可信第三方,向应用系统提供托管式认证服务。应用 系统无需专门搭建认证系统,只需向可信第三方注册并申请托管式认证服务,就可以对用 户进行身份验证。这是一种适应于SOA架构开发的系统应用模式。在这种应用模式下, 托管服务由可信第三方搭建身份认证子系统IAS来实现,同时需要引入两个独立的构件 认证服务管理构件(ASMC, Authentication service Management Component)以及身份管理 构件(IMC, Identity Management Component)。认证服务管理构件ASMC,负责整个托管 服务的管理,包括应用系统的注册与审核,认证服务的添加与删除,应用系统间的信任联 盟的建立与维护等。身份管理构件IMC负责对用户身份信息的管理,可以选择两种模式 用户注册型与管理员添加型,同时应用系统可以自由定义用户身份信息包含的属性名称及 类型。这两个构件主要负责提供服务注册、注销以及认证过程之前的一些管理功能,整个 认证服务的主体过程是由上面介绍的IAS中的其他构件来提供的。根据托管程度的不同,应用系统可以根据自身需要,选择三种托管模式跨域互联托管,认证托管以及身份管理托管。■跨域互联托管是指,应用系统可以自由选择与哪些系统建立信任关系,形成信任
联盟,同时它还可以选择互联模式单向互联还是双向互联。在双向互联模式下,应用系 统既允许其他信任系统的用户访问自己的资源,也支持自己的用户访问其他系统的资源。 单向互联模式下,应用系统不支持自己的用户访问其他系统的资源。在跨域互联托管模式 下,应用系统自己完成对本系统内用户的身份认证,然后可信第三方将其认证结果转化为 通用凭证,从而联盟内其他用户可以识别该用户身份。该模式适用于已成熟的只能工作于 单域模式下的应用系统。■认证托管是指,应用系统自己维护用户身份管理,但将认证交由可信第三方来处 理。这里应用系统可以选择单域认证或跨域认证,前者可信第三方只为应用系统提供其内 部用户的认证功能,后者在认证的基础上,同时增加了跨域互联托管服务。该模式适用于 新开发的应用系统,但用户数据己经存在的情况。■身份管理托管是指,应用系统将身份管理、认证都交由可信第三方来管理。对于 身份管理,应用系统可以选择两种方式用户自己注册或者系统管理员添加。当用户访问 应用系统时,可信第三方不仅提供认证结果,还提供用户属性信息的查询。该模式适用于 一个全新的应用系统。本发明的跨域认证中间件系统具有如下特点1. 从系统功能的角度而言,该系统可提供跨域访问过程中需要的跨域认证、跨域单点 登录、用户匿名访问、用户属性查询、身份联合等功能,能够充分满足实际应用对跨域认 证系统提出的各种需求。2. 从系统设计的角度而言,该系统秉承中间件系统的设计原则,采用"认证系统+认 证插件"的分布式架构,实现了认证与业务相分离的目标,并采用安全断言标记语言作为 认证结果的发布形态,具有良好的通用性,可以与各种平台下的应用系统无缝结合。同时 它采用了构件组装技术实现,使得整个系统具有非常大的灵活性。它可以根据具体应用场 景的不同,实现系统功能的自由裁剪,包括是否提供用户匿名、是否提供属性査询、是否 提供身份联合,而整个系统也可以选择工作于跨域模式还是单域模式下。3. 从系统应用的角度而言,该系统一方面可以与具体的应用系统相结合,由管理员搭建一套实际的系统来保护应用系统的安全,另一方面,该系统也可采用SOA的设计思想,搭建于可信第三方,向应用系统提供托管式认证服务,应用系统无需专门搭建认证系统, 只需向可信第三方注册并申请托管式认证服务,就可以对用户进行身份验证。采用服务的 模式,避免了系统管理人员对认证系统的维护,任何对认证系统的升级或修改对应用系统
而言都是透明的,从而更进一步简化了系统建设的成本。


图1表示现有技术中Shibboleth系统的信任体系结构。 图2表示本发明跨域认证方法采用的信任体系结构。 图3表示本发明跨域认证系统的网络拓扑结构。 图4表示本发明身份认证系统的结构组成。 图5表示本发明跨域认证方法具体流程。图6表示为本发明身份认证系统的AMC构件请求处理模块的内部流程。 图7表示本发明身份认证系统的AMC构件认证结果发布模块的内部流程。
具体实施方式
下面通过具体实施例结合附图对本发明作更详细的说明。 一、跨域认证方法本实施例基于如下的情景设定,域A与域B建立互信关系,允许各自用户跨域访问对 方资源。现有域B的某用户,希望通过浏览器访问位于域A的应用系统SPA, SPa要求対 其进行身份认证。因此,在该设定中,域B为用户域,域A为目标域。图5显示了该用户跨域认证的整个流程,具体内容如下1、 位于域B的用户向域A的SPA发送访问请求;2、 位于SPA上的ASFA构件截获该请求,判断用户会话状态,若有会话,则直接获取 相应的用户信息,然后完成认证,否则缓存用户访问请求,将用户重定向至域A的身份认 征系統IASa,重定向消息包含两个参数(SPID,ASID),其中SPID为SPA在域A的标识 符,ASID是用户本次访问SPA的唯一标识;3、 域A的IASA子系统接收到由本域ASFA转来的用户请求,判断用户会话状态,如 果有会话信息,就直接调用本地AMC构件发布认证断言,再次将用户重定向至SPA中的 ASFa枸件,转至步骤7;如果没有会话信息且DLS服务已开启,就缓存请求中的(SPID, ASID),然后将用户重定向至DLS服务,重定向信息为新的二元组(IASID,AIID),其 中IASID为IASA的唯一标示符,AIID是用户本次访问IASA的唯一标识,并转到步骤4;
否则,就表示该域只支持单域认证,直接将请求转至本域的PAC构件对用户进行认证,然 后将带有认证信息的用户请求发给AMC构件,转至步骤6;4、 DLS接到用户请求后,检测是否有该用户的所属域信息,如果没有就让用户选择其所属的用户域(步骤3-1),并记录;如果有就直接提取用户的身份管理域信息,然后 把用户重定向到其选择的用户域内的IAS进行处理,这里假设用户选择域B;5、 域B的IASB接到用户请求,判断请求来自其信任的域,获取其IASID,然后判断 用户的会话状态,如果有会话信息,就提取本地缓存的用户对象,直接调用本地的AMC 构件发布认证断言;如果没有,就调用本地的PAC构件对用户进行认证(步骤5-l),并 记录用户信息,调用AMC构件发布认证断言;然后根据配置文件中记录的IASA的信息,将用户重定向至IASA;6、 域A的IASA接到转发来的用户请求,判断是由域B的IASB重定向来的用户请求 后,解析IASB发布的认证断言,缓存其中的用户信息,调用本地AMC构件发布认证断言, 然后根据请求中的AIID从缓存中提取步骤2中记录的初始请求参数(SPID, ASID),根 据SPID从配置文件中获得SPa的信息,将用户重定向至SPA;7、 spa中的ASFA构件对由IASA转发来的用户请求进行处理,解析其中IASa友布的 认证断言,认证通过,则允许用户进行访问,同时缓存用户信息。跨域认证处理流程结束。其中,AMC构件内部处理流程分为两个部分,分别由HTTP请求处理模块以及认证 结果发布模块来完成。HTTP请求处理模块的内部流程如图6所示,具体内容如下1、 检査用户会话状态,如果有会话信息,就从缓存中获取用户对象,转至步骤3;如 果没有,转至步骤2;2、 检查用户请求中包含的参数,判断请求类型如果请求中含有本地PAC构件提供的认证信息,就为该用户建立一个用户对象,记录 用户信息,并根据请求中包含的SPID还是IASID来判断认证断言是向本地SP发布还是向 外域IAS发布,然后转至步骤3;如果请求中包含外域发布的认证断言,就调用SAC组件解析断言,为该用户维护一个 用户对象,记录用户信息,同时根据请求中返回的AIID,从缓存中获取之前该用户请求的 SPID和ASID,并标记断言发布类型为向本域SP发布;然后检查是否为身份联合用户, 如果不是,标识用户为外域,转至步骤3;如果是,就检查本地身份联合构件是否开启,
如果没有,就通知用户域本地不支持身份联合;如果开启,就调用身份联合构件,査询该 用户在本地信息,更新用户对象信息,转至步骤3;如果请求中没有上述两种认证信息,就检查请求中包含SPID还是IASID,即判断是 本地SP转发来的用户请求还是外域IAS转发来的。如果是前者,就缓存请求中的 (SPID,ASID),并生成新的用户访问标识(AIID),然后将用户重定向至DLS服务,重 定向信息包括(IASID, AIID),其中IASID为本域IAS的唯一标示符。如果是后者,就 转到本地PAC构件处理该用户请求;3、输出用户对象,断言发布类型以及断言依赖方的标识(SPID或IASID).。 HTTP请求处理模块处理结束后,AMC构件将用户请求及用户对象交给认证结果发布 模块进行后续处理。其内部流程如图7所示,具体内容如下① .根据断言发布类型进行判断,如果是向本域SP发布,就转至步骤G),如果是向外 域IAS发布,就转至步骤G);② .检查身份联合构件IFC是否启用。如果启用,就调用该构件,査询用户与外域的 关联假名,生成新的用户对象,转至步骤 ;如果未启用IFC,转至步骤③;③ .检查匿名访问构件AAC是否启用,如果启用,就调用AAC构件,它负责接收AMC 构件发送来的用户对象,根据其中的用户名,生成相对应的假名,并在缓存中维护一个真 名-假名列表,然后更新该用户对象信息;④ .检查属性査询构件ARC是否启用,如果启用,则调用该构件。它根据断言依赖方 标识(SPID或IASID)以及用户对象,检査是否巳预先建立了与这个依赖方对应的属性査 询列表,如果有,就按该属性查询列表查询用户属性,并更新用户对象。如果没有,则不 进行操作;调用SAML断言组件,根据用户对象内的信息生成认证断言,该断言使用该域的 私钥进行签名;根据断言依赖方标识从配置文件中获取相应实体的信息,将认证断言加入用户请 求,并重定向至该实体。二、用户联合身份的建立及使用过程本实施例中的用户联合身份的建立及使用是由身份联合组件IFC提供。其具体实施场 景为,用户在两个域域A和域B同时拥有身份信息,为了在跨域访问资源时实现身份的 自由转换,该用户需要在两个身份间建立联合关系,具体过程如下1、 用户访问域A的身份联合服务,使用其在域A中的身份UIDA进行认证;2、 认证通过后,身份联合服务询问用户域进行身份联合的目标域;3、 用户选择目标域B,域A的身份联合服务生成一个假名PSEu,并向身份联合数据 库内添加一条记录,该记录包含目标域标识DIDB, UIDa和PSEu,然后将用户请求转发至 域B的身份联合服务,请求内包含域A的标识DIDa和PSEu;4、 用户使用其在域B中的身份UIDB进行认证;5、 认证通过后,域B内的身份联合服务在身份联合数据库中添加一条记录,包含域 A的标识DIDA, UIDb和PSEu,然后将用户重定向回域A;6、 域A向用户返回身份联合成功的响应,身份联合建立过程结束。 用户使用联合身份进行访问的具体过程如下1、 当用户访问域A时,如果用户已经在域B登录,则域B的AMC构件调用IFC构 件检查用户与域A的联合身份,然后获取联合假名PSEu,并用概率加密算法进行加密, 更新用户对象中的联合假名信息。然后AMC构件发布认证断言,将用户重定向至域A。2、 域A的AMC构件接到用户请求,从中获得域B发布的认证断言,解析并判断是 否为身份联合用户。如果是,就调用IFC构件,对断言中的加密后假名进行解密,然后查 询数据库,获得用户真名,建立用户对象,记录用户信息。将用户对象交给AMC构件继 续处理。
权利要求
1. 一种跨域认证方法,包括下列步骤a. 用户向目标域中的目标应用系统发送访问请求;b. 所述目标应用系统检测其缓存中是否存在该用户的认证信息,若是,则允许访问;若否,则交由该目标域的身份认证系统进行认证;c. 所述目标域的身份认证系统检测其缓存中是否存在该用户的认证信息,若是,则将其发送至所述目标应用系统后执行步骤g;若否,则由域定位系统作后续处理;d. 所述域定位系统根据其维护的信息确定用户域或由用户选择用户域后,交由用户域的身份认证系统进行认证;e. 所述用户域的身份认证系统检测其缓存中是否存在该用户的认证信息,若是,则从缓存中获得该认证信息;若否,则由用户选择系统支持的认证方式进行身份认证,获得并缓存用户认证信息;所述用户域的身份认证系统将认证信息发送至目标域的身份认证系统;f. 所述目标域的身份认证系统缓存该认证信息,并将其发送至所述目标应用系统;g. 所述目标应用系统缓存该认证信息,确认该认证信息可信后允许用户访问。
2. 如权利要求1所述的跨域认证方法,其特征在于,所述认证信息包括用户名,且, 在步骤e中,用户域的身份认证系统在将认证信息发送至目标域的身份认证系统前,査询该用户是否建立联合身份,若是,则将认证信息中的用户名替换成对应的联合假名;其中,所述联合身份通过分别在目标域和用户域的身份认证系统中储存包含本域用户 名,联合假名和对方域的域标识的数据组合而建立。
3. 如权利要求1所述的跨域认证方法,其特征在于,所述认证信息包括用户名,且, 在步骤e中,用户域的身份认证系统在将认证信息发送至目标域的身份认证系统前,建立并维护和所述用户名对应的假名,然后将认证信息中的用户名替换成所述的假名。
4. 如权利要求1所述的跨域认证方法,其特征在于,所述认证信息包括用户的属性信息。
5. 如权利要求1所述的跨域认证方法,其特征在于,所述认证信息包括用户名,且在步 骤g)之后,还包括下列步骤h. 用户请求访问所述目标应用系统上的资源; i.所述目标应用系统检测其缓存中是否存在该用户的特定属性的属性信息,若是,则 获取所述属性信息后判断是否允许访问;若否,则交由目标域的身份认证系统查询所述属 性信息;j.目标域的身份认证系统将所述特定属性映射为用户域对应的属性后向用户域的身 份认证系统査询所述用户域属性;k.用户域的身份认证系统获得所述用户域属性的属性信息后将其发送给目标域的身 份认证系统;1.目标域的身份认证系统将收到的属性信息转化为本域应用系统所需的目标域属性 信息,并将其发送给所述应用系统;m.所述应用系统根据所述目标域属性信息判断是否允许访问。
6. —种跨域认证系统,包括一个域定位系统,和该域定位系统数据连接的一个或多个身 份认证系统,以及一个或多个应用系统,每个应用系统上均含有一个认证状态过滤插件, 其特征在于,各个身份认证系统只和该身份认证系统所在的域内部的一个或多个应用系统 数据连接, 一个域只包含一个身份认证系统;其中,身份认证系统负责本域内的用户认证及认证信息维护,包括认证管理构件和可插拔认 证构件;认证管理构件提供认证的整体框架,负责各构件的组装与调用; 可插拔认证构件实现对用户的认证,支持多种认证方式; 认证状态过滤插件实现用户访问请求的过滤-,域定位系统实现各域的身份认证系统之间的相互定位,并维护用户的用户域列表。
7. 如权利要求6所述的跨域认证系统,其特征在于,身份认证系统还包括属性査询构件, 其接受査询请求并査询用户的各项属性。
8. 如权利要求6所述的跨域认证系统,其特征在于,身份认证系统还包括匿名访问构件, 其实现用户假名的生成,维护用户名和假名之间的对应列表,提供用户名和假名查询。
9. 如权利要求6所述的跨域认证系统,其特征在于,身份认证系统还包括身份联合构件,其实现用户在各域间的身份联合,以及身份联合关系的删除和査询。
全文摘要
本发明公开了一种跨域认证方法及其系统,属于计算机技术领域。本发明方法包括访问请求依次由目标域的应用系统和身份认证系统,域定位系统直至用户域的身份认证系统检测缓存中是否存在认证信息,是则直接提取;否则在用户域的身份认证系统进行身份认证,缓存认证信息后发送至目标域的身份认证系统;由其缓存后发送至应用系统;缓存并确认可否访问。本发明系统包括一个域定位系统,一个或多个身份认证系统,一个域只包含一个身份认证系统,每个域包括一个或多个应用系统,每个应用系统上均含有一个认证状态过滤插件。本发明信任关系层次清晰,易于管理;功能全面,适用范围较广;支持灵活简便的跨域访问控制。
文档编号H04L9/32GK101399671SQ20081022684
公开日2009年4月1日 申请日期2008年11月18日 优先权日2008年11月18日
发明者冯登国, 严 张, 张立武, 婧 杨 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1