传输数据对象的方法和装置的制作方法

文档序号:7657761阅读:200来源:国知局
专利名称:传输数据对象的方法和装置的制作方法
技术领域
本发明涉及一种改进的数据处理系统,更具体地涉及一种用于多计 算机数据传输的方法和装置。进一步地说,本发明针对联网的计算机系 统。
背景技术
为了降低用户管理成本和改进企业间的相互协作,已经创建了联合 的计算空间。联盟是拥护特定协作标准的企业的柏喻联合体。对于联盟 内的用户,针对特定的计算操作联盟提供企业间的信任机制。例如,一个联盟伙伴可以担任用户的主域(home domain)或标识提供商。同一联管理,例如接受:用户的标识提供商、提"的单点登录令牌:'''在企业提出支持联合商业交互时,这些企业应当提供反映增强两个 商务之间的合作并使用户的操作负担最小化的用户体验。在这些联盟 内,这些企业已经开始相互协作,以支持用户可能毫无察觉或稍有察觉 的多种联盟协议。例如,联合的企业可以执行多种类型的操作用于用户 账户管理,例如管理用户特有的别名标识符,这可能需要与用户进行最 小限度的交互以完成操作。联合的企业应当合作到使用户对此类型操作 协调的底层机制不会感到困惑或感到负担过重的程度。但是,在联盟内实施这些操作时应当考虑到折衷。各种操作,比如 那些完成操作可能需要与用户进行最小限度的交互的操作,也应该以对 于联合的企业高效的方式来执行,尤其是对于可能需要横跨企业内部的 所有用户的那些类型的^Mt。例如,当需要对成千上万的用户比如特定 企业的所有客户执行特定操作时,要求执行该操作的机制是能够升级 的,从而不会使联合的企业的计算资源负担过重,然而这些不同类型的
操作可以以对巻入必要操作的联合企业的负担发生变化的各种方式来实 施。解决联合的企业内的计算资源上的负担的一种办法是在分布式数据 处理系统内实施联合的功能。例如,标识提供商的服务可以在分布式数 据处理系统内支持。但是,分布式数据处理系统的特性可能存在问题,执行这些联合的协议操作的;能非常复杂。Z ' '更具体地说,联合的实体,比如标识提供商和服务提供商,在联合的环境内生成数据对象。许多联合的操作或协议简档(profile)使用工件 (artifact)来检索数据对象。工件引用的数据对象和相关联的工件之间的 引用关系必需在任何联合的计算环境中保持,而不管联合的实体是否实 施为分布式数据处理系统类型。尽管使用工件执行联合的协议操作的功 能可以实施为分布式数据处理系统,但是分布式数据处理系统的特性会 使任何的该实施变得非常复杂。因此,实施联合企业及其计算基础设施使得联合企业的数据处理系 统内的联合协议操作能够高效并可配置地进行管理将是非常有利的。在 分布式数据处理系统内有效实施用于联合协议操作的功能,尤其是用于 执行使用工件的联合协议操作的功能将更加有利。发明内容提供一种通过使用工件在联合计算环境内的联合实体之间传输数据 对象的方法、装置和计算机程序产品。比如服务提供商的第一联合实体 从比如标识提供商的第二联合实体接收工件。第二联合实体生成数据对 象比如断言(assertion)或任何其它类型的数据对象,用于根据第二联 合实体和第 一联合实体之间的信任关系在第 一联合实体中使用或者由第 一联合实体使用,并且工件引用由第二联合实体本地(local)存储的数据 对象。第二联合实体实施为具有一组数据处理系统的分布式数据处理系 统,每一个数据处理系统能够生成工件及其相关的数据对象.每一个工 件包括指示生成断言的第二联合实体的该组数据处理系统内的数据处理
系统的标签。第二联合实体的该组数据处理系统中的第 一数据处理系统从第 一联 合实体接收包含工件的数据对象检索请求。工件和标签由笫一数据处理系统从数据对g索请求中提取,然后由第 一数据处理系统使用以便从 第二联合实体的该组数据处理系统的第二数据处理系统检索相关的对象数据,并且数据对^险索响应从第二联合实体返回第一联合实体。


本发明的新颖特征在所附权利要求中阐明。从下面结合附图的详细描述中,本发明自身、进一步的目的及其优点将变得更加清楚。其中 图1A示出^个均可以实施本发明的多个数据处理系统的典型网络; 图1B示出可以在能够实施本发明的数据处理系统中使用的典型计算机体系结构;图2示出说明针对由用户对第一联合企业发起的事务的联合环境的 术语的方框图,第一联合企业在响应中调用联合环境内下游实体处的动 作;图3示出说明在给定域现存数据处理系统与可以用来支持本发明实 施例的某些联合体系结构组件的集成的方框图;图4示出说明其中联合体系结构内的一些组件可以用来建立信任关 系以支持本发明的实施的示例方式的方框图;图5示出根据能够支持本发明的示例联合体系结构、使用信任代理 和信任经纪说明联合域之间的信任关系的示例集合的方框图;图6示出说明支持联合单点登录操作的联合环境的方框图;图7示出说明在用于实施联合用户生命周期管理功能的联合域中的 一些组件的方框图以便支持本发明;图8示出实施为分布式数据处理系统的联合实体的方框图,以便支 持工件引用的数据对象的分布式检索;图9A-9B示出其中实施为具有多个数据处理系统的分布式计算系统 的联合实体支持使用工件内的根源标签(authorship tag)进行工件引用的
数据对象的检索的场境的方框图;图9C示出将使用DPS根源标签以引用分布式联合实体内的数据处的方冲匡图;以及图10示出使用多个数据处理系统实现的分布式标识提供商内的处 理过程的流程图,每一个数据处理系统支持使用与断言相关联的工件内 的根源标签进行分布式断言检索。
具体实施方式
一般而言,可能包括或者与本发明相关的设备包括各种不同的数据 处理计数。因此,作为背景,在详细描述本发明之前首先描述分布式数 据处理系统内的硬件和软件组件的典型组织。现在参照附图,图1A示出每一个均可以实施本发明的多个数据处 理系统的典型网络。分布式数据处理系统100包含网络101,作为用于 在分布式数据处理系统100内连接在一起的各种设备和计算机之间提供 通信链路的介质。网络101可以包括诸如有线或光纤光缆的永久连接或 者通过电话或无线通信构成的临时连接。在所示的示例中,服务器102 和服务器103连接到网络101以及存储单元104。另外,客户机105-107也连接到网络101。客户机105-107和服务器102-103可以用>^种计 算设备来代表,例如大型机、个人计算机、个人数字助理(PDA)等。分 布式数据处理系统100可以包括未示出的额外的服务器、客户机、路由 器、其它设备、以及对等体系结构。在所示的示例中,分布式数据处理系统100可以包括因特网,使用 网络101代表使用各种协议彼此进行通信的网络和网关的环球集合,这 些协议比如包括LDAP(轻量级目录接入协议)、TCP/IP(传输控制协议/ 因特网协议)、HTTP(超文本传输协议)等。当然,分布式数据处理系统 100也可以包括各种不同类型的网络,比如内部网、局域网(LAN)、或 广域网(WAN)。例如,服务器102直接支持客户机109和网络110,其 结合有无线通信链路.网络电话111通过无线链路112连接到网络通过无线链路114连接到网络110。电话Ml和 PDA 113也可以使用适当的技术比如蓝牙无线技术通过无线銜洛115在 它们之间直接传输数据,以创建所谓的个人区域网或个人专用网。以类 似的方式,PDA 113可以通过无线通信链路116传输数据给PDA 107。本发明可以在各种硬件平台和软件环境下实施。图1A仅仅作为异 机种的计算环境的一个实例,并不用作本发明的体系结构限制。现在参照图IB,示出可以实施本发明的如图IA所示的那些数据处 理系统的典型计算机体系结构。数据处理系统120包含一个或多个连接 到内部系统总线123的中央处理单元(CPU)122,系统总线123互连随机 存取存储器(RAM)124、只读存储器126、以及支持各种I/O设备(诸如 打印机130、盘单元132或比如音频输出系统的未示出的其它设备)的输 A/输出适配器128。系统总线123还连接通信适配器134,用以提供到 通信链路136的访问。用户接口适配器148连接各种用户设备,比如键 盘140和鼠标142、或其它未示出的设备比如触^、指示笔、麦克风 等。显示适配器144将系统总线123连接到显示i殳备146。本领域的技术人员应该理解图IB所示的硬件可以根据系统的实施 而相应变化。例如,系统可以具有一个或多个处理器(比如基于Intel Pentium的处理器以及数字信号处理器(DSP))、以及一种或多种类型的 易失性和非易失性存储器。除了图IB所示的硬件,也可以使用其它外 围设备或者用来替换图IB所示的硬件。所示的实例并不意味着对本发 明的体系结构限制。除了能够在各种硬件平台上实施之外,本发明也可以在各种软件环 境中实施。典型的操作系统可以用来控制在每一个数据处理系统内的程 序执行。例如, 一个设备可以运行Unix操作系统,而另一个i殳备包含 简单Java运行时间环境。代表性的计算机平台可以包括浏览器,用于 访问各种格式,比如图形文件、字处理文件、可扩展标记语言(XML)、 超文本标记语言(HTML)、手持设备标记语言(HDML)、无线标记语言 (WML),以及其它各种文件格式和类型的超文本文档的公知软件应用 程序。应该指出的是,图1A所示的分布式数据处理系统完全能够支持 各种对等子网和对等服务。给出一些当前技术的上面的简要描述之后,下面剩余附图的描述将 涉及能够运行本发明的联合计算环境。但是,在详细讨论本发明之前, 首先引入一些技术术语。技术术语术语"实体(entity)"或"方(party)"—般地指组织、个体或系统,代表 组织、个体或其它系统来运行。术语"域(domain)"意味着网络环境内额 外的特征,不过术语"实体"、"方"和"域"能够可互换地使用。例如,术 语"域"也可以指DNS(域名系统)域,或者更具体地指包括对于外部实体 显现为逻辑单元的各种设备和应用的数据处理系统。术语"请求(request)"和"响应(response)"应该理解为包括适宜涉及特 定操作的信息,比如消息、通信协议信息或其它相关信息的传输的数据 格式。受保护的资源是对其访问受到控制或限制的资源(应用、对象、 文档、页面、文件、可执行代码、或其它计算资源、通信类型的资源等等)。令牌提供成功操作的直接证据并且由执行该操作的实体产生,例如 在成功认证操作之后生成的认证令牌。Kerberos令牌是可以在本发明中 使用的认证令牌的一个具体实例。关于Kerberos的更多信息可以在 Kohl等的"The Kerberos Network Authentication Service (V5)", Internet Engineering Task Force (IETF) Request for Comments (RFC) 1510, 09/1993中查找。断言提供某些动作的间接证据。断言可以提供标识、认证、属性、 授权决策、或者其它信息和/或操作的间接证据。认证断言提供通过不 是认证服务而是收听认证服务的实体认证的间接证据。安全断言标记语言(SAML)断言是可以在本发明中使用的可能的断 言格式的一个例子。SAML由非赢利性的全球社团"结构化信息标准发 展组织(OASIS , Organization for the Advancement of Structure Information Standards)"发布》 在"Assertions and Protocol for the OASIS Security Assertion Markup Language (SAML),,, Committee
Specification 01,05/31/2002中SAML被描述如下安全断言标记语言(SAML)是用于交换安全信息的基于XML的框 架。该安全信息以关于主体的断言的形式表达,其中主体是在某些安全 域中具有标识的实体(人或者计算机)。主体的典型例子是通过他或她的 特定因特网DNS域中的电子邮件地址标识的人。断言可以传达关于主 体执行的认证动作的信息、主体的属性、以及关于是否允许主体访问特 定资源的认证决策。断言表示为XML构造并且具有嵌套结构,从而单 个断言可能包含关于认证、授权和属性的数个不同的内部语句。注意包 a证语句的断言仅仅描述先前发生的认证的动作。断言通过SAML 授权局,即iUiMt权局、属性授权局和策略决策点来发布。SAML定义 通过其客户机能够向SAML授权局请求断言并且从中得到响应的协 议。该协议包括基于XML的请求和响应消息格式,可以绑定到许多不 同的底层通信和传输协议;SAML当前定义一种绑定,通过HTTP到 SOAP。 SAML授权局在创建响应时可以使用各种不同的信息资源,比如作为请求中的输入所接收的外部策略库和断言。因此,虽然客户机总 是消耗断言,但是SAML授权局可以是断言的生产者和消耗者二者。SAML规范声明断言是提供发布者作出的一个或多个语句的信息 包。SAML允许发布者作出三种不同类型的断言语句认证,其中指定的主体通过特定的方式在特定的时间进mui;授权,其中允许指定的主体访问指定的资源的请求已经被授权或拒绝;以及属性,其中将指定 的主体与所供应的属性相关联。如下文中将进一步讨论的,需要时可以 将各种断言格式翻译成其它断言格式。认证是ll^由用户提供或者代表用户提供的一组证书的过程。认证 通过证实用户知道某事、用户具有某物、或者用户是某人,即关于用户 的某些物理特征来实现。用户知道的某事可以包括共享的秘密,比如用 户口令,或者通过证实仅被特定用户知道的某物,例如用户的加密密 钥。用户具有的某物可以包括智能卡或硬件令牌。关于用户的某些物理 特征可以包括生物测量输入,例如i旨紋或视网膜地图.应该指出的是, 用户通常是但不一定必须是自然人,用户可以是机器、计算设备、或使
用计算资源的其它类型的数据处理系统。还应该指出的是,用户通常拥有但不一定必须拥有单个唯一的标识符;在某些场境下,多个唯一的标 识符可以与单个用户相关联。认证证书是用在各种认证协议中的一组询问/响应信息。例如,用户 名和口令组合是认证证书的最熟知形式。认证证书的其它形式可以包括 各种形式的询问/响应信息,公共密钥基础设施(PKI)证明、智能卡、生 物测量等。认证证书与认证断言不同认证证书作为认证协识>列的一 部分由用户呈现给认证服务器或服务,而认证断言是关于成功呈现和验 证用户的认证证书的语句、并且随后如果需要则在实体之间传输。用于能够结合本发明的计算环境的联盟模型在环球网的语境中,用户期望关于最小的每一个特定域之间的信息 屏障、而从与 一个因特网域上的应用的交互跳跃到另 一个域上的另 一个 应用的能力。用户不希望针对单个事务必须在多个域上认证所造成的受 挫。换句话说,用户期望组织应该相互协作,但是用户通常希望域尊重 他们的隐私。另外,用户可能更喜欢限制永久存储私有信息的域。这些 用户期望在快iUO艮的、许多企业和组织争相发布竟争认证技术的异质 结构环境中大量存在。本发明在允许企业为用户提供单点登录体验的联盟模型内得到支 持。换句话说,本发明可以在联合的、异质结构的环境中实施。作为将 受益于联合的异质结构环境的事务的例子,用户能够在一个域中认证, 然后该域提供恰当的断言给事务中可能涉及的每一个下游域。这些下游 域需要能够理解并信任认证断言和/或其它类型的断言,即使在该域和 这些下游域之间没有预先建立的断言格式。除了识别断言之外,下游域 需要能够将包含在断言内的标识翻译成代表特定域内的用户的标识,即 使不存在预先建立的标识映射关系。本发明在联合的环境中得到支持。 一般而言,企业具有其自己的用 户登记并维持与其自己的用户组之间的关系。每一个企业典型地具有其 自己的方式来认证这些用户,但是,在本发明中使用的联合方案允许企 业以集体的方式相互协作,使得一个企业中的用户能够通过企业参与企 业联盟而影响(leverage)与一组企业的关系。用户被授权访问联合的企业 的任何资源,就如同他们已经具有与每一个企业的直接关系。用户不需 要在感兴趣的每一个商业上进行登记,并且用户不需要经常地标识和认 证他们自己。因此,在该联合的环境中,认证方案允许在信息技术领域 快速:S^艮的异质结构环境中进行单点登录体验。在本发明的上下文中,联盟是一组相互协作以为用户提供单点登 录、轻;^体验的独特的实体,比如企业,企业内的逻辑单元、组织、机 构等;联合环境不同于典型的单点登录环境之处在于两个企业不必具有 限定如何传输和传输哪些有关用户的信息的直接的、预先建立的关系。 在联合环境内,实体提供处理认证用户、接受由其它实体呈现的认证断 言例如认证令牌、以及提供某些形式的将担保用户的标识翻译成本地实 体内能够理解的标识的服务。联盟使得服务提供商的管理负担得以减轻。服务提供商可以依赖其 对于作为整体的联合的信任关系;服务提供商不需要管理认证信息,比 如用户口4^ft息,因为可以依赖由用户的认证主域或标识提供商实现的 认证。支持本发明的系统也关注联合标识管理系统,其建立其中松散联合 认证、用户登记、用户简档管理和/或授权服务跨安全域合作的基础。 即使在这些全异域的底层安全机制和操作系统平台中可能存在差异,联 合标识管理使得驻留在全异安全域中的服务也能够安全地互操作和合 作。标识提供商vs.服务提供商如上文中提到的以及下面将进一步说明的,联合环境提供显著的用 户优越性。联合环境允许用户在笫一实体进行认证,第一实体可以担当 发布有关用户在第二实体使用的认证断言的发布方。然后用户通过呈现 由第一实体发布的认证断言可以访问在第二、独特的实体(称作依赖方)处的受保护的资源,而无需明确地在第二实体进行重新认证。从发布方 传递g赖方的信息是断言的形式,并且该断言可以包含语句形式的不 同类型的信息,例如,断言可以是关于用户的认证标识的语句,或者可 以是关于与特定用户相关的用户属性信息的语句。此外,该信息可以由 依赖方使用,以根据依赖方的访问控制规则、标识映射规则、以及由依 赖方保持的可能的某些用户属性提供对依赖方的资源的访问。现在参照图2,示出说明针对由用户对笫一联合企业发起的事务的 联合环境的术语的方框图,第一联合企业在响应中调用联合环境内下游 实体处的动作。图2表示对于给定的联合操作术语可能根据联盟内实体 的全景(perspective)而不同。更具体地说,图2表明支持本发明的计算 环境支持信任的传递和认证断言过程的传递;域或实体可以根据在由其 它域或其它实体断言的实体中的信任发布断言。用户202通过请求企业204的受保护的资源而发起事务。如果用户 已经由企业204认证或者在事务期间最^被企业204认证,则对于该 联合的会话可以将企业204称作用户的主域。假定事务需要通过企业 206的某类型的操作并且企业204传输断言给企业206,则对于该特定 操作企业204是发布实体,而对于该操作企业206是依赖实体。发布实体发布由依赖域使用的断言;发布实体通常是但是不一定必 须是用户的主域或用户的标识提供商。因此,通常U布方已经使用典 型的认证操作认证了用户的情形。但是,也有可能U布方先前作为依 赖方而从不同的发布方收到断言。换句话说,由于用户发起的事务可能 会通过联合环境内的一系列企业而^,因此接收方接下来可能会作为下游事务的发布方。总而言之,具有代表用户发布认证断言能力的任何 实体都可以担当发布实体。依赖实体是从发布实体接收断言的实体。依赖方能够接受、信任并 且理解由第三方,即发布实体代表用户发布的断言;通常依赖实体的任 务是使用恰当的认^^解#^证断言。依赖方^i依赖于代表用户呈 现的断言或其它实体的实体。以这种方式,能够在依赖实体给予用户单 点登录体验,而不需务农赖实体针对用户的认证证书而提醒用户作为与 用户的交互式会活的一部分。再次参照图2,假定事务需要进一步的操作使得企业206传输断言 给企业208,那么针对随后的或下一级事务操作企业206是担当发布实 体的上游实体,而对于该操作企业208是担当依赖实体的下游实体;在 这种情况下,对于初始的事务可以将企业208看作另一个下游实体,尽 管也可以仅针对两个实体来描述随后的事务。如图2所示,联合实体可以担当用户的主域,其提供关于联合用户 的标识信息和属性信息,联合计算环境内提供标识信息、标识或认证断 言、或者标识服务的实体称作标识提供商。同一联盟内的其它实体或联 盟伙伴可以依赖于标识提供商进行用户的认证证书的主要管理,例如接 受由用户的标识提供商提供的单点登录令牌;对用户进行认证的域可以 称作用户的(认证)主域。标识提供商物理上可以由用户的雇主、用户的 ISP、或者某些其它的商业实体支持。标识提供商是是特定类型的服务,其提供标识信息作为对联合计算 环境内其它实体的服务。对于大多数联合事务,对于认证断言的发布方 通常是标识提供商;任何其它的实体可以从标识提供商区别出来。联合 计算环境内提供服务的任何其它的实体可以归类为服务提供商。 一旦用 户已经进行了到标识提供商的认证,对于给定联合会话或给定联合事务 期间,联盟内的其它实体或企业可以仅被看作服务提供商。在一些情形下,联合环境内可以存在针对用户担当标识提供商的多 个实体。例如,用户可以在多个联合域内具有账户,每一个域都能够担 当针对用户的标识提供商;这些域不一定必须具有关于其它域的信息, 也不一定必须具有关于不同域中用户的标识的信息。尽管联合环境内可能存在担当标识提供商的多个企业,例如由于存 在具有生成和IHiE用户的认证证书等能力的多个企业,但是联合事务通 常仅涉及单个标识提供商。如果仅有单个能够认证用户的联合实体,例 如由于联盟内存在一个并且仅存在一个用户已经与其执行了联合登记或 注册操作的实体,那么将期望该实体担当用户的标识提供商,以便贯穿 联合环境支持用户的亊务。在需要多个服务提供商的相互协作的某些联合事务内,下游服务提 供商可以从上游服务提供商接受断言;其中上游服务提供商可以作为正 在用作依赖方的下游服务提供商的发布实体的条件取决于服务提供商之 间的信任关系的类型和服务提供商之间的亊务的类型。但是,在简单联 合事务的范围内,仅有一个实体用作发布实体。本发明可以在给定计算环境内得到支持,其中可以将联合的基础设 施添加到现有系统中,而同时最小化对现有的非联合体系结构的影响。 因此,在任何给定企业或服务提供商的包括认证操作的操作不一定必须 随着实体也可以参与联合环境这一事实而改变。换句话说,即使实体的 计算系统可能会集成到联合环境中,但是用户仍然可以以非联合的方式 直接与企业执行包^i人证操作的各种操作。但是,用户可以具有相同的 终端用户体验,而同时执行针对给定实体的联合操作,就象用户已经以 非联合的方式与给定实体执行了类似的操作。因此,应该指出的是,在 给定企业参与联盟时,不是所有的给定企业的用户都必须参与联合事务;企业的一些用户可以与企业的计算系统交互而不执行任何联合事 务。此外,给定企业的计算环境内的用户注册,例如在计算机系统中建 立用户账户,不一定必须随着企业可能参与联合环境这一事实而改变。 例如,用户仍然可以通过独立于联合环境的遗留或现存注册过程在域内 建立账户。因此,在某些情况下,当企业参与到联合计算环境时,在企 业内用户账户的建立可以包括也可以不包括在联盟内有效的账户信息的 建立'联合体系结构--针对遗留系统的联盟前端现在参照图3,示出在给定域现存数据处理系统与可以用来支持本 发明实施例的某些联合体系结构组件的集成的方框图。联合环境包括为 用户提供各种服务的联合实体。用户312与能够支持浏览器应用316和 各种其它客户机应用318的客户机314交互。用户312与客户机设备 314、浏览器316、或用作用户与其它设备和服务的接口的任何其它软件 不同.在某些情况下,下面的描述将对明显在客户机应用中动作的用户 和代表用户动作的客户机应用加以区分。然而,通常请求者是可以假定 为代表用户动作的媒介,例如基于客户机的应用、浏览器、SOAP客户 机等.
浏览器应用316可以是典型的浏览器,包括在移动i殳备上建立的那 些,浏览器应用316包括许多模块,比如HTTP通信组件320和标记语 言(ML)解释器322。浏览器应用316也可以支持插件,比如网络服务客 户机324和/或可下载的小程序,其可能需要或不需要虚拟机运行时间 环境。网络服务客户机324可以使用简单对象接入协议(SOAP),其是 一种用于在分散、分布式环境中定义结构化和分类型的信息的交换的轻 量级协议。SOAP是基于XML的协议,包括三个部分信封,定义用 于描述消息中有什么和如何处理的框架; 一组编码规则,用于表达应用 限定的数据类型的实例;以及协定,用于表示远程例程调用和响应。用 户312可以使用浏览器应用316访问基于网络的服务,但是用户312也 可以通it^户机设备314上的其它网络服务客户机访问网络服务。 一些 联合操作可以通过用户浏览器使用HTTP重定向,以在联合环境中的实 体之间交换信息。但是,应该指出的是,本发明可以在各种通信协议上 得到支持,并不限于基于HTTP的通信。例如,如果必要联合环境中的 实体可以直接进行通信;消息不一定必须通过用户的浏览器进行重定 向。本发明可以以联合环境所需要的组件能够与现存系统集成的方式得 到支持,图3示出将这些组件实施为现存系统的前端的一个实施例。联 合域的现存组件可以看作遗留应用或后端处理组件330,包M证服务 运行时间(ASR)服务器332,与图4所示的方式类似。在域控制对应用 服务器334的访问时,ASR服务器332负责认证用户,其可以考虑为生 成、检索、或者否则而支持或处理受保护的资源335。域可以继续使用 遗留用户注册应用336以便注册访问应用服务器334的用户。针对遗留 操作认证注册的用户所需要的信息存储在企业用户注册簿338中;企业 用户注册簿338也可以被联合组件访问。在加入联合环境之后,域可以继续操作而没有联合组件的干扰。换 句话说,可以配置域使得用户可以继续直接访问特定的应用服务器或其 它受保护的资源,而不通过接触点(point-of-contact)服务器或实施该接 触点服务器功能的其它组件;以这种方式访问系统的用户将^典型的
认证流和典型的访问。但是,如此作,直接访问遗留系统的用户将不能 建立域的接触点服务器知晓的联M话。
通过使用联盟前端处理340可以将域的遗留功能集成到联合环境, 联盟前端处理340包括接触点服务器342和自身与安全令牌服务 (STS)346交互的信任代理服务器344(或更简单地,信任代理344或信 任服务344),这将在下文中结合附图4进行详细描述。联盟配置应用 348允许管理用户配置联盟前端组件,以使他们通过联盟接口单元350 与遗留后端组件相接。联合功能可以在独立的系统组件或模块中实施。 在优选实施例中,多数执行联盟操作的功能可以通过单个联盟应用内的 逻辑组件集合来实施;联合用户生命周期管理应用352包括信任服务 344连同单点登录协iia艮务(SPS)354。信任服务344可以包括标识和属 性服务(IAS)356,负责作为部分联盟功能的标识映射操作、属性检索 等。标识和属性服务356在单点登录期间也可以由单点登录协议服务 354使用。在某些环境下联盟用户注册358可以用来保持与用户相关的 信息用以联盟特定目的。
在给定企业的遗留或现有认证服务可以使用各种公知的认证方法或 令牌,比如用户名/口令或基于智能卡令牌的信息。但是,在支持本发 明的优选联合计算系统中,通过使用接触点服务器遗留认证服务的功能 可以在联合环境中使用。用户可以继续直接访问遗留认证服务器而不用 通过接触点服务器,尽管以这种方式访问系统的用户将经历典型的认证 流和典型的访问;根据本发明,直接访问遗留认证系统的用户将不可能 生成联合认证断言作为标识证据。联盟前端的一个规则是将在接触点服 务器接收的联合认证令牌翻译成由遗留认证服务理解的格式。因此,通 过接触点服务器访问联合环境的用户将不需要对遗留认证服务进行重新 认证。优选地,用户将通过接触点服务器和信任代理的组合被遗留认证 月良务进^i人证,使得就象用户参加到认证对话一样。
联合体系结构-省触点服务器、信任代理和信任经纪
现在参考图4,示出其中联合体系结构内的一些组件可以用来建立 信任关系以支持本发明的实施的示例方式的方框图。联合环境包括为用
户提供各种服务的联合企业或类似实体。用户通it^户端设备上的应用可以尝试访问不同实体例如企业410的资源。每一个联合企业处的接触 点服务器,比如企业410的接触点(POC)服务器412是到联合环境的进 入点,用于M户端请求访问企业410支持并J^吏其可用的资源。接触 点服务器使得对现有、非联合体系结构例如遗留系统内的现有组件的影 响最小化,因为接触点服务器处理大量的联盟要求。接触点服务器提供 会话管理、协议转换,并且可能发起认证和/或属性断言转换。例如, 接触点服务器可以将HTTP或HTTPS消息翻译成SOAP,反之亦然。 如在下面将进一步解释的,接触点服务器也可以用来调用信任代理来翻 译断言,例如,可以将从发布方接收的SAML令牌翻译成接收方能够 理解的Kerberos令牌。信任服务(也称作信任代理,信任代理服务器或信任服务),比如企 业410的信任代理(TP)414建立并保持联盟内两个实体之间的信任关 系。信任服务通常具有处理认证令牌格式翻译的能力(通过下文中将详 细描述的安全令牌服务),从发布方使用的格式翻译成接收方能够理解 的格式。同时使用接触点服务器和信任服务使得在现有、非联合系统组上实 施联合体系结构的影响最小化。因此,示例联合体系结构需M—个联 合实体实施至少一个接触点服务器和至少一个信任服务,而不管实体是 企业、域还是其它逻辑或物理实体。但是示例联合体系结构不一定必须 对现有、非联合系统组进行任何改变。优选地,对于给定联合实体采用 单个信任服务,虽然为了实用性可能存在多种信任服务实例,或者对于 联合实体内的多个更小实体例如企业内的独立子/>司可能存在多个信任 服务。有可能给定实体属于多于一个联盟,但是该场境不一定必须要求 多个信任服务,由于单个信任服务能够用于管理多个联盟内的信任关 系,信任服务的 一个任务是确定或负责确定另 一个域和/或该域中的信任 服务所需的令牌类型.信任服务具有处理认证令牌格式翻译的能力或责 任,从发布方使用的格式翻译成接收方能够理解的格式。信任服务414
也可以负责针对企业410发生的任意用户标识翻译或属性翻译,或者该 责任可以由独立的标识和属性服务支持,例如图3所示的标识和属性服 务356。另外,信任服务能够支持将别名实施为用于无需提供任何有关 用户的真实世界标识的附加信息而唯一地识别用户的用户标识的代表。 此外,信任代理可以发布由接触点服务器使用的授权和/或会话证书。 但是,如下文中描述的,信任服务可以调用信任经纪来辅助。标识翻译 可能需要将发布方已知的用户的标识和属性映射为对于接收方有意义的 标识和属性。该翻译可以由发布实体的信任服务或接收实体的信任服务 来调用,也可以二者都调用。上面提到的信任服务414独立的标识和属性服务可以包括示为安全 令牌服务(STS)组件416的内部化的组件(或者与其交互),安全令牌服务 组件416提供令牌翻译并调用认证服务运行时间(ASR)418来验证和生 成令牌。安全令牌服务提供信任服务所需的令牌发布和mt服务,可能 包括标识翻译。因此,安全令牌服务包括与现有认证服务运行时间的接 口,或者将认证服务运行时间结合到服务自身。除了包括在信任服务内 部之外,安全令牌服务组件也可以实施为例如由信任服务调用的单独的 组件,或者也可以包括在例如作为应用服务器的一部分的事务服务器之 内。例如,安全令牌服务组件可以接收请求以发布Kerberos令牌。作 为为其创建令牌的用户的认证信息的一部分,该请求可以包含含有用户 名和口令的二进制令牌。安全令牌服务组件将对照例如LDAP运行时间 (典型地认证)!Hi用户名和口令并调用Kerberos KDC(密钥分发中心)以 便为该用户生成Kerberos票据。该令牌返回给信任服务以便在企业内 部使用;但是该使用可以包括使令牌外部化,用于传递给联盟内的另一 个域。用户可能期望访问联合环境内的多个企业例如企业410和企业420 的资源。以类似于上面针对企业410所描述的方式,企业420包括接触 点服务器422、信任服务424、安全令牌服务(STS)426、认证服务运行 时间428。尽管用户可以直接^与每一个企业的独立事务,但是用户
也可以发起通过联合环境级联的、与企业410的事务。企业410可能需 要与联合环境内的多个其它企业比如企业420相互协作,以便完成具体的事务,即使当用户发起事务时用户可能对该必要性毫无知觉。企业 420变为下游实体,如果必要企业410可以呈现断言给企业420,以便 继续用户的联合事务。可能会出现信任服务不知道如何解释由关联的接触点服务器接收的 认证令牌和/或不知道如何翻译给定用户的标识和属性的情况。在这种 情况下,信任服务可以选择调用信任经纪组件比如信任经纪430的功 能。信任经纪保持与单独的信任代理/服务的关系,从而提供信任服务 之间的可递信任。使用信任经纪使得联合环境内的每一个实体比如企业 410和420能够建立与信任经纪的信任关系,而不是建立与联合环境内 的每一个实体的多个单独的信任关系。例如,针对用户在企业410^ 的事务当企业420变为下游实体时,如果必要,企业410的信任服务 414通过调用信任经纪430的辅助能够确保企业420的信任服务424理 解来自信任服务414的断言。尽管图4示出联合环境具有单个信任经 纪,但是联合环境可以具有多个信任经纪。应该指出的是,尽管图4将接触点服务器412、信任服务414、安 全4^牌月艮务组件416、以及认证服务运行时间418表示为独立的实体, 但是无需这些组件在分离的组件上实现。例如,可以将这些分离组件的 功能实施为单个的应用、单个物理设备上的应用、或者多个物理设备上 的分布式应用。另外,图4对一个企业示出了单个接触点服务器、单个 信任服务、以及单个安全令牌服务器,但是可替代的配置对于每一个企 业可以包括多个接触点服务器、多个信任服务、以及多个安全令牌服务 器。接触点服务器、信任服务、安全令牌服务、以及其它联合实体可以 以各种形式实现,例如软件应用、对象、模块、软件库等等.信任服务/STS能接受和验证多种不同的认证证书,包括比如用户名 和口令組合以及Kerberos票据的传统证书、以及包括由笫三方产生的 认证令牌的联合认证令牌格式.信任服务/STS可以允许认证令牌的接 受作为在别处认证的证据.认证令牌由发布方产生并且用于指示用户已
经针对该发布方进行了认证。发布方产生认证令牌作为断言用户的认证标识的一种手段。信任服务/STS也能够处理属性令牌或用于安全通信 会话或对话的令牌,例如用于以类似于SSL会话标识符的方式管理会 话信息的那些令牌。如果必要,安全令牌服务调用认证服务运行时间。认证服务运行时 间支持能够认证用户的认证服务。认证服务担当认证授^,通过认证 响应提供成功或失败认证尝试的指示。信任服务/STS可以内部化认证 服务,例如其中存在不需要与现有遗留基础设施交互的全新网络服务的 安装的场境。否则,安全令牌服务组件将调用外部认证服务用于验证认 证令牌。例如,安全令牌服务组件能够对包含用户名/口令的令牌进行 解包,然后使用LDAP服务访问用户注册以便^所呈现的证书。在由诸如应用服务器的其它组件使用时,安全令牌访问组件能够用 于产生单点登录到遗留认证系统所需的令牌;该功能可以与诸如图3所 示的SPS 354的单点登录协议服务内的功能组合在一起或者由其替代。 因此,安全令牌服务组件能够用来进行令牌翻译,用于内部目的,即在 企业内部,以及用于外部目的,即跨越联盟内的企业。作为内部目的的 例子,网络应用服务器可以通过IBM CICS(客户信息控制系统)事务网 关与主机接口; CICS是提供用于任务评定应用的企业级在线事务管理 和连通性的 一族应用服务器和连接器。网络应用服务器可以调用安全令 牌服务组件将Kerberos票椐(由网络应用服务器内部使用)翻译成CICS 事务网关所需的1BMRACF⑧通行票据。图4中所示的实体可以使用在上面介绍的术语比如"标识提供商"和 "服务提供商"来解释。作为建立和保持信任关系的一部分,标识提供商由此,在从安全令牌服务调用令牌服务时信任服务使用该信息。当需要 标识提供商的信任服务为服务提供商产生认证断言时,信任服务确定所 需要的令牌类型并从安全令牌服务请求适当的令牌。在服务提供商的信任服务从标识提供商接收认证断言时,信任服务 知道其期望哪种类型的断言并知道其需要哪种类型的断言用于服务提供
商的内部使用。服务提供商的信任服务由此根据所接收到的认证断言中 的令牌请求安全令牌服务产生所需要的内部使用令牌。成服务提供商能够理解的格式的能力。信任经纪具有为每一个与其有直 接信任关系的信任服务解释断言格式(或多种格式)的能力,从而允许信 任经纪提供标识提供商和服务提供商之间的断言翻译。该翻译可以由任 何一方通过其本地信任服务来请求。因此,标识提供商的信任服务可以 在将断言发送到服务提供商之前请求断言的翻译。类似地,服务提供商 的信任服务可以请求翻译从标识提供商所接收的断言。断言翻译包括用户标识翻译、认证断言翻译、属性断言翻译、或者 其它形式的断言翻译。重复上述各点,断言翻译由联盟内的信任组件例 如信任服务和信任经纪来处理。信任服务可以在标识提供商或服务提供 商处本地执行翻译,或者信任服务可以从信任经纪调用辅助功能。假定标识提供商和服务提供商已经具有与信任经纪的独立信任关 系,如果必要信任经纪能够动态地创建,即经纪发布方和依赖方之间的 新信任关系。在信任经纪提供初始信任关系经纪操作之后,标识提供商 和服务提供商可以直接保持该关系,以便对于将来的翻译要求无需再调 用信任经纪。应该指出的是,认证令牌的翻译可以在三个可能的地方发生标识提供商的信任服务、服务提供商的信任服务、以及信任经纪。 优选地,标识提供商的信任服务生成信任经纪能够理解的认证断言,以 发送给服务提供商。然后服务提供商请求将该来自信任经纪的令牌翻译 成服务提供商能够识别的格式。令牌翻译可以在认证断言发送之前、发 送之后、或者发送之前和之后两者发生。 ^i务休系结构内的信任关系在能够支持本发明的示例联合环境中,必须对两种类型的"信任域" 进行管理企业信任域和联盟信任域。这两种类型的信任域之间的区别 部分基于约束与信任域的信任关系的商业协定和用于建立信任的技术. 企业信任域包含由企业管理的那些组件;该信任域内的所有组件可以隐含地彼此相互信任。 一般而言,在企业内不需要商业协定来建立信任,
因为配置的技术创建企业内的内在信任,例如通过要求组件之间的相互认证的SSL会话,或者通过将组件置于单个、严格受控的数据中心使 得物理控制和接近证实隐含信任。参照图2B,遗留应用和后端处理系 统可以代表企业信任域,其中组件在安全的内部网上进行通信。联盟信任域是跨越企业界限的那些域;从一方面来看,联盟信任域 可以代表独立的企业信任域之间的信任关系。联盟信任域通过跨越企业 界限的信任代理在联盟伙伴之间建立。信任关系涉及某些类的自举 (bootstrap)处理,通过该处理在信任代理之间建立初始信任。部分该自 举处理可以包括共享的保密密钥以及定义期望的和/或允许的令牌类型 和标识符翻译的规则的建立。 一般而言,该自举处理可以在带外(out-of-band)实施,由于该处理也可以包括约束企业在联盟中的参与以及与该 参与相关的责任的商业协定的建立。存在多种可能的机制用于建立联合商业模型中的信任。在联盟模型 中,联盟参与者之间的信任的基a念对于商业动机是必须的,以便提 供在参与者之间传送的断言(包括令牌和属性信息)是有效的保证级别。 如果没有信任关系,那么服务提供商不能依赖于从标识提供商所接收的 断言;服务提供商不能使用它们来确定如何解释从标识提供商接收的任 何信息'例如, 一个大公司可能想链接数千个全#户,并且该公司可以使 用非联合的解决方案。作为第一个例子,该公司可以要求全球客户使用 来自商业证书授权局的数字证书来建立相互信任。商业证书授;J3U^使得 该公司的服务器信任位于每一个全球客户处的服务器。作为第二个例 子,该公司可以使用Kerberos实施第三方信任;该公司及其全^L户 可以实施受到信任的第三方Kerberos域服务,执^ff基于共享密钥的信 任。作为第三个例子,该公司可以使用被其全球客户的服务器互相信任 的专有安全消息令牌来建立专有方案。如果该公司需要管理与较少全^4l户的信任关系,这些方案的任何 一种都是可接受的,但是如果存在数百或数千个潜在的联盟伙伴,这可 能会变得难以管理.例如,虽然公司可以强迫其少数伙伴实施专有方 案,但是该公司不大可能对其大量伙伴强加许多要求。企业可以使用通过信任代理以及可能通过信任经纪所建立和保持的信任关系。在图中所示的示例联合体系结构的优点是它不会对企业的当前基础设施及其潜在的^JL伙伴强加额外的要求。但是,该示例联盟体系结构不会减轻企业及其潜在联盟伙伴建立参 与联盟要求的商业和责任协定所需的初步工作。另外,参与者不能忽略 信任关系的技术自举。示例联盟体系结构允许该自举灵活实施,例如, 第一联盟伙伴可以发布具有特定信息的Kerberos票据,而第二联盟伙 伴可以发布具有特定信息的SAML认证断言。在示例联盟体系结构中,信任关系由信任代理管理,信任代理可以 包括安全令牌服务(或可以与其交互)来根据预先建立的两个信任代理之 间的关系!HiE和翻译从标识提供商接收的令牌。在联合企业与其它联合 企业建立信任关系(以及令牌翻译)不切实可行的情况下,可以调用信任 经纪;但是,联合企业需要建立与信任经纪的关系。现在参照图5,示出根据能够支持本发明的示例联合体系结构、使 用信任代理和信任经纪说明联合域之间的信任关系的示例集合的方框 图。尽管图4引入信任经纪,图5示出在示例联合体系结构内传递信任 关系的重要'!4。联合域502-506分别结合信任代理508-512。信任代理508具有与信 任代理510的直接信任关系514。信任经纪520具有与信任代理510的 直接信任关系516,以及信任经纪520具有与信任代理512的直接信任 关系518。信任经纪520用于根据传递的信任代表联盟参与者建立与其 它^li伙伴的信任关系。传递信任的法则允许信任代理510和信任代理 512具有通过信任经纪520的经纪的信任关系522。信任代理510或512 不用知道如何翻译或m^对方的断言;可以调用信任经纪将断言翻译成 有效的、可信的、并且另一个信任代理能够理解的断言。针对联合企业之间的信任关系规定契约义务和责任的商业协定可以 通过使用ebXML(使用XML的电子商务)标准以XML表达。例如,直 接信任关系可以以ebXML文档代表;共享直接信任关系的每一个联合
域将具有表达为ebXML文档的合同副本。联盟内不同实体的操作特性 可以在ebXML编排(choreography)中规定并且在ebXML注册中公布; 希望参与到特定联盟以便例如操作信任代理或信任经纪的任何企业将需布的要求。安全令牌服务能够针对关于要被翻译的来自其它域的令牌的 方式的IMt细节解析这些ebXML文档。但是应该指出的是,可以采用 其它标准和机制来支持本发明,用于规定有关联盟内信任关系的实施方 式的细节。联合体系结构内的单点登录在给定用户的会话期间,用户何以访问许多联合域,以便使用由这 些域提供的网络服务。域可以使用标准的规范,例如均使用XML作为 公共数据格式的UDDI和WSDL,公布它们所提供的服务的描述。用户商。SOAP提供范例,用于以XML表达的请求和响应的通信。联合环 境内的实体可以使用这些标准。在联盟内,用户期望具有单点登录体验,其中用户完成单个认证操 作,并且该认证操作对于用户会话期间^A够的,而无需考虑在会话期 间所访问的联盟伙伴。会话可以定义为从(并且包括)初始的用户认证, 即登录,到登出的事务集合,在M内,用户的动作将部分由针对该会 话授权给用户的特权来约束。到此为止所描述的联合体系结构支持单点登录操作。为了方便单点 登录体验,支持联合环境的网络服务同样也支持使用由第三方生成的认 证断言或安全令牌,以便提供认证用户的证据.该断言将包含某些类的 用户对发布方进行了成功认证的证据以及用于该用户的标识符。例如, 用户可以与一个联盟伙伴完成传统的认证操作,比如通过提供联盟伙伴 用于为该用户构建认证证书的用户名和口令,然后联盟伙伴能够提供由 认证/发布方对不同的^H伙伴生成的SAML认证断言。联合环境还允许网络服务或其它应用请求网络服务,并且这些网络 服务也将会被认证。网络服务环境中的认证是证实网络服务请求的声明
的标识的动作,以便企业能够限制对授权的客户机的访问.请求或调用 网络服务的用户将几乎总是被认证,因此在支持本发明的联合环境内用 于认证所需的与网络服务用于用户认证的当前要求没有很大的区别。访问企业的计算资源而不参与联合务活的用户的认证不会受到联合M设施的存在的影响。例如,通过HTTP/S使用基于形式的认伍机制 进行认证以便访问特定域上的非联合资源的现有用户不会受到在用于联 合环境的域上支持引入的影响。认证部分由接触点服务器处理,接触点 服务器依次可以调用分离的信任代理或信任服务组件;接触点服务器的 使用使得对现有域的^设施的影响最小化。例如,接触点服务器可以 配置为通过由域中的后端或遗留应用处理的所有非联合请求。接触点服务器可以选择调用基于HTTP的认证方法,比如基本认 证、基于形式的认证,或者某些其它的认证方法。接触点服务器通过支 持已经由用户作为认证证据呈现的断言的处理也支持联盟域,比如 SAML认证断言,其中断言在企业域之间交叉;在联盟协议的语境中收 到时,单点登录协议服务用于识别断言/工件。接触点服务器可以调用 信任服务,信任服务依次可以调用其安全令牌服务用于证实认证证书/ 安全令牌。网络服务或其它应用的认证包括与用户认证相同的处理过程。来自 网络服务的请求携带包^w证断言的安全令牌,并且该安全令牌将会以 与用户呈现的令牌相同的方式由信任服务进行验证。来自网络服务的请 求应该伴有该令牌,这是因为网络服务将发现所请求的服务需要哪些认 证断言/安全令牌在UDDI中广告。现在参照图6,示出说明支持联合单点登录操作的联合环境的方框 图。用户600通it^户端设备和适当的客户端应用比如浏览器,期望访 问由支持担当联合环境内的联合域的数据处理系统的企业/域610所提 供的网络服务。域610支持接触点服务器612和信任代理或信任服务 614;类似地,域620支持接触点服务器622和信任代理或信任服务 624,而域630支持接触点服务器632和信任代理或信任服务634。信任 代理/服^l赖于信任经纪650的帮助,如上文中所述.额外的域和信
任代理/月艮务可以参与到联合环境中。图6用于描述域610和域620之 间的联合单点登录操作;在域610和域630之间可以发生类似的操作。用户完成针对域610的认证操作;该认证操作由接触点服务器612 处理。在用户请求访问需要认证的标识的某些资源时触发认证操作,例 如用于访问控制目的或用于个性化的目的。接触点服务器612可以调用 遗留认证服务,或者可以调用信任代理614,以便!Hi用户呈现的认证 证书,在用户的联合会话期间域610变为用户的标识提供商或主域。在稍后的某时间点,用户在联盟伙伴比如同样支持联合域的企业 620处启动事务,从而触发联合单点登录操作。例如,用户可以在域 620启动新的事务,或者用户的初始事务可以级联到其它域中的一个或 多个附加的事务上。作为另一个例子,用户可以通过接触点服务器612 对域620中的资源调用联合单点登录操作,例如,通过选择驻留在域 610内的网页上的特定链接或者通过请求驻留在域610内但显示驻留在 域620内的资源的门户页。接触点服务器612发送请求^fT任代理614 以为用户产生格式化为能够由域620理解或信任的联盟单点登录令牌。 信任代理614将该令牌返回接触点服务器612,其将该令牌发送给域 620中的接触点服务器622。域610担当域620中用户的发布方,域620 担当依赖方。用户的令牌将与用户的请求传送给域620;该令牌可以使 用HTTP重定向通过用户的浏览器来发送,或者可以通过直接调用负责 在信任代理614提供的令牌中标识的用户的接触点服务器622的请求 (在HTTP上或者HTTP上的SOAP上)。接触点服务器622与联盟单点登录令牌一起接收该请求,并且调用 信任代理624。信任代理624接收联盟单点登录令牌并验证该令牌,并 且假定该令牌有效并得到信任,从而产生该用户的本地有效令牌,信任 代理624返回该本地有效令牌给接触点服务器622,其建立域620内针 对该用户的会话。如果必要,接触点服务器622可以启动另一联合伙伴 处的联合单点登录。域620处令牌的验证由信任代理624处理,有可能借助安全令牌服 务的帮助。根据域610呈现的令牌的类型,安全令牌服务可能需要访问
域620处的用户注册。例如,域620可以提供包含针对域620处的用户 注册所要验证的用户名和口令的二进制安全令牌。因此,在该示例中, 企业仅简单地验证来自联合伙伴的安全令牌。域610和620之间的信任 关系确保域620能够理解和信任域610代表用户呈现的安全令牌。联合单点登录不仅需要在依赖域处代表用户呈现给依赖域的安全令 牌的^^E,而且需要根据包含在安全令牌中的信息确定本地有效用户标 识符和与该标识符相关联的可能的属性。直接信任关系和建立该关系所 需的商业协定的一个结果上至少一方,发布域或者依赖域或者两者,知 道如何将发布域提供的信息翻译成在依赖域有效的标识符;在依赖域的 该标识符可以是由发布方断言的标识的一对一映射的结果,或者是其它 类型的映射的结果,例如标识到任务的多对一映射,即,对于本地发布 方标识符没有必要要求是唯一的一对一映射。在上面的简短示例中,假 U布域,即域610,能够为依赖域,即域620,提供在域620中有效 的用户标识符。在该场境中,依赖域不需要调用任何标识映射功能。域 620处的信任代理624将为该用户产生担保该用户的安全令牌。可接受 的令牌的类型、令牌上所需的签名、以及其它要求均预先建立为部分的 联盟商业协定。约束标识符翻译的规则和算法也预先建立为部分的^J1 商业协定,并且由针对令牌管理和交换意见一致的策略来定义。在两个 参与者之间的直接信任关系的情况下,标识符翻译算法将为这两方建立,并且可以与联盟中任何其它方不相关.但是,并不总是发布域知道如何将用户从域610的本地标识符映射 到域620的本地标识符的情形。在某些情形下,可能是^JI域知道如何 进行该映射,而在另外的情形下,那一方都不知道如何进行该翻译,在 这种情形下可能需要调用第三方信任经纪。换句话说,在经纪的信任关 系的情形下,发布域和依赖域彼此之间没有直接的信任关系。但是,它 们与信任经纪比如信任经纪650之间具有直接的信任关系,标识符映射 规则和算法已经建立为这种关系的一部分,并且信任经纪将使用该信息 帮助进行对于经纪的信任关系所需的标识符翻译.域620在接触点服务器622处接收由域610发布的令牌,接触点服 务器622调用信任代理624以验证令牌并执行标识映射。在这种情况 下,由于信任代理624不能将用户从域610的本地标识符映射到域620 的本地标识符,因此信任代理624调用信任经纪650,其IHE令牌并执 行标识符映射。在获得用于用户的本地标识符之后,信任代理624,可 能通过其安全令牌服务,能够产生域620的后端应用需要的任何本地令 牌,例如使从接触点服务器到应用服务器的单点登录便于进行所需要的 Kerberos令牌。在获得本地有效令牌之后,如果必要,接触点服务器能 够构建针对用户的本地会话。接触点服务器也可以处理用户请求的粗粒 度授权(coarse-grained authorization),并将授权的请求传递给域620内 适当的应用服务器。联合用户生命周期管理上面描述的图2-6的一部分,说明了能够用在联合环境中的组件的組 织结构,而其它部分说明了用于支持跨越联合环境的单点登录操作的处 理。联合环境内的服务提供商或依赖域不一定必须管理用户的认证证 书,并且那些依赖域可以影响由用户标识提供商或主域提供的单个单点 登录令牌。但是,图2-6的上述描述没有说明其中在^H伙伴的联合域 中以有利方式完成联合用户生命周期管理的明确it^。联合用户生命周期管理功能/服务包括用于在多个联合域针对特定用 户账户或给定用户的用户简档支持或管理联合操作的功能;在某些情况 下,该功能或操作限于针对用户的给定联合会话。换句话说,联合用户 生命周期管理功能指的是允许跨越多个联合伙伴的联合操作的管理的功 能,可能M联合计算环境内单个用户会活的生命周期期间。每一个联合域可以针对每一个各自的联合域处的功能管理用户账 户、用户简档、或者某些类型的用户务活。例如,特定的联合域可能不 会该特定联合域内的管理本地用户账户或用户简档,但是在成功完成该 联合域的单点登录操作之后,该联合域可能会管理针对联合事务的本地 用户会活。作为该特定联合域支持的联合用户生命周期管理功能的一部 分,该联合域可以参与允许联合域在完成联合亊务之后终止本地用户会 话的单点登出操作,从而改进安全性并提高资源的利用效率, 在使用联合用户生命周期管理功能的另一示例中,用户可以参加需 要多个联合域参与的在线事务。联合域可能本地管理用户简档,以便在涉及联合域的每一个用户联合会话期间定制(tailor)相对于联合域的用户 体验。作为该特定联合域支持的联合用户生命周期管理功能的一部分, 联合域的本地用户简档中的信息可以在给定联合事务期间以无缝方式与 来自参与给定联合事务的其它联合域处的其它简档的信息一起使用。例 如,来自用户的多个本地用户简档的信息可以结合到某些类型的合并操 作中,使得用户的信息例如在网页内可视地呈现给用户,以用户不会警 觉用户的信息的不同起源或来源的方式。联合用户生命周期管理功能也可以包括用于账户链接/去链接的功 能。用户提供有跨越联盟伙伴的公共唯一的用户标识符,其使得单点登 录和关于用户的属性检索(如果必要)作为在一个联盟伙伴处的请求履行 的一部分.此外,联盟伙伴可以使用该公共唯一的用户标识符从标识提 供商请求额外的属性,以便以匿名的方式查阅用户。现在参照图7,示出说明在用于实施联合用户生命周期管理功能的 联合域中的一些组件的方框图以便支持本发明。图7示出单个联合域, 例如图3所示的联合域的要件。图7的某些要件与到此为止参照其它附 图已经描述的一些要件相似或一致,比如图3,接触点服务器/服务702 等价于接触点服务器342;运行控制对受保护资源的访问的服务的应用 服务器704等价于应用服务器334;受保护的或受控资源706等价于受 保护的资源335;以及联合用户生命周期管理(FULM)应用708等价于 联合用户生命周期管理应用352。尽管在图3中没有示出防火墙,M 图7中示出了防火墙。防火墙710和防火墙712创建保护企业的计算环 境免受企业域外部的例如通过因特网的计算威胁的外部DMZ(电子非军 事带)。图3和图7所示的不同点并不矛盾或者是出于交叉目的。与图7所 示的示例相比,图3没有示出防火墻,然而接触点服务器342驻留在联 盟前端340;另外,联合用户生命周期管理应用352包含在联盟前端 340内。在图7中,接触点服务器702显示为驻留在防火墙710和712 之间的DMZ内,防火墙710和712形成企业域的电子或物理前端;另 外,联合用户生命周期管理应用/服务708电子地驻留在防火墙712之 后。信任服务714、单点登录协议服务716、以及标识和属性服务718 采用企业用户注册720,并且需要时采用联盟用户注册722。通过将图3 中的联盟前端340和后端330看作组件的逻辑组织,而将图7中的其它 组件看作形成物理或电子前端和物理或电子后端,两者都可以包^^联合 组件,图3和图7的不同点能够协调。重复接触点实体/服务的任务,接触点实体提#^话管理,至少针对 使用企业计算环境与联盟功能的用户的交互;企业计算环境的遗留后端 内的应用也可以实施其自己的会话管理功能。假定企业针对联合计算环 境实施策略功能,则接触点实体对于某些其它联盟伙伴的策略决策点可 以担当策略强制点。另外,假定容许给定联盟功能的实施,则接触点实体负责启动针对其中没有采用单点登录操作的那些场境中的用户的直接 认证操作。如此,接触点实体可以以各种形式实施,例如,作为反向代 理服务器、作为网络服务器插件、或者某些其它方式。接触点功能也可 以在应用服务器本身内实施,在这种情况下,联合用户生命周期管理服 务可以逻辑上位于DMZ内。更为重要地,再次参照图7,联合用户生命周期管理应用708还包 括用于接口到联合用户生命周期管理插件714、与之交互、或者与之互 操作的支持,i^图3中没有示出。在图7所示的示例体系结构中,联 合协议运行时间插件提供用于各种类型的独立颁布或开发的联合用户生 命周期管理标准或简档的功能,比如,WS-联盟被动客户端,以及自由 联盟ID-FF单点登录(B/A、 B/P和LECP)、注册名称标识符、联盟终止 通知、和单点登出。不同的联合协议集合可以在不同的URL进行访 问。该办法允许联合用户生命周期管理应用在单个应用内同时支持联合 用户生命周期管理的多个标准或规范,例如WS-联盟网络服M范对自 由联盟规范,从而使得对支持不同M协议的总体环境的配置影响最小 化,更具体地,适当的联合用户生命周期管理功能由接触点服务器通过
将用户请求重定向和/或传递到合适的联合用户生命周期管理应用来调用。再次参照图7,接触点服务器702接收用户请求730,然后分析并 确定所接收的请求的类型,可以通过已经接收的请求消息的类型来指 示,或者如上所述通过确定请求消息内的目的地URI来指示。在将针 对受保护的资源的请求732传递到应用服务器704的同时,针对联合用 户生命周期管理功能的请求734,例如调用单点登出操作的请求,被传 递到联合用户生命周期管理应用708,如果必要联合用户生命周期管理 应用708调用适当的联合用户生命周期管理插件来完成所接收的请求。 当定义新的联盟协议或新的联合功能时,或者当现有的不知何故^^改或. 精炼时,可以简单地通过插入新的支持模块来增加支持,或者可以通过 修改先前安装的插件来.精炼。图7中的联合用户生命周期管理应用的示例实施示出^i合用户生命 周期管理应用能够支持多个、同步的联合用户生命周期管理功能,同时 提供可插入特征,从而允许需要时将新的功能以插件的形式添加到联合 用户生命周期管理应用中,而无需对现有基础设施进行任何改变。例 如,假定使用基于JAVA 的联合用户生命周期管理应用来实施本发 明,则用于新联盟协议的支持,比如新颁布的单点登录协议,能够通过 将新开发的JAVATM类配置到联合用户生命周期管理应用的JAVA,类 路径(CLASSPATH)来添加,其中这些新类支持新的标准以及用于支持 ^^发明的协i5C接口。示例联合体系结构影响其中要集成联合用户生命周期管理方案的现 有环境。可以方便地对联合用户生命周期管理应用进行修改以支持新的 协议/标准,由于它们对总体基础设施演化了极小的变化。支持新的联 合用户生命周期管理功能所需要的任何变化几乎全部地位于联合用户生 命周期管理应用内部,将需要配置联合用户生命周期管理应用来理解所 添加的功能。在其它组件中会有最小的配置变化,例如在接触点服务器中,以便 使得总体基础设施能够调用新的联合用户生命周期管理功能,而同时继 续支持现有的联合用户生命周期管理功能.但是,联合用户生命周期管
理应用功能上独立于剩余的联合组件,在于联合用户生命周期管理应用 可能仅需要与联合环境的其它联合组件极少的交互。例如,在示例实施例中,联合用户生命周期管理功能可以与基于企业的数据库例如LDAP数据库集成,如果联合用户生命周期管理信息比如根据自由联盟简档的名称标识符值存储在外部可访问的联合用户生命周期管理数据库,与对 外部实体不是显然的或不可访问的专有的内部联合用户生命周期管理数据库相对。因此,现有环境需要最小P艮度的修改,以支持联合用户生命周期管 理功能。而且,包括添加新功能的联合用户生命周期管理功能的变化对 现有联合环境具有最小的影响。由此,当颁布新的单点登录标准时,非 常容易添加用于该标准的支持。传统的用户认证涉及企业的计算环境和仅终端用户之间的交互;企 业选择实施该认证交换的方式是企业的选择,对任何其它企业没有影 响。但是,当联盟或交叉域单点登录功能期望被支持时,其变为企业伙 伴彼此交互的要求。该要求不能使用私有协议进行升级。虽然将用于基 于标准的联盟协议的支持直接添加到接触点实体看起来象极强的解决方 案,但是已经作为企业的计算环境内的现有組件的接触点实体必须进行 修改;而且,每次这些公开联盟协议中的一个发生变化时都必须进行修 改。将该功能移出接触点实体提供更加模块化的办法,其中该可插入的 功能使得能够容易地保持对这些协议的移植或更新。联合协议搡作内使用标记工件进行的数据对象的分布式检索如上面所进一步描述的,在联合协议操作的实施中应该考虑折衷。 某些操作,比如可能需要与用户进行极少交互以完成IMt的那些^Mt, 应该以对用户施加最小负担的方式执行,但是它们也应该以对于联合企 业来说高效地执行,尤其是对于可能需要跨越企业内的所有用户的那些 类型的操作。对于支持特定联合协议所需的那些操作,在那些操作的实 施方式上以及所导致的用户的负担和联合企业的计算资源的负担联合企 业没有多少灵活性。联合企业可能需要根据联合企业所同意的联盟规范 以特定的方式执行特定的动作。换句话说,联合企业可能需要根据商业
合同实施特定的联盟操作,而不能考虑那些操作的计算负担。但是,联合环境内功能的许多方面可以分类为支持一个或多个联盟 内的一个或多个企业所期望的商业目标、然而支持联盟协议不是必需的 或者参与联盟不是必需的操作。由于跨越联合环境支持企业特定的商业 目标所导致的动作可能具有分歧,因此实施支持操作的方式应该以跨越 联盟内数千个或数百万个用户可升级的方式完成。在实施企业的期望商 业目标时,负责管理企业内的联合功能的系统管理员应该能够以高效的 方式配置其计算资源。如上所述,解决联合企业内的计算资源上的负担的一种方式是实施 在分布式数据处理系统内实施联合功能。例如,标识提供商的服务可以 在分布式数据处理系统内支持。但是,分布式数据处理系统的特性可能存在问题;联合协议的某些要求会使用于在分布式数据处理系统内执行 这些联合协议的功能的实施复杂化。更具体地说,比如标识提供商的联合实体在联盟内生成数据对象。 根据某些联合协议的规范,这些数据对象通过使用工件在联合实体之间 进行传输,这将在下文中进一步地详细描述。在任何联合计算环境中工 件和与其相关的数据对象之间的引用关系必须保持,而不考虑所实施的 联合计算环境的^设施。就此而言,本发明提供用于高效管理联合协 议操作的分布式计算基础设施,尤其针对工件引用的数据对象的分布式 检索。但是,在讨论本发明的附加细节之前,首先更加详细地讨论针对 分布式检索可能由分布式数据处理引入的复杂性,以便更好地区分本发 明解决这些问题的方式。SAML和自由联盟浏览器/工件简档两者都具有两个主要的步骤,用 于从标识提供商到服务提供商的信息检索,作为建立单点登录会话的一 部分.在第一步骤中,标识提供商发送工件给服务提供商。 一般而言, 工件;UC寸受限的元素,担当数据对象的引用指针。应该指出的是,工 件引用的数据对象可以是任何类型的数据对象.因此,数据对象可以包 括结构化数据,即,数据及其元数据或格式化信息。数据对象可以或者 可以没有格式化;数据对象可以根据联合协议进行格式化,但是不是必
须的。可替代的,数据对象可以是消息、部分消息、或者消息附件。继续本示例,标识提供商可以通过终端用户的浏览器在HTTP重定向上将 工件发送给服务提供商;在该示例中,工件引用的数据对象可以是与安 全相关的断言。由于工件的尺寸较小, 一般不会导致URL超出查询串 的尺寸限制。在第二步骤中,服务提供商收到该工件时将执行到标识提 供商的直接SOAP/HTTP请求,以便根据工件检索适当的断言。单个高i緩冲执行r不存i分布式高速緩冲或分布式环境的通融。'作为典型的分布式环境的示例,标识提供商可以具有地理上横跨国家分布的 多个数据中心。在某时间点,用户启动访问标识提供商的资源的尝试 通过登录到标识提供商;通过请求公共资源或者标识提供商处的私有资 源;通过根据来自服务提供商的重定向尝试访问标识提供商单点登录 URL;或者通过针对联合伙伴的某些其它操作。当用户第一次尝试访问 标识提供商的资源时,负栽平衡器分配用户到特定的数据中心。典型地 这根据地理接近度和用法的某些组合来进行,并且可能涉及各种分配技 术,比如循环算法或最近使用算法。负载平衡器然后建立某些手段以确 保在用户会话期间用户粘附到该数据中心。粘附性最常见的是基于 HTTP cookie、用户的IP地址、SSL会活ID、或者绑定到用户和用户 的HTTP会活的某些其它手段。但是,在使用该类型的分布式环境时,联合实体尝试通过直接信道 (即,不影响HTTP重定向的请求)检索绑定到所接收的工件的数据对 象;例如服务提供商的联合实体没有获取或继承用户会话的特征(有时 称作用户的粘附性)的手段。因此,联合实体不能保证数据对象检索请 求将会发送给实际上已经生成初始的工件并且高速緩冲了工件和工件引 用的数据对象之间的相关映射的数据中心。本发明提供高效管理联合协议操作的分布式计算基础设施,尤其针 对工件引用的数据对象的分布式检索,如下面将进一步讨论和剩余附图 所描述的,本发明扩展了基于工件的检索功能,允许检索以代理方式的 类型的工件引用的数据对象.本发明允许联合实体例如服务提供商被指
引到合适的数据处理系统或数据中心,同时允许负载分解,而且仍然能 够从生成工件的数据处理系统或数据中心检索工件引用的数据对象。本 发明的办法不需要高速緩冲调和或保持全局分布式高速緩冲的其它技 术。现在参照图8,示出根据本发明的实施例实施为分布式数据处理系 统的联合实体的方框图,以便支持工件引用的数据对象的分布式检索。 图8示出联合计算环境内的一对联合实体。 一般而言,联合实体800生 成代表另一联合实体或者为另一联合实体比如联合实体802生成数据对 象。联合实体800可以代表标识提供商、服务提供商、或者某些其它类 型的联合实体,取决于所发生的联合操作的类型。类似地,联合实体 802也可以代表标识提供商、服务提供商、或者某些其它类型的联合实 体,取决于所发生的联合^Mt的类型。在请求或者要求时,联合实体800生成数据对象和相关的工件;工 件引用数据对象,并且可以将该数据对象称为工件引用的数据对象。在 数据对象由联合实体800生成并存储之后,可以将工件提供给联合实体 802,其随后使用该工件检索相关的数据对象,即,由工件引用即映射 到工件的数据对象。联合实体802发送数据对^险索请求804给联合实 体800,以根据包含在数据对象检索请求804中的工件806检索先前生 成的数据对象。从这一点上讲,联合实体802可以看作请求联合实体 802,而联合实体800可以看作响应:^合实体800。在联合实体802发送数据对^r索请求804给联合实体800之后, 联合实体800通过检索工件引用的数据对象并返回数据对象检索响应 808给联合实体802来处理数据对^险索请求。数据对^险索响应808 包含与工件806相关的适当的数据对象。 一旦将数据对象提供给联合实 体802,联合实体800就从数据库中删除所提供的数据对象,由此确保 该工件-数据对W展现出"一次使用"的特性。以这种方式在联合实体800和联合实体802之间进行的数据对象传 输可以根据各种标准或专有协议来执行。例如,数据对^险索请求消息 804和数据对^索响应消息808可以根据标准化的规范进行格式化。
但是,根据本发明的新颖方面,本发明的可替代实施例可以使用工件806内的数据处理系统根源标签810,将在下文中进行详细描述。现在讨论本发明更为重要的新颖方面,图8还示出根据本发明的联 合实体的实施例,其中该联合实体组织为支持工件引用的数据对象的分 布式检索的分布式数据处理系统。为了分布处理负载,联合实体800使 用负载平衡器812,其在比如数据处理系统814、数据处理系统816、以 及数据处理系统818的多个数据处理系统之间接收并传递引入的请求消 息,比如数据对fj险索请求。负栽平衡器812可以采用各种公知的算法 在多个数据处理系统之间分布工作负栽,包括地理分布,比如将来自给 定区域中的用户的请求指向相同地理区域内的数据中心。以与图7所示的方式类似的方式,到/来自多个翁:据处理系统的数据 通信穿过防火墙和接触点服务器。用于数据处理系统814的数据通信穿 过防火墙820、接触点服务器822、以及防火墙824。用于数据处理系统 816的数据通信穿过防火墙826、接触点服务器828、以及防火墙830。 用于数据处理系统818的数据通信穿过防火墙832、接触点服务器 834、以及防火墙836。在本发明的一个实施例中,数据处理系统814-818及其相关的i^设施可以标识为地理上分歉的数据中心,从而允许 负载平衡器812以对于资源请求的发源地和数据处理系统814-818的位 置地理上恰当的方式在数据处理系统814-818之间分布数据通信和相关 的处理负载。在地理上分布数据中心的情况下,防火墙826、接触点服 务器828、以及防火墙830可以依次代表被复制以便确保数据中心内高 级别可用性的一组机器。尽管图8没有详细示出,数据处理系统814-818包含用于处理已经 结合其它附图描述了的联合协议操作/简档的功能,比如图3中的联盟 前端340和图7中防火墙712后面的组件所表示的。例如,每一个数据 处理系统814-818包含与图3中的SPS 354和图7中的SPS 716相类似 的单点登录协议服务(SPS)组件。更具体地说,数据处理系统814、 816 和818分别包含SPS组件840、 842和844。另外,数据处理系统814、 816和818分别包含数据对象高速緩冲850、 852和854。每一个数据处理系统在其数据对象高速緩冲中存储其 工件引用的数据对象, 一直到数据对象被使用其相关的工件检索。使用 如图8所示的示例组件,本发明的示例实施例使用用于联合实体的分布 式体系结构,从而允许联合实体支持从高速緩冲850-854进行工件引用 的数据对象的分布式检索。应该指出的是,如果数据处理系统818反过 来具有基于数据中心的负载平衡,那么高速緩冲854可以由数据中心内 的任何复制的SPS来共享;另外,在给定的数据中心内,可以实施跨越 数据中心内部的高速緩冲的任何必要的数据复制。虽然本发明能够用于一般的数据对象,但是下面将更详细地描述使 用本发明以便支持工件引用的断言的分布式检索的某些示例处理过程; 换句话说,下面讨论其中工件引用的数据对象用断言表示的例子。具体 地说,使用图8所示的示例体系结构,SSO协议服务(SPS)组件提供为 包括断言检索的自由/SAML功能而披露的端点。当收到基于工件的请 求时,SPS组件将使用该工件索引断言的数据库比如哈希表或高速緩 冲,检索合适的断言,并且响应所接收的请求。在本发明中,如果在本 地数据库中没有发现断言,则替代返回错误,SPS组件将如下文中所述 尝试从标识提供商的其它数据中心请求适当的断言。更具体地说,在本发明的示例实施方案中,联合实体800可以是标 识提供商,或者更一般地是发布方;联合实体802可以AJ5艮务提供商, 或者更一般地是依赖方。在请求或要求时,联合实体800如上文所讨论 的发布断言,比如SAML断言。联合实体802根据针对不同联合计算 环境的一个或多个规范使用用于各种联合协议操作/简档的这些断言, 例如完成联合单点登录认证操作;在任何情况下,工件引用的数据对象 可以是安全断言.联合实体800发布工件,每一个都与断言相关联。尽 管可以不生成相关的工件而发布断言,但是在发布断言时可以发布工 件;在已经导致断言被发布的联合协议操作/简档需要时发生工件的发布。工件引用断言;临时保持断言和断言工件之间的映射,直到断言自身被检索为止。在断言已经由联合实体800发布并存储之后,工件可以 提供给联合实体802,其l^使用该工件检索相关的断言,即,由工件
引用也就是映射到工件的断言。可以应用本发明以支持使用标记工件进行工件引用的数据对象的分布式检索的更加详细的示例示于图9A-9C中。现在参照图9A-9B,示出根据本发明的实施例、其中实施为具有多签进行工件引用的数据^象的检i的场境的方框图。图9A-9B以与"8 所示的联合实体的单元相类似的方式示出联合实体比如标识提供商的某 些单元。现在参照图9A,联合实体卯0是包含多个数据处理系统的分布式 数据处理系统,每一个数据处理系统可以代表数据中心。数据处理系统 902包含单点登录服务(SPS)904和数据对象高速緩冲906;数据处理系 统908包含SPS 910和数据对象高速緩沖912。在要检索的工件引用的 数据对象是认证断言时,会涉及SPS 904和SPS 910;可替代的,在要 检索的工件引用的数据对象是类似的或不同类型的数据对象时,会涉及 支持联合功能的其它功能元件。在某时间点,数据处理系统卯2接收数据对^险索请求914。可以 假定数据处理系统902从其它联合实体比如服务提供商接收数据对^r 索请求,如上面参照图8所描述的。但是,应该指出的是,数据对^r 索请求914可以或可能不^if过图8所示的负栽平衡器、防火墙、或其 它功能单元。数据对^j险索请求914包括由联合实体卯0内的数据处理系统发布 的工件916。如上所述,工件是用作到数据对象的引用指针的、尺寸受 限的元素。生成初始数据对象的数据处理系统还高速緩沖数据对象及其 工件之间的相关映射;以这种方式,工件或其一部分可以用作搜索密钥 以便查找映射,从而定位高速緩冲的数据对象,本发明支持新颖的优选方案工件内的DPS根源标签。在图9A所 示的示例中,工件916包含数据处理系统(DPS)根源标签918。DPS根源标签由创建数据对f^l其相关联工件的数据处理系统(DPS) 生成并发布。以这种方式,DPS根源标签指示创作或生成工件以及由此
相关联的数据对象的数据处理系统。DPS 4艮源标签可以包含用于创作的 数据处理系统的标识符;可替代的,DPS根源标签可以包含编码的指示值,能够用来映射或用以查找创作/生成/发布DPD根源标签以及由此工 件和工件引用的数据对象的合适数据处理系统的标识或位置。当特定的用于创作的数据处理系统接收包含用于指示或标识特定数据处理系统的 标签的数据对^J险索请求时,该特定的数据处理系统能够立即满足数据 对象检索请求,因为它创作了该标签;换句话说,该特定数据处理系统 已经在其本地数据对象高速緩沖中存储了数据对象和数据对象的相关工 件之间的映射。分布式联合实体内的数据处理系统使用工件从其数据对象高速緩沖 查询工件引用的数据对象。但是在能够搜索适当的数据对象高速緩冲之 前,必须在适当的数据处理系统接收数据对#*索请求。本发明的DPS 根源标签支持灵活的功能,其中分布式联合实体内的数据处理系统不会 立即假定它就是已经创作/发布/生成工件及其相关数据对象的数据处理 系统。例如,联合实体的分布式计算环境内的负载平衡器可以将数据对 象检索请求传递到任何选定的数据处理系统,并且选定的数据处理系统 不会假定数据对IM^索请求的接收必然意味着该选定的数据处理系统已 经创作了该请求的数据对象。而是,如果必要,该选定的数据处理系统 使用DPS根源标签将数据对^r索请求代理到标识的或指示的数据处理系统。在数据对IM^索请求由适当的数据处理系统接收之后,该数据 处理系统可以使用工件搜索其相关联的数据对象。再次参照图9A,工件916从数据对象检索请求914提取。在其本 地数据对象高速緩冲卯6或类似数据库中搜索工件916的拷贝及其相关 数据对象之间的映射之前,数据处理系统902从工件916提取DPS根 源标签918。在图9A所示的示例中,DPS根源标签918碰巧指示数据 处理系统902。因此,数据处理系统902将使用其先前从所接收的数据 对l险索请求中提取的工件搜索其本地数据对象高速緩冲906;工件可 以用作搜索密钥或者用作搜索密钥的基础。假定数据处理系统902在数 据对象高速緩冲906中找到了工件引用的数据对象,则数据处理系统902生成具有要返回给请求联合实体例如服务提供商的合适数据对象的 数据对f^r索响应920。现在参照图9B, DPS根源标签918指示不同的数据处理系统创作 或创建了该工件。因此,如果尝试,数据处理系统902将在任何在其本 地数据库或高速緩沖内定位所请求的工件的尝试中失败。在本发明提供 的优选方案中,如果DPS根源标签指示所请求的工件将不会在本地数 据库中发现,则替代返回错误,数据处理系统卯2将把该请求发送或传 递到由DPS根源标签918标识的或指示的数据处理系统。在图9B所示 的示例中,SPS 904将发布数据对^r索请求给标识的联合实体内的数 据处理系统,例如通it^L送数据对象检索请求922给数据处理系统908 中的SPS 910;数据对象检索请求922包含所请求的工件并且与数据对 !^险索请求914类似,可以对其进行修改以便指示数据处理系统902是 数据对l险索请求922的发送方。数据处理系统908能够完成所接收的请求,因为它是工件/数据对象 对的创作者,并且它存储了所请求的工件及其相关数据对象之间的映 射。数据处理系统908从其本地数据对象高速緩冲912中检索数据对 象,优选地从M数据库912中将其去除以便其不能再被使用,并且将 该数据对象在数据对象检索响应924内返回到数据处理系统902。然后 在数据处理系统902发送数据对^r索响应给请求联合实体时,联合实 体900完成从请求联合实体例如服务提供商所接收的初始数据对l^索 请求。应该指出的是,如果工件/数据对象已经被事先修饰为不可用, 则数据处理系统908将该信息提供给数据处理系统卯2,其接着构建适 当的镣溪响应以返回给请求联合实体。工件及其相关数据对象的对可能 会变为不可用,这是由于数据对象已经被检索过,或者由于在与数据对 象的生命周期相关联的时间戳已经过期时变得陈旧。现在参照图9C,示出根据本发明的实施例、将使用DPS根源标签 以引用分布式联合实体内的数据处理系统与使用工件以引用工件及其相 关联的数据对象之间的映射相结合的方框图,数据处理系统902、数据 处理系统卯8、以及数据处理系统926支持联合实体卯0内的分布式数 据对l险索功能。DPS根源标签918标识或者指示分布式联合实体902 内的数据处理系统组928中的特定数据处理系统。分布式联合实体902 内的任何给定数据处理系统都可以使用DPS根源标签918确定输入数 据对^r索请求的合适目的地,因为目标数据处理系统是组928中的一 员,其对于组928内的每一个数据处理总统是公知的。数据处理系统908保持数据对象高速緩冲912,其包含数据对象条 目930-934;每一个数据对象条目可以被看作数据对象条目组936中的 一员。每一个数据对象条目可以包含工件的拷贝以及与该工件相关联的 数据对象,从而形成这两个数据项之间的映射。因此,工件916标识或 指示数据对象高速緩沖912内的数据对象条目组中的特定数据对象条 目。数据处理系统908通过使用工件916搜索数据对象条目组936确定 其相关联的数据对象。现在参照图10,示出根据本发明的实施例、使用多个数据处理系统 实现的分布式联合实体内的处理过程的流程图,每一个数据处理系统支索。在构成分布式联合实体的多个数据中心或数据处理系统中的一个接 收到数据对^r索请求消息时处理开始(步骤1002)。如果从联合实体外 部的实体比如服务提供商接收该消息,则可以通过将其称作初始数据对求消息区分开来。然后收到该数据对^险索请求消息的数据中心从该消 息中提取工件(步骤1004)。然后从工件提取DPS根源标签(步骤1006)。在处理这些根源标签的 正常过程中,即,如果没有#^发生或已经发生,则DPS根源标签已 经由构成联合实体的多个数据中心或数据处理系统中的一个,可能地由 当前的数据处理系统,即,当前处理数据对^险索请求消息的数据处理 系统发布、创作、或者生成。但是,可以假定数据对^险索请求消息等 可能地由构成联合实体的多个数据中心或数据处理系统中的任何一个接 收。例如,用于联合实体的负载平衡器可以分发输入的数据对^险索请 求消息,而无需考虑或者知道初始发布工件的数据处理系统。因此,确
定当前数据处理系统是否已经发布根源标签(步骤1008)。如果当前数据处理系统已经发布根源标签,则当前数据处理系统继 续处理工件。从本地数据对象高速緩沖或其它数据库中搜索工件(步骤 1010),从而也搜索与所接收的工件相关联的数据对象,例如通过使用 工件或其一部分作为搜索密钥。确定在本地数据库中是否发现所请求的 工件(步骤1012)。如果发现了工件,则从本地数据库中检索工件引用的数据对象(步骤 1014)。在检索到相关联的数据对象的拷贝之后,可以删除相关联的数 据对象的高速緩冲拷贝,以确保不会再次使用或者恶意使用,从而对数 据对象强加一次使用限制。可替代的,可以保持相关联的数据对象的高 速緩冲拷贝;是否删除高速緩沖的数据对象取决于联合实体和/或联合 实体所提供的服务的需要。然后数据中心生成具有已经发现的数据对象的数据对象检索响应消 息(步骤1016)。数据中心将数据对fj险索响应消息发送给请求联合实体 (步骤1018),例如请求服务提供商,从而结束处理。如果在步骤1012没有成功发现也没有成功检索到数据对象,则数据处理系统生成包含4m代码的数据对a索响应消息,以指示定位请求的数据对象失败(步骤1020)。然后在步骤1018数据中心将该数据对IM^索响应消息发送给请求联合实体,从而结束处理。如果在步骤1008确定当前数据处理系统没有发布根源标签,则根 源标签指示确实发布该工件的数据处理系统。当前数据处理系统不再继 续处理该工件,并且作出尝试以便从联合实体内的适当的数据处理系统 中检索数据对象。当前数据处理系统将数据对^险索请求消息发送给根 源标签所指示的、联合实体内的适当的数据处理系统(步骤1022);数据或传递拷贝。'由根;标签指^的数据处理系统将从当前"数据处理系统 接收数据对象检索请求消息,并且使用与步骤1002-1020相类似的步骤 尝试处理所接收的消息.在随后的某时间点,当前的数据处理系统从其发送数据对IM^索请
求消息所到的数据处理系统接收数据对^J险索响应消息(步骤1024)。如 果成功地从其它数据处理系统检索到数据对象,则数据对fj险索响应消 息包含合适的数据对象并且也可以包含成功响应代码。如果没有成功地 检索到数据对象,则数据对^险索响应消息将包含4^:代码,以便指示定位所请求的数据对象失败。在任何一种情况下,数据中心都在步骤1018发送数据对^r索响应消息给请求联合实体,从而结束处理。 结论从上面对本发明的详细描述中可以清楚地看出本发明的优点。 本发明支持将联合实体实施为分布式数据处理系统。分布式数据处 理系统包括多个数据处理系统,每一个都能够为相关的数据对象发布工 件并且响应基于工件的检索请求,同时还具有针对基于工件的检索请求 的代理功能。本发明的优越性在于,本发明支持对于可能支持数百万客户的大型 企业所需要的分布式数据中心环境,然而这对于现有的数据管理技术是 不可能的。另外,本发明不需要分布式数据高速緩冲可能会要求的先进 数据管理技术。此外,使用本发明,请求联合实体比如服务提供商不需 要关注分布式的本性,也不需要关注存在提供响应联合实体例如标识提 供商的功能的多个数据中心。更具体地说,本发明支持不同联盟规范的各种要求;换句话说,本容。:此,本^明不仅与各"不同^;合协议相兼容,而且同时支持多 个联合协议,并且本发明在分布式环境中支持该功能。本发明在分布式计算环境中支持多个联合协议的能力相比于针对联 合环境的典型现有解决方案是非常重要的优点。在典型的现有技术的联 合环境中,使用单个协议在因特网环境下实现一系列动作,要么全 HTML/HTTP,要么全SOAP/MQ,等等。但是,在某些情况下,功能 通过混合协议来定义,比如SAML和自由联盟ID-FF协议,SAML 2.0 和自由联盟简档两者对于"注册名称标识符(RNI)"和"联盟终止通知 (FTN)"都允许HTTP重定向和SOAP-HTTP简档两者,即便在这些环
境中终端用户的体验和与提供商的交互是基于HTTP的。基于HTTP 重定向的简档能够容易地绑定到用户作为用户的浏览器,并且会活用作 触发和传输这些协议流的一部分。另外,自由联盟ID-WSF允许基于 SOAP的协议在用户的HTTP会活和运行时间的绑定之外检索关于用户 的信息。这些SOAP简档不涉及终端用户(或者担当其代表的代理),由 于它们被定义为在两个提供商,即标识提供商和服务提供商之间进行直 接通信。因此,SOAP简档不容易绑定到用户或用户的运行时间体验。 这在考虑到必须对用户的运行时间环境产生作用或者具有其知识的 SOAP协议时会带来问题。在典型的分布式环境中,运行时间的本地用例将与分布式数据库的 本地拷贝相抵触,但是将保持运行时间数据的本地拷贝,即,运行时间 数据不一定必须跨越分布式用例进行复制。但是,在许多联合计算环境 的情况下,不存在容留分布式高速緩冲的手段,也不存在会允许分布式 计算环境内的所有数据中心具有关于用户会话的信息、或者会允许任意 一个数据中心代表所有的数据中心对联合请求作出响应的分布式计算环 境。这些限制可能会因为技术原因、性能原因、或者策略原因而发生。 下文中针对典型的现有分布式环境描述该场境,并且进一步针对典型的 现有联合分布式环境描述该场境。在典型的现有分布式环境中,分布式环境配置有多个数据中心。根 据用法、接近度、以及到数据中心的先有分配将用户请求路由到数据中 心。例如,当收到初始HTTP请求时,负栽平衡器可以根据选择算法, 比如到用户的地理接近度、最小负载、最近使用等,确定用户的请求将 被路由到特定的数据中心。负载平衡器将建立某些形式的"粘附性",以 确保用户的所有随后请求都路由到该数据中心。该粘附性基于与用户、 或者更重要地负责^用户的代理比如HTTP浏览器应用相关联的某些 类型的数据。粘附数据大多数通常基于HTTP cookie、用户的IP地 址、SSL会活ID、或者绑定到用户和用户的HTTP会活的某些其它形 式.在一些情况下,请求并非源自用户或用户的代理应用;而是关于用
户的信息的请求从不具有粘附数据知识的其它实体代表用户生成。当在 负栽平衡器收到请求而没有粘附数据时,该请求将不会被绑定到用户的 先前请求,因此不能保证其将被路由到服务该用户的请求的数据中心,即,管理用户的会话的数据中心。因此,诸如机器-机器SOAP/HTTP 请求的请求不会绑定到用户,并且没有办法由负载平衡器容易地将其与 用户相关联。对于典型的现有联合分布式环境,标识提供商可以具有地理上跨越 国家,例如西海岸、西南部、中西部、东海岸、新英格兰等,分布的多 个数据中心。在示例场境中,用户可以启动尝试访问标识提供商的资 源;用户可以尝试访问标识提供商的许多资源中的一个,例如登录请 求、用于公共/专有资源的请求、或者根据服务提供商的重定向访问标 识提供商的SSO URL尝试。用于标识提供商的负载平衡器将用户分配 到标识提供商的分布式计算环境内的特定数据中心。然后负载平衡器将 建立某种手段在他们会话期间将用户"粘附"到该数据中心。用户可以具有绑定到标识提供商的数据中心之一的会活,但是服务 提供商没有办法知道这一点(乃至知道标识提供商的计算环境内存在多 个数据中心)。当用户与服务提供商交互时,使用与标识提供商交互时 所使用的同一个代理,比如浏览器应用。当服务提供商需要从标识提供 商检索关于用户的信息时,存在两种基本的手段来实现通过调用到涉 及用户的浏览器的标识提供商的间接信道,或者通过直接调用标识提供 商处所请求的资源。在第一种情况下,例如通过使用HTTP重定向调用 用户的浏览器/信道将允许用户的粘附数据比如HTTP cookie与请求一 起M送到标识提供商的负载平衡器,从而负载平衡器能够正确地将请 求路由到具有关于用户(静态及运行时间)的所有适当信息的标识提供商 的数据中心。但是,在第二种情况下,当服务提供商直接调用代表用户的标识处 的资源时,用户的浏览器/代理并不会陷于该请求,并且由此该请求在 负栽平衡器处被接收而没有任何粘附数据以将该请求路由到适当的数据 中心。负载平衡器然后将该请求路由到在此时间点选择的数据中心,如 果该请求在具有关于用户的当前运行时间数据的数据中心处接收,则该 数据中心可以成功地完成该请求。如果该请求在不具有关于用户的当前 运行时间数据的数据中心处接收,则该数据中心没有完成该请求的手段;该结果在其中分布式高速緩冲/运行时间不可行的(如果仅对于实时 保持所有必要的运行时间数据所需的性能开销)分布式环境中是相当普 遍的。因此,当服务提供商发送请求给联合计算环境内一组分布式数据中 心中的一个时,如果使用"直接"方式(例如服务提供商和数据中心之间 的SOAP/HTTP)将该请求发送给数据中心,则没有办法使得负栽平衡/ 路由功能确定将该请求绑定到哪一个用户,并由此无法确定应该将该请 求路由到哪一个数据中心,因此,数据中心可能会收到关注该数据中心 没有其有关知识的用户的请求,并且由此没有办法完成该请求。本发明允许分布式联合数据中心代理该请求到其它数据中心,以便 希望找到具有完成该请求所需的运行时间信息的数据中心。本发明的优 选方案通过为每一个数据中心分配标识符或标0降低了搜索多个数据 中心的必要。在数据中心生成工件时,数据中心附加/嵌入其标签值/标 识符到工件上/中。例如,数据中心可以将其标签附加到包括在浏览器 工件内的简明提供商ID字段中。由于该工件不翻艮务提供商使用,因 此对于该标^i没有互操作性要求。该办法允许所有的数据中心继续被 标识为单个简明提供商ID,这是自由联盟的要求,即,被标识为属于 单个标识提供商,由此标识提供商内的每一个数据中心能够根据其标签 值被具体标识。对于数据中心从其它数据中心检索工件引用的数据对象,该标^i 可以用于直接从适当的数据中心检索工件引用的数据对象,而无需在多 个数据中心中执行搜索。例如,如果数据中心与SAML断言检索请求消息中接收的简明提供 商ID标签(SuccinctProviderlD—tag)不相对应,则将根据该标^i确定 正确的数据中心.用于该SAML断言的请求将根据该标签值重新发布 到合适的数据中心;数据中心能够将数据对^险索请求消息直接发送给
适当的数据中心,而无需启动跨越其它数据中心的搜索。应该指出的是,该办法并不表示特定规范不允许时的重放(r印lay),因为技术上说重放意味着数据中心已经接收并完成了 SAML断言检索请求,然后第二次接JlM目同的请求。应该指出的是,尽管在全功能的数据处理系统的语境中描述了本发明,但是本领域的普通技术人员应该理解,本发明的处理过程也能够以 计算机可读存储介质中的指令的形式或者其它不同的形式进行分发,而无需考虑分发所实际使用的信号承载介质的具体类型。示例计算机可读 存储介质包括EPROM、 ROM、磁带、纸张、软盘、硬盘驱动器、 RAM、以及CD-ROM。方法通常构思为导致期望结果的自身协调一致的步骤序列。这些步 骤需要物理量的物理操纵。虽然不是必需的,但通常这些量采用能够被 存储、传输、组合、比较、以及其它处理的电或磁信号的形式。主要是 由于共同使用的原因,有时将这些信号称作比特、值、参数、条目、元 素、对象、符号、字符、术语、数字等非常便利。但是,应该指出的 是,所有这些术语或者类似的术语都与适当的物理量相关联,并且仅仅 是应用于这些量的便利标注。出于说明的目的已经展示了本发明,但是并不试图穷举本发明或者 将本发明限于所公开的这些实施例。许多修改和变化对于本领域的普通 技术人员是显而易见的.所选实施例用于说明本发明的原理及其实际应 用,并且便于本领域的其他普通技术人员理解本发明,以便进行各种可 能适用于其它预期应用的修改而实现不同的实施方案.
权利要求
1.一种在联合计算环境内的联合实体之间传输数据对象的方法,该计算机实施的方法包括第二联合实体从第一联合实体接收数据对象检索请求,其中第二联合实体根据第二联合实体和第一联合实体之间的信任关系发布用于第一联合实体的工件,第二联合实体的服务由分布式数据处理系统内的一组数据处理系统提供,并且该组数据处理系统内的每一个数据处理系统生成工件;该组数据处理系统中的第一数据处理系统从数据对象检索请求中提取工件,其中所述工件引用第二联合实体所存储的数据对象;从工件中提取标签,其中该组数据处理系统内的每一个数据处理系统是唯一地可标识的,每一个工件包括标签,并且每一个标签具有指示该组数据处理系统内生成标签的数据处理系统的值;以及使用所提取的标签标识该组数据处理系统内生成所述工件的数据处理系统。
2. 根据权利要求1所述的方法,还包括 确定所提取的标签标识第 一数据处理系统生成所述工件; 使用所述工件搜索第一数据处理系统的本地数据库; 检索由所述工件引用的数据对象;以及从第 一数据处理系统向第 一联合实体返回包括数据对象的数据对象 检索响应。
3. 根据权利要求1所述的方法,还包括 确定所^取的标签标识第二数据处理系统生成所述工件; 从第一数据处理系统向第二数据处理系统发送检索请求,其中检索请求包含所述工件;第一数据处理系统从第二数据处理系统接收检索响应,其中检索响 应包含数据对象;以及从第 一数据处理系统向第 一联合实体返回包括数据对象的数据对象检索响应。
4. 根据权利要求3所述的方法,还包括第二数据处理系统从第一数据处理系统接收检索请求,其中检索请 求包含工件;以及从第二数据处理系统向第一数据处理系统发送检索响应,其中检索 响应包含数据对象。
5. 根据权利要求4所述的方法,还包括 使用工件搜索第二数据处理系统的本地数据库;以及 检索由所述工件引用的数据对象。
6. 根据权利要求5所述的方法,还包括 从本地数据库删除数据对象。
7. 根据权利要求1所述的方法,其中第一联合实体;U艮务提供商, 并且第二联合实体是标识提供商。
8. 根据权利要求1所述的方法,其中第一联合实体是标识提供商, 并且第二联合实体;U艮务提供商。
9. 根据权利要求1所述的方法,其中第一联合实体是发布方,并且 第二联合实体是依赖方。
10. 根据权利要求1所述的方法,其中第一联合实体是依赖方,并 且第二联合实体是发布方。
11. 根据权利要求1所述的方法,其中数据对象是断言。
12. 根据权利要求l所述的方法,其中数据对象是安全断言。
13. 根据权利要求1所述的方法,其中在认证操作期间检索所述数 据对象。
14. 一种计算机可读存储介质上的计算机程序产品,用于在联合计 算环境内的联合实体之间传输数据对象,所述计算机程序产品包括用于 执行前述方法权利要求的任何一种方法的指令。
15. —种用于在联合计算环境内的联合实体之间传输数据对象的装 置,所述装置包括用于第二联合实体从第一联合实体接收数据对*^索请求的部件, 其中第二联合实体根据第二联合实体和第一联合实体之间的信任关系发布用于第一联合实体的工件,第二联合实体的服务由分布式数据处理系 统内的一组数据处理系统提供,并且该组数据处理系统内的每一个数据处理系统生成工件;用于该组数据处理系统中的第 一数据处理系统从数据对象检索请求 中提取工件的部件,其中所述工件引用第二联合实体所存储的数据对象;用于从工件中提取标签的部件,其中该組数据处理系统内的每一个 数据处理系统是唯一地可标识的,每一个工件包括标签,并且每一个标 签具有指示该组数据处理系统内生成标签的数据处理系统的值;以及据处理系统的部件。'';、" 、z '
16. 根据权利要求15所述的装置,还包括用于确定所提取的标签标识第一数据处理系统生成所述工件的部件;用于使用所述工件搜索第 一数据处理系统的本地数据库的部件; 用于检索由所述工件引用的翁:据对象的部件;以及 用于从第 一数据处理系统向第 一联合实体返回包括数据对象的数据 对M索响应的部件。
17. 根据权利要求15所述的装置,还包括用于确定所提取的标签标识第二数据处理系统生成所述工件的部件;用于从第一数据处理系统向第二数据处理系统发送检索请求的部件,其中检索请求包含所述工件;用于第 一数据处理系统从第二数据处理系统接收检索响应的部件, 其中检索响应包含数据对象;以及用于从第 一数据处理系统向第 一联合实体返回包括数据对象的数据 对^J险索响应的部件。
18. 根据权利要求17所述的装置,还包括 用于第二数据处理系统从第 一数据处理系统接收检索请求的部件,其中检索请求包含工件;以及用于从第二数据处理系统向第一数据处理系统发送检索响应的部件,其中检索响应包含数据对象。
19. 根据权利要求15所述的装置,其中第一联合实体是服务提供商,并且第二联合实体是标识提供商。
20. 根据权利要求15所述的装置,其中第一联合实体是标识提供 商,并且第二联合实体AJ3良务提供商。
全文摘要
本发明公开一种使用工件在联合计算环境内的联合实体之间传输数据对象的方法。第一联合实体从第二联合实体接收工件,第二联合实体生成数据对象比如断言在第一联合实体中使用或者由第一联合实体使用。工件引用由第二联合实体本地存储的数据对象,第二联合实体实施为具有多个数据处理系统的分布式系统,每一个数据处理系统能够生成工件及其相关联的数据对象、并且能够代理检索请求到第二联合实体内的系统。每一个工件包括标签,用于指示第二联合实体内生成所述工件的数据处理系统。当第二联合实体从第一联合实体接收到具有工件的检索请求时,使用工件和标签从分布式数据处理系统中检索合适的数据对象。
文档编号H04L29/08GK101127606SQ20071012830
公开日2008年2月20日 申请日期2007年7月6日 优先权日2006年7月8日
发明者希泽尔·M.·辛顿, 帕特里克·R.·瓦尔德罗普, 马修·P.·杜甘 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1