CN101102257A - 传输数据对象的方法和装置 - Google Patents
传输数据对象的方法和装置 Download PDFInfo
- Publication number
- CN101102257A CN101102257A CNA2007101279996A CN200710127999A CN101102257A CN 101102257 A CN101102257 A CN 101102257A CN A2007101279996 A CNA2007101279996 A CN A2007101279996A CN 200710127999 A CN200710127999 A CN 200710127999A CN 101102257 A CN101102257 A CN 101102257A
- Authority
- CN
- China
- Prior art keywords
- handling system
- data
- data handling
- user
- data object
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1017—Server selection for load balancing based on a round robin mechanism
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种使用工件在联盟内的联合实体之间传输数据对象的方法。比如服务提供商的第一联合实体从比如标识提供商的第二联合实体接收工件,第二联合实体生成数据对象比如断言,在第一联合实体中使用或者由第一联合实体使用。工件引用由第二联合实体本地存储的数据对象,第二联合实体实施为具有一组数据处理系统的分布式数据处理系统,每一个数据处理系统能够生成工件和工件引用的数据对象,并且每一个数据处理系统能够代理数据对象检索请求到分布式数据处理系统内的其它数据处理系统。当第二联合实体从第一联合实体接收到具有工件的数据对象检索请求时,使用工件从分布式数据处理系统中检索工件引用的数据对象。
Description
技术领域
本发明涉及一种改进的数据处理系统,更具体地涉及一种用于多计算机数据传输的方法和装置。进一步地说,本发明针对联网的计算机系统。
背景技术
为了降低用户管理成本和改进企业间的相互协作,已经创建了联合的计算空间。联盟是拥护特定协作标准的企业的松散联合体。对于联盟内的用户,针对特定的计算操作联盟提供企业间的信任机制。例如,一个联盟伙伴可以担任用户的主域(home domain)或标识提供商。同一联盟内的其它伙伴可以依赖用户的标识提供商进行用户的认证证书的主要管理,例如接受由用户的标识提供商提供的单点登录令牌。
在企业提出支持联合商业交互时,这些企业应当提供反映增强两个商务之间的合作并使用户的操作负担最小化的用户体验。在这些联盟内,这些企业已经开始相互协作,以支持用户可能毫无察觉或稍有察觉的多种联盟协议。例如,联合的企业可以执行多种类型的操作用于用户账户管理,例如管理用户特有的别名标识符,这可能需要与用户进行最小限度的交互以完成操作。联合的企业应当合作到使用户对此类型操作协调的底层机制不会感到困惑或感到负担过重的程度。
但是,在联盟内实施这些操作时应当考虑到折衷。各种操作,比如那些完成操作可能需要与用户进行最小限度的交互的操作,也应该以对于联合的企业高效的方式来执行,尤其是对于可能需要横跨企业内部的所有用户的那些类型的操作。例如,当需要对成千上万的用户比如特定企业的所有客户执行特定操作时,要求执行该操作的机制是能够升级的,从而不会使联合的企业的计算资源负担过重,然而这些不同类型的操作可以以对卷入必要操作的联合企业的负担发生变化的各种方式来实施。
解决联合的企业内的计算资源上的负担的一种办法是在分布式数据处理系统内实施联合的功能。例如,标识提供商的服务可以在分布式数据处理系统内支持。但是,分布式数据处理系统的特性可能存在问题,联合的协议操作的某些要求可能会使在分布式数据处理系统内实施用于执行这些联合的协议操作的功能非常复杂。
更具体地说,联合的实体,比如标识提供商和服务提供商,在联合的环境内生成数据对象。许多联合的操作或协议简档(profile)使用工件(artifact)来检索数据对象。工件引用的数据对象和相关联的工件之间的引用关系必需在任何联合的计算环境中保持,而不管联合的实体是否实施为分布式数据处理系统类型。尽管使用工件执行联合的协议操作的功能可以实施为分布式数据处理系统,但是分布式数据处理系统的特性会使任何的该实施变得非常复杂。
因此,实施联合企业及其计算基础设施使得联合企业的数据处理系统内的联合协议操作能够高效并可配置地进行管理将是非常有利的。在分布式数据处理系统内有效实施用于联合协议操作的功能,尤其是用于执行使用工件的联合协议操作的功能将更加有利。
发明内容
提供一种通过使用工件在联合计算环境内的联合实体之间传输数据对象的方法、装置和计算机程序产品。比如服务提供商的第一联合实体从比如标识提供商的第二联合实体接收工件。第二联合实体生成数据对象比如断言(assertion)或任何其它类型的数据对象,用于根据第二联合实体和第一联合实体之间的信任关系在第一联合实体中使用或者由第一联合实体使用,并且工件引用由第二联合实体本地(local)存储的数据对象。第二联合实体的服务由分布式数据处理系统内的一组数据处理系统提供,并且该组数据处理系统内的每一个数据处理系统能够生成工件和工件引用的数据对象。第二联合实体从第一联合实体接收包含工件的数据对象检索请求,并且接收到数据对象检索请求的第二联合实体中的第一数据处理系统从数据对象检索请求中提取工件。工件由第一数据处理系统使用来从第二联合实体的该组数据处理系统中的第二数据处理系统检索工件引用的数据对象,然后数据对象检索响应从第二联合实体返回第一联合实体。
附图说明
本发明的新颖特征在所附权利要求中阐明。从下面结合附图的详细描述中,本发明自身、进一步的目的及其优点将变得更加清楚。其中:
图1A示出每一个均可以实施本发明的多个数据处理系统的典型网络;
图1B示出可以在能够实施本发明的数据处理系统中使用的典型计算机体系结构;
图2示出说明针对由用户对第一联合企业发起的事务的联合环境的术语的方框图,第一联合企业在响应中调用联合环境内下游实体处的动作;
图3示出说明在给定域现存数据处理系统与可以用来支持本发明实施例的某些联合体系结构组件的集成的方框图;
图4示出说明其中联合体系结构内的一些组件可以用来建立信任关系以支持本发明的实施的示例方式的方框图;
图5示出根据能够支持本发明的示例联合体系结构、使用信任代理和信任经纪说明联合域之间的信任关系的示例集合的方框图;
图6示出说明支持联合单点登录操作的联合环境的方框图;
图7示出说明在用于实施联合用户生命周期管理功能的联合域中的一些组件的方框图以便支持本发明;
图8示出实施为分布式数据处理系统的联合实体的方框图,以便支持工件引用的数据对象的分布式检索;
图9A-9C示出其中在使用支持分布式断言检索的分布式数据处理系统实施的标识提供商内第一数据处理系统从第二数据处理系统检索断言的场境的方框图;
图10示出在使用支持工件引用的数据对象的分布式检索的分布式数据处理系统实施的标识提供商内的处理的流程图;
图11示出其中数据中心执行链式搜索用以从联合实体内的其它数据中心检索数据对象的处理的流程图;以及
图12示出其中数据中心执行轮毂-轮辐类型的搜索用以从联合实体内的其它数据中心检索数据对象的处理的流程图。
具体实施方式
一般而言,可能包括或者与本发明相关的设备包括各种不同的数据处理计数。因此,作为背景,在详细描述本发明之前首先描述分布式数据处理系统内的硬件和软件组件的典型组织。
现在参照附图,图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连接到网络110,并且PDA 113通过无线链路114连接到网络110。电话111和PDA 113也可以使用适当的技术比如蓝牙无线技术通过无线链路115在它们之间直接传输数据,以创建所谓的个人区域网或个人专用网。以类似的方式,PDA 113可以通过无线通信链路116传输数据给PDA 107。
本发明可以在各种硬件平台和软件环境下实施。图1A仅仅作为异机种的计算环境的一个实例,并不用作本发明的体系结构限制。
现在参照图1B,示出可以实施本发明的如图1A所示的那些数据处理系统的典型计算机体系结构。数据处理系统120包含一个或多个连接到内部系统总线123的中央处理单元(CPU)122,系统总线123互连随机存取存储器(RAM)124、只读存储器126、以及支持各种I/O设备(诸如打印机130、盘单元132或比如音频输出系统的未示出的其它设备)的输入/输出适配器128。系统总线123还连接通信适配器134,用以提供到通信链路136的访问。用户接口适配器148连接各种用户设备,比如键盘140和鼠标142、或其它未示出的设备比如触摸屏、指示笔、麦克风等。显示适配器144将系统总线123连接到显示设备146。
本领域的技术人员应该理解图1B所示的硬件可以根据系统的实施而相应变化。例如,系统可以具有一个或多个处理器(比如基于IntelPentium的处理器以及数字信号处理器(DSP))、以及一种或多种类型的易失性和非易失性存储器。除了图1B所示的硬件,也可以使用其它外围设备或者用来替换图1B所示的硬件。所示的实例并不意味着对本发明的体系结构限制。
除了能够在各种硬件平台上实施之外,本发明也可以在各种软件环境中实施。典型的操作系统可以用来控制在每一个数据处理系统内的程序执行。例如,一个设备可以运行Unix操作系统,而另一个设备包含简单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 StructureInformation Standards)”发布。在“Assertions and Protocol for theOASIS Security Assertion Markup Language(SAML)”,CommitteeSpecification 01,05/31/2002中SAML被描述如下:
安全断言标记语言(SAML)是用于交换安全信息的基于XML的框架。该安全信息以关于主体的断言的形式表达,其中主体是在某些安全域中具有标识的实体(人或者计算机)。主体的典型例子是通过他或她的特定因特网DNS域中的电子邮件地址标识的人。断言可以传达关于主体执行的认证动作的信息、主体的属性、以及关于是否允许主体访问特定资源的认证决策。断言表示为XML构造并且具有嵌套结构,从而单个断言可能包含关于认证、授权和属性的数个不同的内部语句。注意包含认证语句的断言仅仅描述先前发生的认证的动作。断言通过SAML授权局,即认证授权局、属性授权局和策略决策点来发布。SAML定义通过其客户机能够向SAML授权局请求断言并且从中得到响应的协议。该协议包括基于XML的请求和响应消息格式,可以绑定到许多不同的底层通信和传输协议;SAML当前定义一种绑定,通过HTTP到SOAP。SAML授权局在创建响应时可以使用各种不同的信息资源,比如作为请求中的输入所接收的外部策略库和断言。因此,虽然客户机总是消耗断言,但是SAML授权局可以是断言的生产者和消耗者二者。
SAML规范声明断言是提供发布者作出的一个或多个语句的信息包。SAML允许发布者作出三种不同类型的断言语句:认证,其中指定的主体通过特定的方式在特定的时间进行认证;授权,其中允许指定的主体访问指定的资源的请求已经被授权或拒绝;以及属性,其中将指定的主体与所供应的属性相关联。如下文中将进一步讨论的,需要时可以将各种断言格式翻译成其它断言格式。
认证是验证由用户提供或者代表用户提供的一组证书的过程。认证通过证实用户知道某事、用户具有某物、或者用户是某人,即关于用户的某些物理特征来实现。用户知道的某事可以包括共享的秘密,比如用户口令,或者通过证实仅被特定用户知道的某物,例如用户的加密密钥。用户具有的某物可以包括智能卡或硬件令牌。关于用户的某些物理特征可以包括生物测量输入,例如指纹或视网膜地图。应该指出的是,用户通常是但不一定必须是自然人,用户可以是机器、计算设备、或使用计算资源的其它类型的数据处理系统。还应该指出的是,用户通常拥有但不一定必须拥有单个唯一的标识符;在某些场境下,多个唯一的标识符可以与单个用户相关联。
认证证书是用在各种认证协议中的一组询问/响应信息。例如,用户名和口令组合是认证证书的最熟知形式。认证证书的其它形式可以包括各种形式的询问/响应信息,公共密钥基础设施(PKI)证明、智能卡、生物测量等。认证证书与认证断言不同:认证证书作为认证协议序列的一部分由用户呈现给认证服务器或服务,而认证断言是关于成功呈现和验证用户的认证证书的语句、并且随后如果需要则在实体之间传输。
用于能够结合本发明的计算环境的联盟模型
在环球网的语境中,用户期望关于最小的每一个特定域之间的信息屏障、而从与一个因特网域上的应用的交互跳跃到另一个域上的另一个应用的能力。用户不希望针对单个事务必须在多个域上认证所造成的受挫。换句话说,用户期望组织应该相互协作,但是用户通常希望域尊重他们的隐私。另外,用户可能更喜欢限制永久存储私有信息的域。这些用户期望在快速发展的、许多企业和组织争相发布竞争认证技术的异质结构环境中大量存在。
本发明在允许企业为用户提供单点登录体验的联盟模型内得到支持。换句话说,本发明可以在联合的、异质结构的环境中实施。作为将受益于联合的异质结构环境的事务的例子,用户能够在一个域中认证,然后该域提供恰当的断言给事务中可能涉及的每一个下游域。这些下游域需要能够理解并信任认证断言和/或其它类型的断言,即使在该域和这些下游域之间没有预先建立的断言格式。除了识别断言之外,下游域需要能够将包含在断言内的标识翻译成代表特定域内的用户的标识,即使不存在预先建立的标识映射关系。
本发明在联合的环境中得到支持。一般而言,企业具有其自己的用户登记并维持与其自己的用户组之间的关系。每一个企业典型地具有其自己的方式来认证这些用户。但是,在本发明中使用的联合方案允许企业以集体的方式相互协作,使得一个企业中的用户能够通过企业参与企业联盟而影响(leverage)与一组企业的关系。用户被授权访问联合的企业的任何资源,就如同他们已经具有与每一个企业的直接关系。用户不需要在感兴趣的每一个商业上进行登记,并且用户不需要经常地标识和认证他们自己。因此,在该联合的环境中,认证方案允许在信息技术领域快速发展的异质结构环境中进行单点登录体验。
在本发明的上下文中,联盟是一组相互协作以为用户提供单点登录、轻松体验的独特的实体,比如企业,企业内的逻辑单元、组织、机构等;联合环境不同于典型的单点登录环境之处在于两个企业不必具有限定如何传输和传输哪些有关用户的信息的直接的、预先建立的关系。在联合环境内,实体提供处理认证用户、接受由其它实体呈现的认证断言例如认证令牌、以及提供某些形式的将担保用户的标识翻译成本地实体内能够理解的标识的服务。
联盟使得服务提供商的管理负担得以减轻。服务提供商可以依赖其对于作为整体的联合的信任关系;服务提供商不需要管理认证信息,比如用户口令信息,因为可以依赖由用户的认证主域或标识提供商实现的认证。
支持本发明的系统也关注联合标识管理系统,其建立其中松散联合认证、用户登记、用户简档管理和/或授权服务跨安全域合作的基础。即使在这些全异域的底层安全机制和操作系统平台中可能存在差异,联合标识管理使得驻留在全异安全域中的服务也能够安全地互操作和合作。
标识提供商vs.服务提供商
如上文中提到的以及下面将进一步说明的,联合环境提供显著的用户优越性。联合环境允许用户在第一实体进行认证,第一实体可以担当发布有关用户在第二实体使用的认证断言的发布方。然后用户通过呈现由第一实体发布的认证断言可以访问在第二、独特的实体(称作依赖方)处的受保护的资源,而无需明确地在第二实体进行重新认证。从发布方传递给依赖方的信息是断言的形式,并且该断言可以包含语句形式的不同类型的信息。例如,断言可以是关于用户的认证标识的语句,或者可以是关于与特定用户相关的用户属性信息的语句。此外,该信息可以由依赖方使用,以根据依赖方的访问控制规则、标识映射规则、以及由依赖方保持的可能的某些用户属性提供对依赖方的资源的访问。
现在参照图2,示出说明针对由用户对第一联合企业发起的事务的联合环境的术语的方框图,第一联合企业在响应中调用联合环境内下游实体处的动作。图2表示对于给定的联合操作术语可能根据联盟内实体的全景(perspective)而不同。更具体地说,图2表明支持本发明的计算环境支持信任的传递和认证断言过程的传递;域或实体可以根据在由其它域或其它实体断言的实体中的信任发布断言。
用户202通过请求企业204的受保护的资源而发起事务。如果用户已经由企业204认证或者在事务期间最终会被企业204认证,则对于该联合的会话可以将企业204称作用户的主域。假定事务需要通过企业206的某类型的操作并且企业204传输断言给企业206,则对于该特定操作企业204是发布实体,而对于该操作企业206是依赖实体。
发布实体发布由依赖域使用的断言;发布实体通常是但是不一定必须是用户的主域或用户的标识提供商。因此,通常是发布方已经使用典型的认证操作认证了用户的情形。但是,也有可能是发布方先前作为依赖方而从不同的发布方收到断言。换句话说,由于用户发起的事务可能会通过联合环境内的一系列企业而级联,因此接收方接下来可能会作为下游事务的发布方。总而言之,具有代表用户发布认证断言能力的任何实体都可以担当发布实体。
依赖实体是从发布实体接收断言的实体。依赖方能够接受、信任并且理解由第三方,即发布实体代表用户发布的断言;通常依赖实体的任务是使用恰当的认证授权局解释认证断言。依赖方是依赖于代表用户呈现的断言或其它实体的实体。以这种方式,能够在依赖实体给予用户单点登录体验,而不需要依赖实体针对用户的认证证书而提醒用户作为与用户的交互式会话的一部分。
再次参照图2,假定事务需要进一步的操作使得企业206传输断言给企业208,那么针对随后的或下一级事务操作企业206是担当发布实体的上游实体,而对于该操作企业208是担当依赖实体的下游实体;在这种情况下,对于初始的事务可以将企业208看作另一个下游实体,尽管也可以仅针对两个实体来描述随后的事务。
如图2所示,联合实体可以担当用户的主域,其提供关于联合用户的标识信息和属性信息。联合计算环境内提供标识信息、标识或认证断言、或者标识服务的实体称作标识提供商。同一联盟内的其它实体或联盟伙伴可以依赖于标识提供商进行用户的认证证书的主要管理,例如接受由用户的标识提供商提供的单点登录令牌;对用户进行认证的域可以称作用户的(认证)主域。标识提供商物理上可以由用户的雇主、用户的ISP、或者某些其它的商业实体支持。
标识提供商是是特定类型的服务,其提供标识信息作为对联合计算环境内其它实体的服务。对于大多数联合事务,对于认证断言的发布方通常是标识提供商;任何其它的实体可以从标识提供商区别出来。联合计算环境内提供服务的任何其它的实体可以归类为服务提供商。一旦用户已经进行了到标识提供商的认证,对于给定联合会话或给定联合事务期间,联盟内的其它实体或企业可以仅被看作服务提供商。
在一些情形下,联合环境内可以存在针对用户担当标识提供商的多个实体。例如,用户可以在多个联合域内具有账户,每一个域都能够担当针对用户的标识提供商;这些域不一定必须具有关于其它域的信息,也不一定必须具有关于不同域中用户的标识的信息。
尽管联合环境内可能存在担当标识提供商的多个企业,例如由于存在具有生成和验证用户的认证证书等能力的多个企业,但是联合事务通常仅涉及单个标识提供商。如果仅有单个能够认证用户的联合实体,例如由于联盟内存在一个并且仅存在一个用户已经与其执行了联合登记或注册操作的实体,那么将期望该实体担当用户的标识提供商,以便贯穿联合环境支持用户的事务。
在需要多个服务提供商的相互协作的某些联合事务内,下游服务提供商可以从上游服务提供商接受断言;其中上游服务提供商可以作为正在用作依赖方的下游服务提供商的发布实体的条件取决于服务提供商之间的信任关系的类型和服务提供商之间的事务的类型。但是,在简单联合事务的范围内,仅有一个实体用作发布实体。
本发明可以在给定计算环境内得到支持,其中可以将联合的基础设施添加到现有系统中,而同时最小化对现有的非联合体系结构的影响。因此,在任何给定企业或服务提供商的包括认证操作的操作不一定必须随着实体也可以参与联合环境这一事实而改变。换句话说,即使实体的计算系统可能会集成到联合环境中,但是用户仍然可以以非联合的方式直接与企业执行包括认证操作的各种操作。但是,用户可以具有相同的终端用户体验,而同时执行针对给定实体的联合操作,就象用户已经以非联合的方式与给定实体执行了类似的操作。因此,应该指出的是,在给定企业参与联盟时,不是所有的给定企业的用户都必须参与联合事务;企业的一些用户可以与企业的计算系统交互而不执行任何联合事务。
此外,给定企业的计算环境内的用户注册,例如在计算机系统中建立用户账户,不一定必须随着企业可能参与联合环境这一事实而改变。例如,用户仍然可以通过独立于联合环境的遗留或现存注册过程在域内建立账户。因此,在某些情况下,当企业参与到联合计算环境时,在企业内用户账户的建立可以包括也可以不包括在联盟内有效的账户信息的建立。
联合体系结构--针对遗留系统的联盟前端
现在参照图3,示出在给定域现存数据处理系统与可以用来支持本发明实施例的某些联合体系结构组件的集成的方框图。联合环境包括为用户提供各种服务的联合实体。用户312与能够支持浏览器应用316和各种其它客户机应用318的客户机314交互。用户312与客户机设备314、浏览器316、或用作用户与其它设备和服务的接口的任何其它软件不同。在某些情况下,下面的描述将对明显在客户机应用中动作的用户和代表用户动作的客户机应用加以区分。然而,通常请求者是可以假定为代表用户动作的媒介,例如基于客户机的应用、浏览器、SOAP客户机等。
浏览器应用316可以是典型的浏览器,包括在移动设备上建立的那些,浏览器应用316包括许多模块,比如HTTP通信组件320和标记语言(ML)解释器322。浏览器应用316也可以支持插件,比如网络服务客户机324和/或可下载的小程序,其可能需要或不需要虚拟机运行时间环境。网络服务客户机324可以使用简单对象接入协议(SOAP),其是一种用于在分散、分布式环境中定义结构化和分类型的信息的交换的轻量级协议。SOAP是基于XML的协议,包括三个部分:信封,定义用于描述消息中有什么和如何处理的框架;一组编码规则,用于表达应用限定的数据类型的实例;以及协定,用于表示远程例程调用和响应。用户312可以使用浏览器应用316访问基于网络的服务,但是用户312也可以通过客户机设备314上的其它网络服务客户机访问网络服务。一些联合操作可以通过用户浏览器使用HTTP重定向,以在联合环境中的实体之间交换信息。但是,应该指出的是,本发明可以在各种通信协议上得到支持,并不限于基于HTTP的通信。例如,如果必要联合环境中的实体可以直接进行通信;消息不一定必须通过用户的浏览器进行重定向。
本发明可以以联合环境所需要的组件能够与现存系统集成的方式得到支持。图3示出将这些组件实施为现存系统的前端的一个实施例。联合域的现存组件可以看作遗留应用或后端处理组件330,包括认证服务运行时间(ASR)服务器332,与图4所示的方式类似。在域控制对应用服务器334的访问时,ASR服务器332负责认证用户,其可以考虑为生成、检索、或者否则而支持或处理受保护的资源335。域可以继续使用遗留用户注册应用336以便注册访问应用服务器334的用户。针对遗留操作认证注册的用户所需要的信息存储在企业用户注册簿338中;企业用户注册簿338也可以被联合组件访问。
在加入联合环境之后,域可以继续操作而没有联合组件的干扰。换句话说,可以配置域使得用户可以继续直接访问特定的应用服务器或其它受保护的资源,而不通过接触点(point-of-contact)服务器或实施该接触点服务器功能的其它组件;以这种方式访问系统的用户将体验典型的认证流和典型的访问。但是,如此作,直接访问遗留系统的用户将不能建立域的接触点服务器知晓的联合会话。
通过使用联盟前端处理340可以将域的遗留功能集成到联合环境,联盟前端处理340包括接触点服务器342和自身与安全令牌服务(STS)346交互的信任代理服务器344(或更简单地,信任代理344或信任服务344),这将在下文中结合附图4进行详细描述。联盟配置应用348允许管理用户配置联盟前端组件,以使他们通过联盟接口单元350与遗留后端组件相接。联合功能可以在独立的系统组件或模块中实施。在优选实施例中,多数执行联盟操作的功能可以通过单个联盟应用内的逻辑组件集合来实施;联合用户生命周期管理应用352包括信任服务344连同单点登录协议服务(SPS)354。信任服务344可以包括标识和属性服务(IAS)356,负责作为部分联盟功能的标识映射操作、属性检索等。标识和属性服务356在单点登录期间也可以由单点登录协议服务354使用。在某些环境下联盟用户注册358可以用来保持与用户相关的信息用以联盟特定目的。
在给定企业的遗留或现有认证服务可以使用各种公知的认证方法或令牌,比如用户名/口令或基于智能卡令牌的信息。但是,在支持本发明的优选联合计算系统中,通过使用接触点服务器遗留认证服务的功能可以在联合环境中使用。用户可以继续直接访问遗留认证服务器而不用通过接触点服务器,尽管以这种方式访问系统的用户将经历典型的认证流和典型的访问;根据本发明,直接访问遗留认证系统的用户将不可能生成联合认证断言作为标识证据。联盟前端的一个规则是将在接触点服务器接收的联合认证令牌翻译成由遗留认证服务理解的格式。因此,通过接触点服务器访问联合环境的用户将不需要对遗留认证服务进行重新认证。优选地,用户将通过接触点服务器和信任代理的组合被遗留认证服务进行认证,使得就象用户参加到认证对话一样。
联合体系结构--接触点服务器、信任代理和信任经纪
现在参考图4,示出其中联合体系结构内的一些组件可以用来建立信任关系以支持本发明的实施的示例方式的方框图。联合环境包括为用户提供各种服务的联合企业或类似实体。用户通过客户端设备上的应用可以尝试访问不同实体例如企业410的资源。每一个联合企业处的接触点服务器,比如企业410的接触点(POC)服务器412是到联合环境的进入点,用于从客户端请求访问企业410支持并且使其可用的资源。接触点服务器使得对现有、非联合体系结构例如遗留系统内的现有组件的影响最小化,因为接触点服务器处理大量的联盟要求。接触点服务器提供会话管理、协议转换,并且可能发起认证和/或属性断言转换。例如,接触点服务器可以将HTTP或HTTPS消息翻译成SOAP,反之亦然。如在下面将进一步解释的,接触点服务器也可以用来调用信任代理来翻译断言,例如,可以将从发布方接收的SAML令牌翻译成接收方能够理解的Kerberos令牌。
信任服务(也称作信任代理,信任代理服务器或信任服务),比如企业410的信任代理(TP)414建立并保持联盟内两个实体之间的信任关系。信任服务通常具有处理认证令牌格式翻译的能力(通过下文中将详细描述的安全令牌服务),从发布方使用的格式翻译成接收方能够理解的格式。
同时使用接触点服务器和信任服务使得在现有、非联合系统组上实施联合体系结构的影响最小化。因此,示例联合体系结构需要每一个联合实体实施至少一个接触点服务器和至少一个信任服务,而不管实体是企业、域还是其它逻辑或物理实体。但是示例联合体系结构不一定必须对现有、非联合系统组进行任何改变。优选地,对于给定联合实体采用单个信任服务,虽然为了实用性可能存在多种信任服务实例,或者对于联合实体内的多个更小实体例如企业内的独立子公司可能存在多个信任服务。有可能给定实体属于多于一个联盟,但是该场境不一定必须要求多个信任服务,由于单个信任服务能够用于管理多个联盟内的信任关系。
信任服务的一个任务是确定或负责确定另一个域和/或该域中的信任服务所需的令牌类型。信任服务具有处理认证令牌格式翻译的能力或责任,从发布方使用的格式翻译成接收方能够理解的格式。信任服务414也可以负责针对企业410发生的任意用户标识翻译或属性翻译,或者该责任可以由独立的标识和属性服务支持,例如图3所示的标识和属性服务356。另外,信任服务能够支持将别名实施为用于无需提供任何有关用户的真实世界标识的附加信息而唯一地识别用户的用户标识的代表。此外,信任代理可以发布由接触点服务器使用的授权和/或会话证书。但是,如下文中描述的,信任服务可以调用信任经纪来辅助。标识翻译可能需要将发布方已知的用户的标识和属性映射为对于接收方有意义的标识和属性。该翻译可以由发布实体的信任服务或接收实体的信任服务来调用,也可以二者都调用。
上面提到的信任服务414独立的标识和属性服务可以包括示为安全令牌服务(STS)组件416的内部化的组件(或者与其交互),安全令牌服务组件416提供令牌翻译并调用认证服务运行时间(ASR)418来验证和生成令牌。安全令牌服务提供信任服务所需的令牌发布和验证服务,可能包括标识翻译。因此,安全令牌服务包括与现有认证服务运行时间的接口,或者将认证服务运行时间结合到服务自身。除了包括在信任服务内部之外,安全令牌服务组件也可以实施为例如由信任服务调用的单独的组件,或者也可以包括在例如作为应用服务器的一部分的事务服务器之内。
例如,安全令牌服务组件可以接收请求以发布Kerberos令牌。作为为其创建令牌的用户的认证信息的一部分,该请求可以包含含有用户名和口令的二进制令牌。安全令牌服务组件将对照例如LDAP运行时间(典型地认证)验证用户名和口令并调用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、安全令牌服务组件416、以及认证服务运行时间418表示为独立的实体,但是无需这些组件在分离的组件上实现。例如,可以将这些分离组件的功能实施为单个的应用、单个物理设备上的应用、或者多个物理设备上的分布式应用。另外,图4对一个企业示出了单个接触点服务器、单个信任服务、以及单个安全令牌服务器,但是可替代的配置对于每一个企业可以包括多个接触点服务器、多个信任服务、以及多个安全令牌服务器。接触点服务器、信任服务、安全令牌服务、以及其它联合实体可以以各种形式实现,例如软件应用、对象、模块、软件库等等。
信任服务/STS能接受和验证多种不同的认证证书,包括比如用户名和口令组合以及Kerberos票据的传统证书、以及包括由第三方产生的认证令牌的联合认证令牌格式。信任服务/STS可以允许认证令牌的接受作为在别处认证的证据。认证令牌由发布方产生并且用于指示用户已经针对该发布方进行了认证。发布方产生认证令牌作为断言用户的认证标识的一种手段。信任服务/STS也能够处理属性令牌或用于安全通信会话或对话的令牌,例如用于以类似于SSL会话标识符的方式管理会话信息的那些令牌。
如果必要,安全令牌服务调用认证服务运行时间。认证服务运行时间支持能够认证用户的认证服务。认证服务担当认证授权局,通过认证响应提供成功或失败认证尝试的指示。信任服务/STS可以内部化认证服务,例如其中存在不需要与现有遗留基础设施交互的全新网络服务的安装的场境。否则,安全令牌服务组件将调用外部认证服务用于验证认证令牌。例如,安全令牌服务组件能够对包含用户名/口令的令牌进行解包,然后使用LDAP服务访问用户注册以便验证所呈现的证书。
在由诸如应用服务器的其它组件使用时,安全令牌访问组件能够用于产生单点登录到遗留认证系统所需的令牌;该功能可以与诸如图3所示的SPS 354的单点登录协议服务内的功能组合在一起或者由其替代。因此,安全令牌服务组件能够用来进行令牌翻译,用于内部目的,即在企业内部,以及用于外部目的,即跨越联盟内的企业。作为内部目的的例子,网络应用服务器可以通过IBM CICS(客户信息控制系统)事务网关与主机接口;CICS是提供用于任务评定应用的企业级在线事务管理和连通性的一族应用服务器和连接器。网络应用服务器可以调用安全令牌服务组件将Kerberos票据(由网络应用服务器内部使用)翻译成CICS事务网关所需的IBM RACF通行票据。
图4中所示的实体可以使用在上面介绍的术语比如“标识提供商”和“服务提供商”来解释。作为建立和保持信任关系的一部分,标识提供商的信任服务可以确定服务提供商的信任服务需要/接受哪种令牌类型。由此,在从安全令牌服务调用令牌服务时信任服务使用该信息。当需要标识提供商的信任服务为服务提供商产生认证断言时,信任服务确定所需要的令牌类型并从安全令牌服务请求适当的令牌。
在服务提供商的信任服务从标识提供商接收认证断言时,信任服务知道其期望哪种类型的断言并知道其需要哪种类型的断言用于服务提供商的内部使用。服务提供商的信任服务由此根据所接收到的认证断言中的令牌请求安全令牌服务产生所需要的内部使用令牌。
信任服务和信任经纪两者都具有将从标识提供商接收到的断言翻译成服务提供商能够理解的格式的能力。信任经纪具有为每一个与其有直接信任关系的信任服务解释断言格式(或多种格式)的能力,从而允许信任经纪提供标识提供商和服务提供商之间的断言翻译。该翻译可以由任何一方通过其本地信任服务来请求。因此,标识提供商的信任服务可以在将断言发送到服务提供商之前请求断言的翻译。类似地,服务提供商的信任服务可以请求翻译从标识提供商所接收的断言。
断言翻译包括用户标识翻译、认证断言翻译、属性断言翻译、或者其它形式的断言翻译。重复上述各点,断言翻译由联盟内的信任组件例如信任服务和信任经纪来处理。信任服务可以在标识提供商或服务提供商处本地执行翻译,或者信任服务可以从信任经纪调用辅助功能。
假定标识提供商和服务提供商已经具有与信任经纪的独立信任关系,如果必要信任经纪能够动态地创建,即经纪发布方和依赖方之间的新信任关系。在信任经纪提供初始信任关系经纪操作之后,标识提供商和服务提供商可以直接保持该关系,以便对于将来的翻译要求无需再调用信任经纪。应该指出的是,认证令牌的翻译可以在三个可能的地方发生:标识提供商的信任服务、服务提供商的信任服务、以及信任经纪。优选地,标识提供商的信任服务生成信任经纪能够理解的认证断言,以发送给服务提供商。然后服务提供商请求将该来自信任经纪的令牌翻译成服务提供商能够识别的格式。令牌翻译可以在认证断言发送之前、发送之后、或者发送之前和之后两者发生。
联合体系结构内的信任关系
在能够支持本发明的示例联合环境中,必须对两种类型的“信任域”进行管理:企业信任域和联盟信任域。这两种类型的信任域之间的区别部分基于约束与信任域的信任关系的商业协定和用于建立信任的技术。企业信任域包含由企业管理的那些组件;该信任域内的所有组件可以隐含地彼此相互信任。一般而言,在企业内不需要商业协定来建立信任,因为配置的技术创建企业内的内在信任,例如通过要求组件之间的相互认证的SSL会话,或者通过将组件置于单个、严格受控的数据中心使得物理控制和接近证实隐含信任。参照图2B,遗留应用和后端处理系统可以代表企业信任域,其中组件在安全的内部网上进行通信。
联盟信任域是跨越企业界限的那些域;从一方面来看,联盟信任域可以代表独立的企业信任域之间的信任关系。联盟信任域通过跨越企业界限的信任代理在联盟伙伴之间建立。信任关系涉及某些类的自举(bootstrap)处理,通过该处理在信任代理之间建立初始信任。部分该自举处理可以包括共享的保密密钥以及定义期望的和/或允许的令牌类型和标识符翻译的规则的建立。一般而言,该自举处理可以在带外(out-of-band)实施,由于该处理也可以包括约束企业在联盟中的参与以及与该参与相关的责任的商业协定的建立。
存在多种可能的机制用于建立联合商业模型中的信任。在联盟模型中,联盟参与者之间的信任的基本概念对于商业动机是必须的,以便提供在参与者之间传送的断言(包括令牌和属性信息)是有效的保证级别。如果没有信任关系,那么服务提供商不能依赖于从标识提供商所接收的断言;服务提供商不能使用它们来确定如何解释从标识提供商接收的任何信息。
例如,一个大公司可能想链接数千个全球客户,并且该公司可以使用非联合的解决方案。作为第一个例子,该公司可以要求全球客户使用来自商业证书授权局的数字证书来建立相互信任。商业证书授权局使得该公司的服务器信任位于每一个全球客户处的服务器。作为第二个例子,该公司可以使用Kerberos实施第三方信任;该公司及其全球客户可以实施受到信任的第三方Kerberos域服务,执行基于共享密钥的信任。作为第三个例子,该公司可以使用被其全球客户的服务器互相信任的专有安全消息令牌来建立专有方案。
如果该公司需要管理与较少全球客户的信任关系,这些方案的任何一种都是可接受的,但是如果存在数百或数千个潜在的联盟伙伴,这可能会变得难以管理。例如,虽然公司可以强迫其少数伙伴实施专有方案,但是该公司不大可能对其大量伙伴强加许多要求。
企业可以使用通过信任代理以及可能通过信任经纪所建立和保持的信任关系。在图中所示的示例联合体系结构的优点是它不会对企业的当前基础设施及其潜在的联盟伙伴强加额外的要求。
但是,该示例联盟体系结构不会减轻企业及其潜在联盟伙伴建立参与联盟要求的商业和责任协定所需的初步工作。另外,参与者不能忽略信任关系的技术自举。示例联盟体系结构允许该自举灵活实施,例如,第一联盟伙伴可以发布具有特定信息的Kerberos票据,而第二联盟伙伴可以发布具有特定信息的SAML认证断言。
在示例联盟体系结构中,信任关系由信任代理管理,信任代理可以包括安全令牌服务(或可以与其交互)来根据预先建立的两个信任代理之间的关系验证和翻译从标识提供商接收的令牌。在联合企业与其它联合企业建立信任关系(以及令牌翻译)不切实可行的情况下,可以调用信任经纪;但是,联合企业需要建立与信任经纪的关系。
现在参照图5,示出根据能够支持本发明的示例联合体系结构、使用信任代理和信任经纪说明联合域之间的信任关系的示例集合的方框图。尽管图4引入信任经纪,图5示出在示例联合体系结构内传递信任关系的重要性。
联合域502-506分别结合信任代理508-512。信任代理508具有与信任代理510的直接信任关系514。信任经纪520具有与信任代理510的直接信任关系516,以及信任经纪520具有与信任代理512的直接信任关系518。信任经纪520用于根据传递的信任代表联盟参与者建立与其它联盟伙伴的信任关系。传递信任的法则允许信任代理510和信任代理512具有通过信任经纪520的经纪的信任关系522。信任代理510或512不用知道如何翻译或验证对方的断言;可以调用信任经纪将断言翻译成有效的、可信的、并且另一个信任代理能够理解的断言。
针对联合企业之间的信任关系规定契约义务和责任的商业协定可以通过使用ebXML(使用XML的电子商务)标准以XML表达。例如,直接信任关系可以以ebXML文档代表;共享直接信任关系的每一个联合域将具有表达为ebXML文档的合同副本。联盟内不同实体的操作特性可以在ebXML编排(choreography)中规定并且在ebXML注册中公布;希望参与到特定联盟以便例如操作信任代理或信任经纪的任何企业将需要遵循由特定联盟针对联盟内的所有信任代理或信任经纪所规定的该发布的要求。安全令牌服务能够针对关于要被翻译的来自其它域的令牌的方式的操作细节解析这些ebXML文档。但是应该指出的是,可以采用其它标准和机制来支持本发明,用于规定有关联盟内信任关系的实施方式的细节。
联合体系结构内的单点登录
在给定用户的会话期间,用户何以访问许多联合域,以便使用由这些域提供的网络服务。域可以使用标准的规范,例如均使用XML作为公共数据格式的UDDI和WSDL,公布它们所提供的服务的描述。用户通过同样粘附在这些标准规范上的应用来寻找可用的服务和服务提供商。SOAP提供范例,用于以XML表达的请求和响应的通信。联合环境内的实体可以使用这些标准。
在联盟内,用户期望具有单点登录体验,其中用户完成单个认证操作,并且该认证操作对于用户会话期间是足够的,而无需考虑在会话期间所访问的联盟伙伴。会话可以定义为从(并且包括)初始的用户认证,即登录,到登出的事务集合。在会话内,用户的动作将部分由针对该会话授权给用户的特权来约束。
到此为止所描述的联合体系结构支持单点登录操作。为了方便单点登录体验,支持联合环境的网络服务同样也支持使用由第三方生成的认证断言或安全令牌,以便提供认证用户的证据。该断言将包含某些类的用户对发布方进行了成功认证的证据以及用于该用户的标识符。例如,用户可以与一个联盟伙伴完成传统的认证操作,比如通过提供联盟伙伴用于为该用户构建认证证书的用户名和口令,然后联盟伙伴能够提供由认证/发布方对不同的联盟伙伴生成的SAML认证断言。
联合环境还允许网络服务或其它应用请求网络服务,并且这些网络服务也将会被认证。网络服务环境中的认证是证实网络服务请求的声明的标识的动作,以便企业能够限制对授权的客户机的访问。请求或调用网络服务的用户将几乎总是被认证,因此在支持本发明的联合环境内用于认证所需的与网络服务用于用户认证的当前要求没有很大的区别。
访问企业的计算资源而不参与联合会话的用户的认证不会受到联合基础设施的存在的影响。例如,通过HTTP/S使用基于形式的认证机制进行认证以便访问特定域上的非联合资源的现有用户不会受到在用于联合环境的域上支持引入的影响。认证部分由接触点服务器处理,接触点服务器依次可以调用分离的信任代理或信任服务组件;接触点服务器的使用使得对现有域的基础设施的影响最小化。例如,接触点服务器可以配置为通过由域中的后端或遗留应用处理的所有非联合请求。
接触点服务器可以选择调用基于HTTP的认证方法,比如基本认证、基于形式的认证,或者某些其它的认证方法。接触点服务器通过支持已经由用户作为认证证据呈现的断言的处理也支持联盟域,比如SAML认证断言,其中断言在企业域之间交叉;在联盟协议的语境中收到时,单点登录协议服务用于识别断言/工件。接触点服务器可以调用信任服务,信任服务依次可以调用其安全令牌服务用于证实认证证书/安全令牌。
网络服务或其它应用的认证包括与用户认证相同的处理过程。来自网络服务的请求携带包含认证断言的安全令牌,并且该安全令牌将会以与用户呈现的令牌相同的方式由信任服务进行验证。来自网络服务的请求应该伴有该令牌,这是因为网络服务将发现所请求的服务需要哪些认证断言/安全令牌在UDDI中广告。
现在参照图6,示出说明支持联合单点登录操作的联合环境的方框图。用户600通过客户端设备和适当的客户端应用比如浏览器,期望访问由支持担当联合环境内的联合域的数据处理系统的企业/域610所提供的网络服务。域610支持接触点服务器612和信任代理或信任服务614;类似地,域620支持接触点服务器622和信任代理或信任服务624,而域630支持接触点服务器632和信任代理或信任服务634。信任代理/服务依赖于信任经纪650的帮助,如上文中所述。额外的域和信任代理/服务可以参与到联合环境中。图6用于描述域610和域620之间的联合单点登录操作;在域610和域630之间可以发生类似的操作。
用户完成针对域610的认证操作;该认证操作由接触点服务器612处理。在用户请求访问需要认证的标识的某些资源时触发认证操作,例如用于访问控制目的或用于个性化的目的。接触点服务器612可以调用遗留认证服务,或者可以调用信任代理614,以便验证用户呈现的认证证书。在用户的联合会话期间域610变为用户的标识提供商或主域。
在稍后的某时间点,用户在联盟伙伴比如同样支持联合域的企业620处启动事务,从而触发联合单点登录操作。例如,用户可以在域620启动新的事务,或者用户的初始事务可以级联到其它域中的一个或多个附加的事务上。作为另一个例子,用户可以通过接触点服务器612对域620中的资源调用联合单点登录操作,例如,通过选择驻留在域610内的网页上的特定链接或者通过请求驻留在域610内但显示驻留在域620内的资源的门户页。接触点服务器612发送请求给信任代理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代表用户呈现的安全令牌。
联合单点登录不仅需要在依赖域处代表用户呈现给依赖域的安全令牌的验证,而且需要根据包含在安全令牌中的信息确定本地有效用户标识符和与该标识符相关联的可能的属性。直接信任关系和建立该关系所需的商业协定的一个结果上至少一方,发布域或者依赖域或者两者,知道如何将发布域提供的信息翻译成在依赖域有效的标识符;在依赖域的该标识符可以是由发布方断言的标识的一对一映射的结果,或者是其它类型的映射的结果,例如标识到任务的多对一映射,即,对于本地发布方标识符没有必要要求是唯一的一对一映射。在上面的简短示例中,假定发布域,即域610,能够为依赖域,即域620,提供在域620中有效的用户标识符。在该场境中,依赖域不需要调用任何标识映射功能。域620处的信任代理624将为该用户产生担保该用户的安全令牌。可接受的令牌的类型、令牌上所需的签名、以及其它要求均预先建立为部分的联盟商业协定。约束标识符翻译的规则和算法也预先建立为部分的联盟商业协定,并且由针对令牌管理和交换意见一致的策略来定义。在两个参与者之间的直接信任关系的情况下,标识符翻译算法将为这两方建立,并且可以与联盟中任何其它方不相关。
但是,并不总是发布域知道如何将用户从域610的本地标识符映射到域620的本地标识符的情形。在某些情形下,可能是依赖域知道如何进行该映射,而在另外的情形下,那一方都不知道如何进行该翻译,在这种情形下可能需要调用第三方信任经纪。换句话说,在经纪的信任关系的情形下,发布域和依赖域彼此之间没有直接的信任关系。但是,它们与信任经纪比如信任经纪650之间具有直接的信任关系。标识符映射规则和算法已经建立为这种关系的一部分,并且信任经纪将使用该信息帮助进行对于经纪的信任关系所需的标识符翻译。
域620在接触点服务器622处接收由域610发布的令牌,接触点服务器622调用信任代理624以验证令牌并执行标识映射。在这种情况下,由于信任代理624不能将用户从域610的本地标识符映射到域620的本地标识符,因此信任代理624调用信任经纪650,其验证令牌并执行标识符映射。在获得用于用户的本地标识符之后,信任代理624,可能通过其安全令牌服务,能够产生域620的后端应用需要的任何本地令牌,例如使从接触点服务器到应用服务器的单点登录便于进行所需要的Kerberos令牌。在获得本地有效令牌之后,如果必要,接触点服务器能够构建针对用户的本地会话。接触点服务器也可以处理用户请求的粗粒度授权(coarse-grained authorization),并将授权的请求传递给域620内适当的应用服务器。
联合用户生命周期管理
上面描述的图2-6的一部分说明了能够用在联合环境中的组件的组织结构,而其它部分说明了用于支持跨越联合环境的单点登录操作的处理。联合环境内的服务提供商或依赖域不一定必须管理用户的认证证书,并且那些依赖域可以影响由用户标识提供商或主域提供的单个单点登录令牌。但是,图2-6的上述描述没有说明其中在联盟伙伴的联合域中以有利方式完成联合用户生命周期管理的明确过程。
联合用户生命周期管理功能/服务包括用于在多个联合域针对特定用户账户或给定用户的用户简档支持或管理联合操作的功能;在某些情况下,该功能或操作限于针对用户的给定联合会话。换句话说,联合用户生命周期管理功能指的是允许跨越多个联合伙伴的联合操作的管理的功能,可能仅在联合计算环境内单个用户会话的生命周期期间。
每一个联合域可以针对每一个各自的联合域处的功能管理用户账户、用户简档、或者某些类型的用户会话。例如,特定的联合域可能不会该特定联合域内的管理本地用户账户或用户简档,但是在成功完成该联合域的单点登录操作之后,该联合域可能会管理针对联合事务的本地用户会话。作为该特定联合域支持的联合用户生命周期管理功能的一部分,该联合域可以参与允许联合域在完成联合事务之后终止本地用户会话的单点登出操作,从而改进安全性并提高资源的利用效率。
在使用联合用户生命周期管理功能的另一示例中,用户可以参加需要多个联合域参与的在线事务。联合域可能本地管理用户简档,以便在涉及联合域的每一个用户联合会话期间定制(tailor)相对于联合域的用户体验。作为该特定联合域支持的联合用户生命周期管理功能的一部分,联合域的本地用户简档中的信息可以在给定联合事务期间以无缝方式与来自参与给定联合事务的其它联合域处的其它简档的信息一起使用。例如,来自用户的多个本地用户简档的信息可以结合到某些类型的合并操作中,使得用户的信息例如在网页内可视地呈现给用户,以用户不会警觉用户的信息的不同起源或来源的方式。
联合用户生命周期管理功能也可以包括用于账户链接/去链接的功能。用户提供有跨越联盟伙伴的公共唯一的用户标识符,其使得单点登录和关于用户的属性检索(如果必要)作为在一个联盟伙伴处的请求履行的一部分。此外,联盟伙伴可以使用该公共唯一的用户标识符从标识提供商请求额外的属性,以便以匿名的方式查阅用户。
现在参照图7,示出说明在用于实施联合用户生命周期管理功能的联合域中的一些组件的方框图以便支持本发明。图7示出单个联合域,例如图3所示的联合域的要件。图7的某些要件与到此为止参照其它附图已经描述的一些要件相似或一致,比如图3,接触点服务器/服务702等价于接触点服务器342;运行控制对受保护资源的访问的服务的应用服务器704等价于应用服务器334;受保护的或受控资源706等价于受保护的资源335;以及联合用户生命周期管理(FULM)应用708等价于联合用户生命周期管理应用352。尽管在图3中没有示出防火墙,但在图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、与之交互、或者与之互操作的支持,这在图3中没有示出。在图7所示的示例体系结构中,联合协议运行时间插件提供用于各种类型的独立颁布或开发的联合用户生命周期管理标准或简档的功能,比如,WS-联盟被动客户端,以及自由联盟ID-FF单点登录(B/A、B/P和LECP)、注册名称标识符、联盟终止通知、和单点登出。不同的联合协议集合可以在不同的URL进行访问。该办法允许联合用户生命周期管理应用在单个应用内同时支持联合用户生命周期管理的多个标准或规范,例如WS-联盟网络服务规范对自由联盟规范,从而使得对支持不同联盟协议的总体环境的配置影响最小化。
更具体地,适当的联合用户生命周期管理功能由接触点服务器通过将用户请求重定向和/或传递到合适的联合用户生命周期管理应用来调用。再次参照图7,接触点服务器702接收用户请求730,然后分析并确定所接收的请求的类型,可以通过已经接收的请求消息的类型来指示,或者如上所述通过确定请求消息内的目的地URI来指示。在将针对受保护的资源的请求732传递到应用服务器704的同时,针对联合用户生命周期管理功能的请求734,例如调用单点登出操作的请求,被传递到联合用户生命周期管理应用708,如果必要联合用户生命周期管理应用708调用适当的联合用户生命周期管理插件来完成所接收的请求。当定义新的联盟协议或新的联合功能时,或者当现有的不知何故修改或。精炼时,可以简单地通过插入新的支持模块来增加支持,或者可以通过修改先前安装的插件来。精炼。
图7中的联合用户生命周期管理应用的示例实施示出联合用户生命周期管理应用能够支持多个、同步的联合用户生命周期管理功能,同时提供可插入特征,从而允许需要时将新的功能以插件的形式添加到联合用户生命周期管理应用中,而无需对现有基础设施进行任何改变。例如,假定使用基于JAVATM的联合用户生命周期管理应用来实施本发明,则用于新联盟协议的支持,比如新颁布的单点登录协议,能够通过将新开发的JAVATM类配置到联合用户生命周期管理应用的JAVATM类路径(CLASSPATH)来添加,其中这些新类支持新的标准以及用于支持本发明的协议接口。
示例联合体系结构影响其中要集成联合用户生命周期管理方案的现有环境。可以方便地对联合用户生命周期管理应用进行修改以支持新的协议/标准,由于它们对总体基础设施演化了极小的变化。支持新的联合用户生命周期管理功能所需要的任何变化几乎全部地位于联合用户生命周期管理应用内部,将需要配置联合用户生命周期管理应用来理解所添加的功能。
在其它组件中会有最小的配置变化,例如在接触点服务器中,以便使得总体基础设施能够调用新的联合用户生命周期管理功能,而同时继续支持现有的联合用户生命周期管理功能。但是,联合用户生命周期管理应用功能上独立于剩余的联合组件,在于联合用户生命周期管理应用可能仅需要与联合环境的其它联合组件极少的交互。例如,在示例实施例中,联合用户生命周期管理功能可以与基于企业的数据库例如LDAP数据库集成,如果联合用户生命周期管理信息比如根据自由联盟简档的名称标识符值存储在外部可访问的联合用户生命周期管理数据库,与对外部实体不是显然的或不可访问的专有的内部联合用户生命周期管理数据库相对。
因此,现有环境需要最小限度的修改,以支持联合用户生命周期管理功能。而且,包括添加新功能的联合用户生命周期管理功能的变化对现有联合环境具有最小的影响。由此,当颁布新的单点登录标准时,非常容易添加用于该标准的支持。
传统的用户认证涉及企业的计算环境和仅终端用户之间的交互;企业选择实施该认证交换的方式是企业的选择,对任何其它企业没有影响。但是,当联盟或交叉域单点登录功能期望被支持时,其变为企业伙伴彼此交互的要求。该要求不能使用私有协议进行升级。虽然将用于基于标准的联盟协议的支持直接添加到接触点实体看起来象极强的解决方案,但是已经作为企业的计算环境内的现有组件的接触点实体必须进行修改;而且,每次这些公开联盟协议中的一个发生变化时都必须进行修改。
将该功能移出接触点实体提供更加模块化的办法,其中该可插入的功能使得能够容易地保持对这些协议的移植或更新。
联合环境内多个协议简档的支持中的工件引用的数据对象的分布式
检索
如上面所进一步描述的,在联合协议操作的实施中应该考虑折衷。某些操作,比如可能需要与用户进行极少交互以完成操作的那些操作,应该以对用户施加最小负担的方式执行,但是它们也应该以对于联合企业来说高效地执行,尤其是对于可能需要跨越企业内的所有用户的那些类型的操作。对于支持特定联合协议所需的那些操作,在那些操作的实施方式上以及所导致的用户的负担和联合企业的计算资源的负担联合企业没有多少灵活性。联合企业可能需要根据联合企业所同意的联盟规范以特定的方式执行特定的动作。换句话说,联合企业可能需要根据商业合同实施特定的联盟操作,而不能考虑那些操作的计算负担。
但是,联合环境内功能的许多方面可以分类为支持一个或多个联盟内的一个或多个企业所期望的商业目标、然而支持联盟协议不是必需的或者参与联盟不是必需的操作。由于跨越联合环境支持企业特定的商业目标所导致的动作可能具有分歧,因此实施支持操作的方式应该以跨越联盟内数千个或数百万个用户可升级的方式完成。在实施企业的期望商业目标时,负责管理企业内的联合功能的系统管理员应该能够以高效的方式配置其计算资源。
如上所述,解决联合企业内的计算资源上的负担的一种方式是实施在分布式数据处理系统内实施联合功能。例如,标识提供商的服务可以在分布式数据处理系统内支持。但是,分布式数据处理系统的特性可能存在问题;联合协议的某些要求会使用于在分布式数据处理系统内执行这些联合协议的功能的实施复杂化。
更具体地说,比如标识提供商的联合实体在联盟内生成数据对象。根据某些联合协议的规范,这些数据对象通过使用工件在联合实体之间进行传输,这将在下文中进一步地详细描述。在任何联合计算环境中工件和与其相关的数据对象之间的引用关系必须保持,而不考虑所实施的联合计算环境的基础设施。就此而言,本发明提供用于高效管理联合协议操作的分布式计算基础设施,尤其针对工件引用的数据对象的分布式检索。但是,在讨论本发明的附加细节之前,首先更加详细地讨论针对分布式检索可能由分布式数据处理引入的复杂性,以便更好地区分本发明解决这些问题的方式。
SAML和自由联盟浏览器/工件简档两者都具有两个主要的步骤,用于从标识提供商到服务提供商的信息检索,作为建立单点登录会话的一部分。在第一步骤中,标识提供商发送工件给服务提供商。一般而言,工件是尺寸受限的元素,担当数据对象的引用指针。应该指出的是,工件引用的数据对象可以是任何类型的数据对象。因此,数据对象可以包括结构化数据,即,数据及其元数据或格式化信息。数据对象可以或者可以没有格式化;数据对象可以根据联合协议进行格式化,但是不是必须的。可替代的,数据对象可以是消息、部分消息、或者消息附件。继续本示例,标识提供商可以通过终端用户的浏览器在HTTP重定向上将工件发送给服务提供商;在该示例中,工件引用的数据对象可以是与安全相关的断言。由于工件的尺寸较小,一般不会导致URL超出查询串的尺寸限制。在第二步骤中,服务提供商收到该工件时将执行到标识提供商的直接SOAP/HTTP请求,以便根据工件检索适当的断言。
这些协议/简档隐含要求所有的检索针对包含工件引用的数据对象的单个高速缓冲执行;不存在分布式高速缓冲或分布式环境的通融。作为典型的分布式环境的示例,标识提供商可以具有地理上横跨国家分布的多个数据中心。在某时间点,用户启动访问标识提供商的资源的尝试:通过登录到标识提供商;通过请求公共资源或者标识提供商处的私有资源;通过根据来自服务提供商的重定向尝试访问标识提供商单点登录URL;或者通过针对联合伙伴的某些其它操作。当用户第一次尝试访问标识提供商的资源时,负载平衡器分配用户到特定的数据中心。典型地这根据地理接近度和用法的某些组合来进行,并且可能涉及各种分配技术,比如循环算法或最近使用算法。负载平衡器然后建立某些手段以确保在用户会话期间用户粘附到该数据中心。粘附性最常见的是基于HTTP cookie、用户的IP地址、SSL会话ID、或者绑定到用户和用户的HTTP会话的某些其它手段。
但是,在使用该类型的分布式环境时,联合实体尝试通过直接信道(即,不影响HTTP重定向的请求)检索绑定到所接收的工件的数据对象;例如服务提供商的联合实体没有获取或继承用户会话的特征(有时称作用户的粘附性)的手段。因此,联合实体不能保证数据对象检索请求将会发送给实际上已经生成初始的工件并且高速缓冲了工件和工件引用的数据对象之间的相关映射的数据中心。
本发明提供高效管理联合协议操作的分布式计算基础设施,尤其针对工件引用的数据对象的分布式检索,如下面将进一步讨论和剩余附图所描述的。本发明扩展了基于工件的检索功能,允许检索以代理方式的类型的工件引用的数据对象。本发明允许联合实体例如服务提供商被指引到合适的数据处理系统或数据中心,同时允许负载分解,而且仍然能够从生成工件的数据处理系统或数据中心检索工件引用的数据对象。本发明的办法不需要高速缓冲调和或保持全局分布式高速缓冲的其它技术。
现在参照图8,示出根据本发明的实施例实施为分布式数据处理系统的联合实体的方框图,以便支持工件引用的数据对象的分布式检索。图8示出联合计算环境内的一对联合实体。一般而言,联合实体800生成代表另一联合实体或者为另一联合实体比如联合实体802生成数据对象。联合实体800可以代表标识提供商、服务提供商、发布方、依赖方、或者某些其它类型的联合实体,取决于所发生的联合操作的类型。类似地,联合实体802也可以代表标识提供商、服务提供商、发布方、依赖方、或者某些其它类型的联合实体,取决于所发生的联合操作的类型。
在请求或者要求时,联合实体800生成数据对象和相关的工件;工件引用数据对象,并且可以将该数据对象称为工件引用的数据对象。在数据对象由联合实体800生成并存储之后,可以将工件提供给联合实体802,其随后使用该工件检索相关的数据对象,即,由工件引用即映射到工件的数据对象。联合实体802发送数据对象检索请求804给联合实体800,以根据包含在数据对象检索请求804中的工件806检索先前生成的数据对象。从这一点上讲,联合实体802可以看作请求联合实体802,而联合实体800可以看作响应联合实体800。
在联合实体802发送数据对象检索请求804给联合实体800之后,联合实体800通过检索工件引用的数据对象并返回数据对象检索响应808给联合实体802来处理数据对象检索请求。数据对象检索响应808包含与工件806相关的适当的数据对象。一旦将数据对象提供给联合实体802,联合实体800就从数据库中删除所提供的数据对象,由此确保该工件-数据对象对展现出“一次使用”的特性。
以这种方式在联合实体800和联合实体802之间进行的数据对象传输可以根据各种标准或专有协议来执行。例如,数据对象检索请求消息804和数据对象检索响应消息808可以根据标准化的规范进行格式化。
现在讨论本发明更为重要的新颖方面,图8还示出根据本发明的联合实体的实施例,其中该联合实体组织为支持工件引用的数据对象的分布式检索的分布式数据处理系统。为了分布处理负载,联合实体800使用负载平衡器812,其在比如数据处理系统814、数据处理系统816、以及数据处理系统818的多个数据处理系统之间接收并传递引入的请求消息,比如数据对象检索请求。负载平衡器812可以采用各种公知的算法在多个数据处理系统之间分布工作负载,包括地理分布,比如将来自给定区域中的用户的请求指向相同地理区域内的数据中心。
以与图7所示的方式类似的方式,到/来自多个数据处理系统的数据通信穿过防火墙和接触点服务器。用于数据处理系统814的数据通信穿过防火墙820、接触点服务器822、以及防火墙824。用于数据处理系统816的数据通信穿过防火墙826、接触点服务器828、以及防火墙830。用于数据处理系统818的数据通信穿过防火墙832、接触点服务器834、以及防火墙836。在本发明的一个实施例中,数据处理系统814-818及其相关的基础设施可以标识为地理上分散的数据中心,从而允许负载平衡器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可以是服务提供商,或者更一般地是依赖方。在请求或要求时,联合实体800如上文所讨论的发布断言,比如SAML断言。联合实体802根据针对不同联合计算环境的一个或多个规范使用用于各种联合协议操作/简档的这些断言,例如完成联合单点登录认证操作;在任何情况下,工件引用的数据对象可以是安全断言。联合实体800发布工件,每一个都与断言相关联。尽管可以不生成相关的工件而发布断言,但是在发布断言时可以发布工件;在已经导致断言被发布的联合协议操作/简档需要时发生工件的发布。断言工件引用断言;临时保持断言和断言工件之间的映射,直到断言自身被检索为止。在断言已经由联合实体800发布并存储之后,断言工件可以提供给联合实体802,其随后使用该断言工件检索相关的断言,即,由断言工件引用或者映射到断言工件的断言。
再次,在本发明应用到断言的示例实施方案中,如果在本地数据库中没有发现断言,则替代返回错误,而尝试如下文所述的从标识提供商的其它数据中心请求适当的断言。能够将本发明用于支持工件引用的断言的分布式检索的方式的更加详细的示例示于图9A-9C中。
现在参照图9A-9C,示出根据本发明的实施例,其中在使用支持分布式断言检索的分布式数据处理系统实现的标识提供商内第一数据处理系统从第二数据处理系统检索断言的场境的方框图。以与图8所示的联合实体800相类似的方式,图9A-9C示出标识提供商的一些要件。但是,在该更具体的示例中,数据对象高速缓冲更具体地指断言高速缓冲,数据对象检索请求更具体地指断言检索请求,以及数据对象检索响应更具体地指断言检索响应。
现在参照图9A,标识提供商900是包含数据处理系统902以及数据处理系统908的分布式数据处理系统,数据处理系统902自身又包含单点登录服务(SPS)904和断言高速缓冲906,而数据处理系统908自身又包含SPS 910和断言高速缓冲912。
在某时间点,数据处理系统902例如从上面结合图8描述的服务提供商接收断言检索请求。数据处理系统902使用先前从所接收的断言检索请求中提取的工件搜索其本地断言高速缓冲906;工件可以用作搜索密钥或用作搜索密钥的基础。在该示例中,数据处理系统902不能在其本地数据库或高速缓冲中查到与工件相关联的断言。
在本发明中,如果在本地数据库中没有发现断言,则替代返回错误,数据处理系统902而是尝试从构成标识提供商的其它数据处理系统请求适当的断言。换句话说,SPS 904将发布断言检索请求给标识提供商内的其它数据处理系统,比如通过发送断言检索请求914给数据处理系统908内的SPS 910。假定数据处理系统908能够完成其所接收的请求,则数据处理系统908检索断言,将其从本地数据库912中去除,以便其不能再被使用,并且将该断言返回数据处理系统902。标识提供商900然后通过发送断言检索响应给服务提供商完成从服务提供商接收的初始断言检索请求。
现在参照图9B,标识提供商900包括额外的数据处理系统920。以类似于图9A所示的方式,图9B示出其中数据处理系统902不能在其本地数据库中查到所请求的断言、并且数据处理系统902发送断言检索请求922给数据处理系统908的场境。图9A示出其中第二数据处理系统-数据处理系统908在其本地数据库中发现所请求的断言的场境;与此相反,图9B示出其中数据处理系统908在其本地数据库中没有发现所请求的断言的场境。
可代替地,数据处理系统908继续在标识提供商900内传播针对所请求的断言的搜索。数据处理系统908发送断言检索请求924给数据处理系统920,其使用断言检索请求924内的工件搜索其本地断言高速缓冲。在该场境中,数据处理系统920发现所请求的断言并返回断言检索响应926给数据处理系统908,然后数据处理系统908返回断言检索响应928给数据处理系统902。标识提供商900然后通过发送断言检索响应给服务提供商完成从服务提供商所接收的初始断言检索请求。
在本发明中,标识提供商能够实施为分布式数据处理系统。标识提供商可以具有可能会是断言的来源的多个数据中心,并且当从服务提供商接收断言检索请求的第一数据处理系统在其本地断言高速缓冲中没有发现所请求的断言时,第一数据处理系统启动搜索构成标识提供商的所有其它数据处理系统或数据中心。假定执行了成功搜索,则第一数据处理系统能够从标识提供商内的其它数据处理系统检索到所请求的断言。
第一数据处理系统可以以各种不同的方式执行所请求的断言的搜索。例如,搜索可以以链方式执行,其中当没有发现所请求的断言时数据处理系统传递搜索;第一数据中心将查询第二数据中心,第二数据中心依次查询第三数据中心,直到发现所请求的断言为止,在此点断言以冒泡或递归的方式返回第一数据中心。随着搜索的进展,每一个数据中心可以添加或附加指示哪些数据中心已经执行了搜索的标识符。
可替代的,搜索可以以串行或轮毂-轮辐方式执行,其中第一数据处理系统查询一个数据处理系统之后查询另一个数据处理系统;第一数据中心担当轮毂(网络中心)并且单独地查询每一个数据中心(轮辐)。现在参照图9C,标识提供商900包括额外的数据处理系统930。以类似于图9B所示的方式,图9C示出其中数据处理系统902和数据处理系统908都没能在其本地数据库中查到所请求的断言的场境。数据处理系统902发送断言检索请求932给数据处理系统908,其以包含指示未成功检索的错误代码值的断言检索响应934作为响应;与图9B不同,数据处理系统908不传播该搜索。然后数据处理系统902发送断言检索请求936给数据处理系统930,其以包含指示未成功检索的错误代码值的断言检索响应938作为响应。最终,数据处理系统902发送断言检索请求940给数据处理系统920,其以包含所请求的断言的断言检索响应942作为响应。
根据数据中心的实现方式,可以将数据中心配置为不将搜索传播给其它数据中心。可替代地,标识提供商内的数据处理系统之间的断言检索请求可以包括特定属性,用于指示在数据中心没有在其本地断言数据库中成功查到断言时不允许将该请求传递给其它数据中心。然而在另一可替代实施例中,可以增加最大跳跃计数(max-hop-count)值到检索链中,以便使链式搜索方法所导致的网络通信量最小化;最大跳跃计数值对检索处理提供上限值,并且如果必要可以用于控制请求的散播。
可替代地,但是较为低效,第一数据中心可以广播断言检索请求的多个拷贝到其它数据中心,其中一个数据中心应该对所请求的断言作出响应。尽管可以以各种不同的方式执行搜索,但是最终的结果是所请求的断言从保持其的高速缓冲或数据库中去除,从而使得其不能再被使用;接收到初始断言检索请求的数据中心能够以断言检索响应进行响应,并且用户的单点登录请求最终得到满足。
现在参照图10,示出根据本发明的实施例、在使用支持工件引用的数据对象的分布式检索的分布式数据处理系统实施的标识提供商内的处理的流程图。在构成联合实体比如标识提供商的多个数据中心或数据处理系统中的一个接收到数据对象检索请求消息时处理开始(步骤1002);通过将其称作初始数据对象检索请求消息可以将该消息从后续使用的数据对象检索请求消息中区分出来。已经收到该数据对象检索请求消息的数据中心然后从该消息内提取工件(步骤1004)。使用该工件或者其一部分作为搜索密钥,数据中心从其本地数据对象高速缓冲或数据库搜索与工件引用的数据对象相关联的工件(步骤1006)。
确定是否在本地数据库中发现所请求的工件(步骤1008)。如果发现工件引用的数据对象,则从本地数据库检索其相关联的数据对象(步骤1010)。在检索到相关联的数据对象的拷贝之后,可以删除相关联的数据对象的高速缓冲拷贝,以便确保其不再被重复使用或恶意使用,从而对数据对象强加一次使用限制。可替代地,可以保持相关联的数据对象的高速缓冲拷贝;是否删除高速缓冲的数据对象取决于联合实体和/或联合实体所提供的服务的需要。
如果在步骤1008没有发现合适的数据对象,则数据中心从分布式联合实体内的一组数据中心中的其它数据中心检索工件引用的数据对象(步骤1012),例如通过在联合实体的该组数据中心中执行搜索,或者通过从联合实体的特定数据中心直接检索数据对象,如下文中所详细描述的。
然后数据中心生成数据对象检索响应消息。如果工件引用的数据对象在本地成功地发现或者从其它数据中心成功地检索到,则数据对象检索响应消息包含适当的数据对象并且也可以包含成功响应代码。如果没有成功发现或检索到工件引用的数据对象,则数据对象检索响应消息将包含错误代码,以指示定位所请求的数据对象失败。在任何一种情况下,数据中心都发送数据对象检索响应消息给初始请求者(步骤1014)比如请求服务提供商,从而结束处理。
现在参照图11,示出根据本发明的实施例、其中数据中心执行链式搜索用以从联合实体内的其它数据中心检索数据对象的处理的流程图。图11示出图10所示的步骤1012的额外细节。图11所示的步骤是链式搜索的一部分;可替代地,也可以执行其它类型的搜索,比如图12所示的轮廓-轮辐类型的搜索。
对数据中心在其本地数据库查找与数据对象相关联的所请求的工件,例如图10所示的步骤1006-1008失败而作出响应,处理开始。数据中心通过发送具有该工件的数据对象检索请求消息给其它数据处理系统来启动或继续在实体提供商内的搜索(步骤1102)。假定成功操作,则数据中心接下来从其它数据中心接收具有工件引用的数据对象的数据对象检索响应消息(步骤1104),从而结束针对数据中心的搜索。
如果给定的数据中心是联合实体内启动处理定位工件引用的数据对象的请求的初始数据中心,则数据中心返回数据对象检索响应消息请求实体比如服务提供商,如图10中的步骤1014所示。如果数据中心继续已经由联合实体内的其它数据中心启动或者继续的搜索,则数据对象检索响应消息发送给传播数据中心。以这种方式,图11所示的处理描述了链式搜索,其中请求和响应从一个数据中心流向另一个数据中心,直到工件引用的数据对象发现为止或者直到已经搜索了联合实体内的所有数据中心为止。不管是否发现工件引用的数据对象,数据对象检索响应消息都流回启动搜索的数据中心。
现在参照图12,示出根据本发明的实施例、其中数据中心执行轮毂-轮辐类型的搜索用以从联合实体内的其它数据中心检索数据对象的处理的流程图。图12示出图10所示的步骤1012的细节。图12的步骤是其中以串行方式搜索连续的数据中心直到已经搜索了所有的数据中心为止或者直到发现数据对象为止的搜索的一部分。
联合实体内的给定数据中心控制在联合实体内的其它数据中心中对工件引用的数据对象的搜索,即,给定数据中心代表搜索的轮毂(中心)。在数据中心确定联合实体内是否存在尚未搜索的其它数据中心时处理开始(步骤1202)。如果不存在,则已经搜索了所有的其它数据中心,并且结束处理;在该场境下,将失败代码返回给请求数据对象的实体,在附图中没有具体示出。
如果存在尚未搜索的其它数据中心,即代表轮毂-轮辐类型搜索的轮辐的数据中心,则控制搜索的数据中心,即代表轮毂的数据中心,发送包含工件的数据对象检索请求消息给联合实体内的其它数据中心中的一个(步骤1204)。在该数据中心收到数据对象检索响应消息之后(步骤1206),确定是否已经检索到数据对象(步骤1208)。如果没有,则处理分支回到步骤1202,重复处理。如果已经检索到数据对象,则结束处理,并且返回数据对象,例如如图10中的步骤1014所示。
结论
从上面对本发明的详细描述中可以清楚地看出本发明的优点。
本发明支持将联合实体实施为分布式数据处理系统。分布式数据处理系统包括多个数据处理系统,每一个都能够为相关的数据对象发布工件并且响应基于工件的检索请求,同时还具有针对基于工件的检索请求的代理功能。
本发明的优越性在于,本发明支持对于可能支持数百万客户的大型企业所需要的分布式数据中心环境,然而这对于现有的数据管理技术是不可能的。另外,本发明不需要分布式数据高速缓冲可能会要求的先进数据管理技术。此外,使用本发明,请求联合实体比如服务提供商不需要关注分布式的本性,也不需要关注存在提供响应联合实体例如标识提供商的功能的多个数据中心。
更具体地说,本发明支持不同联盟规范的各种要求;换句话说,本发明与在用于标准化的联盟环境的不同规范中传播的各种联合协议相兼容。因此,本发明不仅与各种不同的联合协议相兼容,而且同时支持多个联合协议,并且本发明在分布式环境中支持该功能。
本发明在分布式计算环境中支持多个联合协议的能力相比于针对联合环境的典型现有解决方案是非常重要的优点。在典型的现有技术的联合环境中,使用单个协议在因特网环境下实现一系列动作,要么全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与请求一起被发送到标识提供商的负载平衡器,从而负载平衡器能够正确地将请求路由到具有关于用户(静态及运行时间)的所有适当信息的标识提供商的数据中心。
但是,在第二种情况下,当服务提供商直接调用代表用户的标识处的资源时,用户的浏览器/代理并不会陷于该请求,并且由此该请求在负载平衡器处被接收而没有任何粘附数据以将该请求路由到适当的数据中心。负载平衡器然后将该请求路由到在此时间点选择的数据中心。如果该请求在具有关于用户的当前运行时间数据的数据中心处接收,则该数据中心可以成功地完成该请求。如果该请求在不具有关于用户的当前运行时间数据的数据中心处接收,则该数据中心没有完成该请求的手段;该结果在其中分布式高速缓冲/运行时间不可行的(如果仅对于实时保持所有必要的运行时间数据所需的性能开销)分布式环境中是相当普遍的。
因此,当服务提供商发送请求给联合计算环境内一组分布式数据中心中的一个时,如果使用“直接”方式(例如服务提供商和数据中心之间的SOAP/HTTP)将该请求发送给数据中心,则没有办法使得负载平衡/路由功能确定将该请求绑定到哪一个用户,并由此无法确定应该将该请求路由到哪一个数据中心。因此,数据中心可能会收到关注该数据中心没有其有关知识的用户的请求,并且由此没有办法完成该请求。
本发明允许分布式联合数据中心代理该请求到其它数据中心,以便希望找到具有完成该请求所需的运行时间信息的数据中心。由于该请求是被代理的,因此第一数据中心处的功能将简单地重复该请求到下一数据中心,例如,使用任意一种那些已经定义过的算法。如果下一数据中心能够完成该请求,其将如此作并返回响应给第一数据中心。第一数据中心将简单地将来自其它数据中心的响应返回请求联合实体,比如服务提供商。根据所选择的算法,每一个数据中心将依次代理该请求到其它数据中心,或者只是简单地返回失败状态代码给第一数据中心;不管采用哪种算法,每一个数据中心将简单地代理该请求直到成功完成为止,在这一点上建立成功响应,然后将代理该响应自始至终原路返回到请求联合实体。
应该指出的是,尽管在全功能的数据处理系统的语境中描述了本发明,但是本领域的普通技术人员应该理解,本发明的处理过程也能够以计算机可读存储介质中的指令的形式或者其它不同的形式进行分发,而无需考虑分发所实际使用的信号承载介质的具体类型。示例计算机可读存储介质包括EPROM、ROM、磁带、纸张、软盘、硬盘驱动器、RAM、以及CD-ROM。
方法通常构思为导致期望结果的自身协调一致的步骤序列。这些步骤需要物理量的物理操纵。虽然不是必需的,但通常这些量采用能够被存储、传输、组合、比较、以及其它处理的电或磁信号的形式。主要是由于共同使用的原因,有时将这些信号称作比特、值、参数、条目、元素、对象、符号、字符、术语、数字等非常便利。但是,应该指出的是,所有这些术语或者类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的便利标注。
出于说明的目的已经展示了本发明,但是并不试图穷举本发明或者将本发明限于所公开的这些实施例。许多修改和变化对于本领域的普通技术人员是显而易见的。所选实施例用于说明本发明的原理及其实际应用,并且便于本领域的其他普通技术人员理解本发明,以便进行各种可能适用于其它预期应用的修改而实现不同的实施方案。
Claims (26)
1.一种在联合计算环境内的联合实体之间传输数据对象的方法,该计算机实施的方法包括:
第二联合实体从第一联合实体接收数据对象检索请求,其中第二联合实体根据第二联合实体和第一联合实体之间的信任关系发布用于第一联合实体的工件,第二联合实体的服务由分布式数据处理系统内的一组数据处理系统提供,并且该组数据处理系统内的每一个数据处理系统生成工件;
该组数据处理系统中的第一数据处理系统从数据对象检索请求中提取工件,其中所述工件引用第二联合实体所存储的数据对象;
第一数据处理系统使用所述工件从该组数据处理系统中的第二数据处理系统检索数据对象;以及
第一数据处理系统返回数据对象检索响应给第一联合实体。
2.根据权利要求1所述的方法,还包括:
使用所述工件搜索第一数据处理系统的本地数据库;
对确定数据对象没有存储在第一数据处理系统的本地数据库中作出响应,从第一数据处理系统发送检索请求给第二数据处理系统,其中检索请求包含所述工件;以及
第一数据处理系统从第二数据处理系统接收检索响应,其中检索响应包含数据对象。
3.根据权利要求1所述的方法,还包括:
第二数据处理系统从第一数据处理系统接收检索请求,其中检索请求包含所述工件;
使用所述工件搜索第二数据处理系统的本地数据库;
对确定数据对象存储在第二数据处理系统的本地数据库中作出响应,从第二数据处理系统发送检索响应给第一数据处理系统,其中检索响应包含数据对象。
4.根据权利要求3所述的方法,还包括:
从第二数据处理系统的本地数据库删除数据对象。
5.根据权利要求1所述的方法,还包括:
对确定数据对象没有存储在第一数据处理系统的本地数据库中作出响应,使用所述工件在该组数据处理系统内搜索数据对象,以便检索所述数据对象。
6.根据权利要求5所述的方法,还包括:
第一数据处理系统以串行的方式单独地查询该组数据处理系统内的各个数据处理系统,直到检索到数据对象为止。
7.根据权利要求5所述的方法,还包括:
第一数据处理系统以广播方式同时查询该组数据处理系统内的各个数据处理系统,以便检索数据对象。
8.根据权利要求5所述的方法,还包括:
以链式的方式单独地查询该组数据处理系统内的各个数据处理系统,直到检索到数据对象为止。
9.根据权利要求8所述的方法,还包括:
该组数据处理系统内的第三数据处理系统从第一数据处理系统接收检索请求,其中检索请求包含所述工件;
对确定数据对象没有存储在第三数据处理系统的本地数据库中作出响应,第三数据处理系统发送检索请求给第二数据处理系统;
第三数据处理系统从第二数据处理系统接收检索响应,其中检索响应包含数据对象;以及
第三数据处理系统发送检索响应给第一数据处理系统。
10.根据权利要求8所述的方法,还包括:
限制对数据对象的搜索,使得查询的数据处理系统的链具有包含在查询的数据处理系统之间通过的检索请求内的数据参数所指示的最大长度。
11.根据权利要求1所述的方法,其中第一联合实体是标识提供商,并且第二联合实体是服务提供商。
12.根据权利要求1所述的方法,其中第一联合实体是服务提供商,并且第二联合实体是标识提供商。
13.根据权利要求1所述的方法,其中第一联合实体是发布方,并且第二联合实体是依赖方。
14.根据权利要求1所述的方法,其中第一联合实体是依赖方,并且第二联合实体是发布方。
15.根据权利要求1所述的方法,其中数据对象是断言。
16.根据权利要求1所述的方法,其中数据对象是安全断言。
17.根据权利要求1所述的方法,其中在认证操作期间检索所述数据对象。
18.一种计算机可读存储介质上的计算机程序产品,用于在联合计算环境内的联合实体之间传输数据对象,所述计算机程序产品包括用于执行前述方法权利要求的任何一种方法的指令。
19.一种用于在联合计算环境内的联合实体之间传输数据对象的装置,所述装置包括:
用于在第二联合实体从第一联合实体接收数据对象检索请求的部件,其中第二联合实体根据第二联合实体和第一联合实体之间的信任关系发布用于第一联合实体的工件,第二联合实体的服务由分布式数据处理系统内的一组数据处理系统提供,并且该组数据处理系统内的每一个数据处理系统生成工件;
用于该组数据处理系统中的第一数据处理系统从数据对象检索请求中提取工件的部件,其中所述工件引用第二联合实体所存储的数据对象;
用于第一数据处理系统使用所述工件从该组数据处理系统中的第二数据处理系统检索数据对象的部件;以及
用于第一数据处理系统返回数据对象检索响应给第一联合实体的部件。
20.根据权利要求19所述的装置,其中第二联合实体是标识提供商,并且第一联合实体是服务提供商。
21.根据权利要求19所述的装置,其中第二联合实体是服务提供商,并且第一联合实体是标识提供商。
22.根据权利要求19所述的装置,还包括:
用于使用所述工件搜索第一数据处理系统的本地数据库的部件;
用于对确定数据对象没有存储在第一数据处理系统的本地数据库中作出响应,从第一数据处理系统发送检索请求给第二数据处理系统的部件,其中检索请求包含所述工件;以及
用于第一数据处理系统从第二数据处理系统接收检索响应的部件,其中检索响应包含数据对象。
23.根据权利要求19所述的装置,还包括:
用于第二数据处理系统从第一数据处理系统接收检索请求的部件,其中检索请求包含所述工件;
用于使用所述工件搜索第二数据处理系统的本地数据库的部件;
用于对确定数据对象存储在第二数据处理系统的本地数据库中作出响应,从第二数据处理系统发送检索响应给第一数据处理系统的部件,其中检索响应包含数据对象。
24.根据权利要求19所述的装置,还包括:
用于对确定数据对象没有存储在第一数据处理系统的本地数据库中作出响应,使用所述工件在该组数据处理系统内搜索数据对象,以便检索所述数据对象的部件。
25.根据权利要求24所述的装置,还包括:
用于第一数据处理系统以串行的方式单独地查询该组数据处理系统内的各个数据处理系统,直到检索到数据对象为止的部件。
26.根据权利要求24所述的装置,还包括:
用于以链式的方式单独地查询该组数据处理系统内的各个数据处理系统,直到检索到数据对象为止的部件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/456,194 US7860883B2 (en) | 2006-07-08 | 2006-07-08 | Method and system for distributed retrieval of data objects within multi-protocol profiles in federated environments |
US11/456,194 | 2006-07-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101102257A true CN101102257A (zh) | 2008-01-09 |
CN101102257B CN101102257B (zh) | 2011-08-31 |
Family
ID=38920243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101279996A Expired - Fee Related CN101102257B (zh) | 2006-07-08 | 2007-07-06 | 传输数据对象的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7860883B2 (zh) |
CN (1) | CN101102257B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591710A (zh) * | 2010-12-16 | 2012-07-18 | 微软公司 | 共享对象表示 |
CN102986190A (zh) * | 2010-07-08 | 2013-03-20 | 国际商业机器公司 | 资源访问管理 |
CN104144158A (zh) * | 2013-05-08 | 2014-11-12 | 国际商业机器公司 | 用于基于策略的自动同意的方法和装置 |
CN101640924B (zh) * | 2008-08-01 | 2016-01-13 | 联发科技股份有限公司 | 处理封包交换数据传输的方法及其系统 |
CN110570184A (zh) * | 2019-08-26 | 2019-12-13 | 北京知嘛文化传播有限公司 | 向用户提供产品的系统、方法、装置以及存储介质 |
CN112835984A (zh) * | 2021-03-10 | 2021-05-25 | 北京车和家信息技术有限公司 | 告警处理方法和装置 |
TWI734426B (zh) * | 2019-03-27 | 2021-07-21 | 開曼群島商創新先進技術有限公司 | 使用可信執行環境檢索區塊鏈網路的公開資料 |
US11082240B2 (en) | 2019-03-27 | 2021-08-03 | Advanced New Technologies Co., Ltd. | Retrieving public data for blockchain networks using highly available trusted execution environments |
US11095629B2 (en) | 2019-03-29 | 2021-08-17 | Advanced New Technologies Co., Ltd. | Retrieving access data for blockchain networks using highly available trusted execution environments |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8849862B2 (en) * | 2004-05-21 | 2014-09-30 | Rsvpro, Llc | Architectural frameworks, functions and interfaces for relationship management (AFFIRM) |
US9418040B2 (en) | 2005-07-07 | 2016-08-16 | Sciencelogic, Inc. | Dynamically deployable self configuring distributed network management system |
WO2007143394A2 (en) | 2006-06-02 | 2007-12-13 | Nielsen Media Research, Inc. | Digital rights management systems and methods for audience measurement |
US8689287B2 (en) * | 2006-08-17 | 2014-04-01 | Northrop Grumman Systems Corporation | Federated credentialing system and method |
US8151324B2 (en) | 2007-03-16 | 2012-04-03 | Lloyd Leon Burch | Remotable information cards |
US8087060B2 (en) | 2007-03-16 | 2011-12-27 | James Mark Norman | Chaining information card selectors |
US8079069B2 (en) | 2008-03-24 | 2011-12-13 | Oracle International Corporation | Cardspace history validator |
US8196177B2 (en) * | 2008-10-16 | 2012-06-05 | International Business Machines Corporation | Digital rights management (DRM)-enabled policy management for a service provider in a federated environment |
US9836702B2 (en) | 2008-10-16 | 2017-12-05 | International Business Machines Corporation | Digital rights management (DRM)-enabled policy management for an identity provider in a federated environment |
US8825854B2 (en) * | 2008-11-24 | 2014-09-02 | Sap Ag | DMZ framework |
US8083135B2 (en) | 2009-01-12 | 2011-12-27 | Novell, Inc. | Information card overlay |
US8632003B2 (en) | 2009-01-27 | 2014-01-21 | Novell, Inc. | Multiple persona information cards |
US9258369B2 (en) * | 2009-06-18 | 2016-02-09 | At&T Intellectual Property I, L.P. | System and method to provide a network-based service |
CN101998360B (zh) * | 2009-08-11 | 2015-05-20 | 中兴通讯股份有限公司 | 建立身份管理信任的方法及身份提供方和业务提供方 |
US8752152B2 (en) * | 2009-12-14 | 2014-06-10 | Microsoft Corporation | Federated authentication for mailbox replication |
US20110173443A1 (en) * | 2010-01-12 | 2011-07-14 | Phion Ag | Secure extranet server |
US8832271B2 (en) * | 2010-12-03 | 2014-09-09 | International Business Machines Corporation | Identity provider instance discovery |
US8315620B1 (en) | 2011-05-27 | 2012-11-20 | The Nielsen Company (Us), Llc | Methods and apparatus to associate a mobile device with a panelist profile |
US10277421B2 (en) * | 2011-10-31 | 2019-04-30 | Extreme Networks, Inc. | Route lookup resolution |
US10528262B1 (en) * | 2012-07-26 | 2020-01-07 | EMC IP Holding Company LLC | Replication-based federation of scalable data across multiple sites |
US8843514B1 (en) * | 2012-08-31 | 2014-09-23 | Google Inc. | Identifier matching exchange |
US8996810B2 (en) * | 2012-12-10 | 2015-03-31 | Facebook, Inc. | System and method of detecting cache inconsistencies |
CN105593851A (zh) * | 2013-08-01 | 2016-05-18 | 新加坡国立大学 | 用于跟踪与通过关联的文本和图像可识别的实体相关的微博消息的方法和装置 |
EP3097481B1 (en) | 2014-01-21 | 2022-11-30 | Oracle International Corporation | System and method for supporting multi-tenancy in an application server, cloud, or other environment |
US9531749B2 (en) | 2014-08-07 | 2016-12-27 | International Business Machines Corporation | Prevention of query overloading in a server application |
EP3198426B1 (en) * | 2014-09-26 | 2023-08-30 | Oracle International Corporation | System and method for transaction recovery in a multitenant application server environment |
US10228958B1 (en) * | 2014-12-05 | 2019-03-12 | Quest Software Inc. | Systems and methods for archiving time-series data during high-demand intervals |
US20160373405A1 (en) * | 2015-06-16 | 2016-12-22 | Amazon Technologies, Inc. | Managing dynamic ip address assignments |
FR3038413A1 (fr) * | 2015-07-03 | 2017-01-06 | Orange | Procede de gestion de l'authentification d'un client dans un systeme informatique |
US10505957B2 (en) * | 2015-12-29 | 2019-12-10 | Oath Inc. | User verification |
US9946897B2 (en) * | 2016-02-26 | 2018-04-17 | Microsoft Technology Licensing, Llc | Data privacy management system and method |
CN107315650A (zh) * | 2016-04-26 | 2017-11-03 | 北京京东尚科信息技术有限公司 | 网络交易系统和由网络交易系统执行的方法 |
JP6540642B2 (ja) * | 2016-09-21 | 2019-07-10 | 京セラドキュメントソリューションズ株式会社 | 認証システムおよび認証方法 |
US10243946B2 (en) * | 2016-11-04 | 2019-03-26 | Netskope, Inc. | Non-intrusive security enforcement for federated single sign-on (SSO) |
WO2018089800A1 (en) | 2016-11-10 | 2018-05-17 | Ronald Scott Visscher | System with a unique and versatile evaluation method |
US11089028B1 (en) * | 2016-12-21 | 2021-08-10 | Amazon Technologies, Inc. | Tokenization federation service |
US11245727B2 (en) * | 2019-05-16 | 2022-02-08 | International Business Machines Corporation | Adaptive identity broker for governance of decentralized identities across multiple heterogeneous identity networks |
US11876796B2 (en) * | 2020-06-09 | 2024-01-16 | Strata Identity, Inc. | Systems, methods, and storage media for abstraction and enforcement in an identity infrastructure |
CN112199347B (zh) * | 2020-08-27 | 2023-03-24 | 国网山东省电力公司日照供电公司 | 一种供电服务知识共享平台系统 |
US20220237203A1 (en) * | 2021-01-22 | 2022-07-28 | Vmware, Inc. | Method and system for efficiently propagating objects across a federated datacenter |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6263342B1 (en) * | 1998-04-01 | 2001-07-17 | International Business Machines Corp. | Federated searching of heterogeneous datastores using a federated datastore object |
US20060059024A1 (en) * | 2002-11-07 | 2006-03-16 | Flytecomm, Inc. | Advanced travel management system |
US8561161B2 (en) * | 2002-12-31 | 2013-10-15 | International Business Machines Corporation | Method and system for authentication in a heterogeneous federated environment |
US8108920B2 (en) * | 2003-05-12 | 2012-01-31 | Microsoft Corporation | Passive client single sign-on for web applications |
US8528063B2 (en) * | 2004-03-31 | 2013-09-03 | International Business Machines Corporation | Cross domain security information conversion |
US20050235011A1 (en) * | 2004-04-15 | 2005-10-20 | Microsoft Corporation | Distributed object classification |
US20060090003A1 (en) * | 2004-10-22 | 2006-04-27 | Microsoft Corporation | Rendezvousing resource requests with corresponding resources |
US20070118399A1 (en) * | 2005-11-22 | 2007-05-24 | Avinash Gopal B | System and method for integrated learning and understanding of healthcare informatics |
CA2540058A1 (en) * | 2005-12-06 | 2007-06-08 | Emeka Akaezuwa | Portable search engine |
EP1826979A1 (en) * | 2006-02-27 | 2007-08-29 | BRITISH TELECOMMUNICATIONS public limited company | A system and method for establishing a secure group of entities in a computer network |
-
2006
- 2006-07-08 US US11/456,194 patent/US7860883B2/en not_active Expired - Fee Related
-
2007
- 2007-07-06 CN CN2007101279996A patent/CN101102257B/zh not_active Expired - Fee Related
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101640924B (zh) * | 2008-08-01 | 2016-01-13 | 联发科技股份有限公司 | 处理封包交换数据传输的方法及其系统 |
CN102986190A (zh) * | 2010-07-08 | 2013-03-20 | 国际商业机器公司 | 资源访问管理 |
CN102986190B (zh) * | 2010-07-08 | 2016-01-20 | 国际商业机器公司 | 资源访问管理 |
US9560036B2 (en) | 2010-07-08 | 2017-01-31 | International Business Machines Corporation | Cross-protocol federated single sign-on (F-SSO) for cloud enablement |
CN102591710A (zh) * | 2010-12-16 | 2012-07-18 | 微软公司 | 共享对象表示 |
CN102591710B (zh) * | 2010-12-16 | 2015-11-25 | 微软技术许可有限责任公司 | 共享对象表示 |
CN104144158A (zh) * | 2013-05-08 | 2014-11-12 | 国际商业机器公司 | 用于基于策略的自动同意的方法和装置 |
CN104144158B (zh) * | 2013-05-08 | 2017-09-29 | 国际商业机器公司 | 用于基于策略的自动同意的方法和装置 |
US11080430B2 (en) | 2019-03-27 | 2021-08-03 | Advanced New Technologies Co., Ltd. | Integrity of communications between blockchain networks and external data sources |
TWI734426B (zh) * | 2019-03-27 | 2021-07-21 | 開曼群島商創新先進技術有限公司 | 使用可信執行環境檢索區塊鏈網路的公開資料 |
US11082240B2 (en) | 2019-03-27 | 2021-08-03 | Advanced New Technologies Co., Ltd. | Retrieving public data for blockchain networks using highly available trusted execution environments |
US11088850B2 (en) | 2019-03-27 | 2021-08-10 | Advanced New Technologies Co., Ltd. | Retrieving public data for blockchain networks using highly available trusted execution environments |
US11323271B2 (en) | 2019-03-27 | 2022-05-03 | Advanced New Technologies Co., Ltd. | Retrieving public data for blockchain networks using highly available trusted execution environments |
US11449641B2 (en) | 2019-03-27 | 2022-09-20 | Advanced New Technologies Co., Ltd. | Integrity of communications between blockchain networks and external data sources |
US11095629B2 (en) | 2019-03-29 | 2021-08-17 | Advanced New Technologies Co., Ltd. | Retrieving access data for blockchain networks using highly available trusted execution environments |
US11405372B2 (en) | 2019-03-29 | 2022-08-02 | Advanced New Technologies Co., Ltd. | Retrieving access data for blockchain networks using highly available trusted execution environments |
CN110570184A (zh) * | 2019-08-26 | 2019-12-13 | 北京知嘛文化传播有限公司 | 向用户提供产品的系统、方法、装置以及存储介质 |
CN112835984A (zh) * | 2021-03-10 | 2021-05-25 | 北京车和家信息技术有限公司 | 告警处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US7860883B2 (en) | 2010-12-28 |
US20080010288A1 (en) | 2008-01-10 |
CN101102257B (zh) | 2011-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101102257B (zh) | 传输数据对象的方法和装置 | |
CN101127606B (zh) | 传输数据对象的方法和装置 | |
CN101110824B (zh) | 在联盟计算环境中处理事务的方法和设备 | |
AU2021206913B2 (en) | Systems and methods for distributed data sharing with asynchronous third-party attestation | |
CN100571129C (zh) | 联合用户生命周期管理的信任基础结构支持的方法和系统 | |
CN100568256C (zh) | 用于运行时刻用户帐户创建操作的方法 | |
CN1726690B (zh) | 用于异构型联合环境中的本机认证协议的方法和系统 | |
US20180060761A1 (en) | Digital rights management (drm)-enabled policy management for an identity provider in a federated environment | |
US8151317B2 (en) | Method and system for policy-based initiation of federation management | |
Sánchez et al. | Enhancing privacy and dynamic federation in IdM for consumer cloud computing | |
KR101054700B1 (ko) | 연합 환경에서 서비스 제공업자를 위한 디지털 권리 관리(drm) 강화 정책 관리 | |
CN1514569B (zh) | 在不同类联合环境中用于验证的方法和系统 | |
CN100388278C (zh) | 在异构联合环境中统一注销的方法和系统 | |
US7316027B2 (en) | Techniques for dynamically establishing and managing trust relationships | |
KR100970771B1 (ko) | 웹 서비스들 사이의 보안 협정 동적 교섭 | |
CN103716326A (zh) | 一种资源访问方法及用户资源网关 | |
Ribeiro et al. | STORK: a real, heterogeneous, large-scale eID management system | |
Fonseca et al. | A security framework for SOA applications in mobile environment | |
Kim et al. | Efficient and secure device clustering for networked home domains | |
Park et al. | Trusted P2P computing environments with role-based access control | |
Ferdous et al. | A hybrid model of attribute aggregation in federated identity management | |
KR100992016B1 (ko) | 데이터 프로세싱 시스템 내에 연합 기능성을 제공하는 방법및 장치 | |
Khan et al. | Negotiation based on individualization: Incorporating personalization into federation | |
JP2002258744A (ja) | 改竄防止機能付コンテンツ配信方法、システム、コンテンツ提供者端末、およびコンテンツ利用者端末 | |
WO2007024830A2 (en) | Method and system for peer-to-peer services architecture and framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110831 Termination date: 20160706 |
|
CF01 | Termination of patent right due to non-payment of annual fee |