使用发布订阅模型的身份提供者发现服务的制作方法

文档序号:6533136阅读:285来源:国知局
使用发布订阅模型的身份提供者发现服务的制作方法
【专利摘要】代理集成在F-SSO环境中,并且与外部身份提供者(IdP)实例发现服务交互。代理将IdP实例请求代理到发现服务,并且接收包括IdP实例分配的响应。代理保持实例分配的高速缓存。随着接收新的实例请求,替代将这些请求代理到发现服务,高速缓存的分配数据用于提供适当的响应,从而减少识别要求的IdP实例所需的时间。通过订阅来自发现服务的更新,代理动态地保持和管理其高速缓存。更新识别在包括IdP服务的一组地理上分布的实例中出现的IdP实例改变(诸如服务器离线用于维护,添加新的服务等)。经由发布-订阅模型提供更新,使得代理主动地接收改变通知。
【专利说明】使用发布订阅模型的身份提供者发现服务

【技术领域】
[0001] 本公开涉及联邦环境(federated environment)中计算资源的管理,并且具 体涉及用于使用发布订阅模型的身份提供者发现服务(identity provider discovery service)的方法。

【背景技术】
[0002] 联邦环境是本领域公知的。联邦是一组独立实体(诸如企业、组织、机构等),其 协作以为用户提供单点登陆(single-sign-on)、易用体验。联邦环境不同于典型的单点登 陆环境在于两个实体不需要具有直接的、预先建立的、定义对于用户如何传送和传送什么 信息的关系。在联邦环境内,实体提供处理认证用户,接受由其他实体呈现的认证断言(例 如,认证令牌),以及提供将用户的担保身份转换为本地实体内理解的身份的一些形式的转 换的服务。联邦减轻了服务提供者的管理负担。服务提供者(SP)可以依赖于其相对于联 邦整体的信任关系;服务提供者不需要管理认证信息,诸如用户密码信息,因为它可以依赖 于由用户的认证家域(authentication home domain)完成的认证,该认证家域是用户在其 认证的域。
[0003] 特别地,联邦实体可以担当提供关于联邦用户的身份信息和属性信息的用户的家 域。提供身份信息、身份或认证断言、或身份服务的联邦计算环境中的实体称为身份提供 者(IdP)。同一联邦内的其他实体或联邦伙伴可以依赖于用于用户的认证证书的主要管理 (例如,接受由用户的身份提供者提供的单点登陆令牌)的身份提供者。身份提供者是特定 类型的服务,其提供作为服务的身份信息给联邦计算环境中的其他实体。
[0004] 联邦单点登陆(F-SS0)允许用户裕服务提供者(SP)直接交互,并且为了在认证的 环境下接收身份信息的目的,利用SP和IdP之间的安全信任关系。
[0005] 用于身份提供者发现的典型模型是与终端用户直接交互的服务。该方法在多种场 景中是有用的,例如,允许终端用户从可用身份提供者的列表选择,或者便于属性同意。已 知的发现服务实施方式典型地以独立方式操作,或者通过直接嵌入服务提供者。在高等级, 一个典型的发现模型工作如下。终端用户访问应用(SP),然后手动地选择身份提供者。月艮 务提供者然后将终端用户重新定向到选择的身份提供者。终端用户对身份提供者认证,身 份提供者(在认证之后)然后将终端用户重新定向(典型地通过基于HTTP重定向)回应 用。IdP还为SP提供身份断言,诸如安全断言标记语言(SAML)断言或令牌,其提供联邦用 户已经认证的证明。然后在联邦用户和SP之间建立终端用户会话以完成该处理。
[0006] 另一典型的发现方法是SP将用户重新定向到另一服务,其然后与用户交互以选 择IdP。该服务然后将用户重新定向到IdP用于认证,然后用户重新定向回SP。
[0007] 在一些场景中,单个身份提供者可以在地理上分布的实例上实施。在此情况下,试 图访问SP的用户需要定向到最近或者最恰当的IdP实例。该操作可以由身份提供者实例 发现服务提供,如在共同拥有的美国专利号12/959, 413中描述的。IdP实例发现服务提供 一组身份提供者实例的特定身份提供者实例的自动发现以及绑定。在该方法中,特定身份 提供者的选择可以基于一个或多个标准,诸如用户相近性(网络或地理)、IdP实例负载或 可用性、IdP实例能力、与特定实例相关联的性能度量、现有IdP绑定或一些组合。
[0008] 尽管IdP实例发现服务允许服务提供者动态地检索适当的IdP实例的位置,用于 F-SS0协议的完成,设计这样的技术以在F-SS0环境外部操作,并且它们依赖于"基于拉动 的(pull-based) "方法以根据需要获得IdP实例信息。


【发明内容】

[0009] 本发明描述了一种增强的身份提供者实例发现服务(IdPIDS)。在该方法中,发现 服务代理优选地集成在F-SS0环境(其可以是基于云的)内,并且用于与外部IdP实例发 现服务交互。发现服务代理将IdP实例请求代理到发现服务,并且接收对于这种请求的响 应。响应典型地包括已经由发现服务分配来处理该请求的实例的身份。代理保持其中存储 实例分配的高速缓存。随着在代理接收新的实例请求,代理可以使用高速缓存的分配数据 以提供适当的响应,替代将这些请求代理到发现服务,从而减少识别请求的IdP实例所需 的时间。代理通过订阅来自发现服务的更新动态地保持和管理其本地高速缓存,发现服务 更新在包括IdP服务的一组地理上分布的实例内出现的身份IdP实例改变(诸如服务器为 了维护而离线,添加新的服务等)。优选地,使用使得代理主动接收关于后端IdP服务中改 变的通知的发布-订阅(pub-sub)模型,将更新提供给代理。
[0010] 前述已经概述本发明的一些更相关的特征。这些特征应该理解为仅仅是说明性 的。通过以不同的方式应用公开的发明或者通过修改本发明可以获得一些其他有益结果, 如将描述的。
[0011] 从第一方面看,本发明提供了用于使用身份提供者实例发现服务提供身份提供者 服务的方法,包括:在由发现服务处理对于身份提供者实例的请求时,接收和存储识别身份 提供者实例的数据;接收关于与所述发现服务相关联的资源的更新,经由在硬件元件上支 持的发布-订阅通知服务接收所述更新;基于所述更新,修改所述数据;以及在接收对于身 份提供者实例的新请求时,响应于所述新请求使用修改的数据以识别用于使用的身份提供 者实例。
[0012] 优选地,本发明提供了一种方法,其中所述数据是将请求与由所述发现服务选择 以服务所述请求的身份提供者实例相关联的分配数据。
[0013] 优选地,本发明提供了一种方法,其中周期性地或非同步地接收所述更新。
[0014] 优选地,本发明提供了一种方法,其中所述通知服务是由所述身份提供者实例发 现服务提供的Web服务。
[0015] 优选地,本发明提供了一种方法,还包括订阅所述更新。
[0016] 优选地,本发明提供了一种方法,其中所述更新包括以下之一:与一个或多个身份 提供者实例相关联的负载、一个或多个身份提供者实例的可用性、与一个或多个身份提供 者实例相关联的性能度量、以及与一个或多个身份提供者实例相关联的现有绑定。
[0017] 优选地,本发明提供了一种方法,其中根据策略或商业逻辑修改所述数据。
[0018] 从另一方面看,本发明提供了一种用于使用身份提供者实例发现服务提供身份提 供者服务的装置,包括:处理器;保持计算机程序指令的计算机存储器,当计算机程序指令 由处理器运行时执行一种方法,包括:在由发现服务处理对于身份提供者实例的请求时,接 收和存储识别身份提供者实例的数据;接收关于与所述发现服务相关联的资源的更新,经 由在硬件元件上支持的发布-订阅通知服务接收所述更新;基于所述更新,修改所述数据; 以及在接收对于身份提供者实例的新请求时,响应于所述新请求使用修改的数据以识别用 于使用的身份提供者实例。
[0019] 优选地,本发明提供了一种装置,其中所述数据是将请求与由所述发现服务选择 以服务所述请求的身份提供者实例相关联的分配数据。
[0020] 优选地,本发明提供了一种装置,其中周期性地或非同步地接收所述更新。
[0021] 优选地,本发明提供了一种装置,其中所述通知服务是由所述身份提供者实例发 现服务提供的Web服务。
[0022] 优选地,本发明提供了一种装置,其中所述方法还包括订阅所述更新。
[0023] 优选地,本发明提供了一种装置,其中所述更新包括以下之一:与一个或多个身份 提供者实例相关联的负载、一个或多个身份提供者实例的可用性、与一个或多个身份提供 者实例相关联的性能度量、以及与一个或多个身份提供者实例相关联的现有绑定。
[0024] 优选地,本发明提供了一种装置,其中根据策略或商业逻辑修改所述数据。
[0025] 从另一方面看,本发明提供了一种用于在数据处理系统中使用的计算机可读介质 中的计算机程序产品,用于使用身份提供者实例发现服务提供身份提供者服务,计算机程 序产品保持计算机程序指令,当由数据处理系统运行时,执行一种方法,包括:在由发现服 务处理对于身份提供者实例的请求时,接收和存储识别身份提供者实例的数据;接收关于 与所述发现服务相关联的资源的更新,经由在硬件元件上支持的发布-订阅通知服务接收 所述更新;基于所述更新,修改所述数据;以及在接收对于身份提供者实例的新请求时,响 应于所述新请求使用修改的数据以识别用于使用的身份提供者实例。
[0026] 优选地,本发明提供了一种计算机程序产品,其中所述数据是将请求与由所述发 现服务选择以服务所述请求的身份提供者实例相关联的分配数据。
[0027] 优选地,本发明提供了一种计算机程序产品,其中周期性地或非同步地接收所述 更新。
[0028] 优选地,本发明提供了一种计算机程序产品,其中所述通知服务是由所述身份提 供者实例发现服务提供的Web服务。
[0029] 优选地,本发明提供了一种计算机程序产品,其中所述方法还包括订阅所述更新。
[0030] 优选地,本发明提供了一种计算机程序产品,其中所述更新包括以下之一:与一个 或多个身份提供者实例相关联的负载、一个或多个身份提供者实例的可用性、与一个或多 个身份提供者实例相关联的性能度量、以及与一个或多个身份提供者实例相关联的现有绑 定。
[0031] 优选地,本发明提供了一种计算机程序产品,其中根据策略或商业逻辑修改所述 数据。
[0032] 从另一方面看,本发明提供了一种用于识别身份提供者实例的系统,包括:在硬件 元件上支持并且具有与其相关联的高速缓存的代理,所述代理发出身份提供者实例发现请 求;身份提供者实例发现服务,其接收由所述代理发出的每个身份提供者实例发现请求,进 行选择,并且将识别所述选择的数据返回所述代理,用于在所述高速缓存中存储;以及通知 服务,所述代理通过所述通知服务订阅以从所述身份提供者实例发现服务接收更新,至少 一个更新关于与发现服务相关联的资源,并且由所述代理用于更新所述高速缓存中存储的 所述数据。
[0033] 优选地,本发明提供了一种系统,其中所述通知服务根据发布-订阅模型操作。
[0034] 优选地,本发明提供了一种系统,其中周期性地或非同步地提供所述更新。
[0035] 优选地,本发明提供了一种系统,其中所述高速缓存中存储的所述数据根据策略 或商业逻辑更新。

【专利附图】

【附图说明】
[0036] 参照附图,现在将仅通过示例的方式描述本发明的优选实施例,附图中:
[0037] 图1描绘其中可以实施说明性实施例的示例性方面的分布式数据处理环境的示 例性框图;
[0038] 图2是其中可以实施说明性实施例的示例性方面的数据处理系统的示例性框图;
[0039] 图3图示其图示给定域的数据处理系统与可以用于支持描述的主题的实施例的 联邦架构组件的集成的框图;
[0040] 图4描绘其中可以根据本发明的实施例实施身份提供者发现处理的云计算环境 的抽象模型层;
[0041] 图5图示用于实现身份提供者的发现的一般技术;
[0042] 图6图示用于将终端用户绑定或路由到特定IdP实例的已知负载平衡的基于DNS 的机制;
[0043] 图7图示已知的企业内IdP实例发现服务(IdPIDS);
[0044] 图8图示图7的实施例中的SP、IdPIDS和IdP之间的交互;
[0045] 图9图示F-SS0云计算环境中发现服务代理的实施方式;
[0046] 图10图示根据本公开的教导的由发现服务代理和IdPIDS实施的发布-订阅机 制;以及
[0047] 图11图示实施为WS-通知服务的代表性发布-订阅机制。

【具体实施方式】
[0048] 现在参照附图并且特别参照图1-2,提供了其中可以实施本公开的实施例的数据 处理环境的示例性图示。应该理解,图1-2仅仅是示例性的,并且不旨在断言或暗示对于其 中可以实施公开的主题的各方面或实施例的环境的任何限制。可以进行对于描述的环境的 许多修改而不背离本发明的精神和范围。
[0049] 客户端-服备器樽型
[0050] 现在参照附图,图1描绘其中可以实施说明性实施例的各方面的示例性分布式数 据处理系统的图形表示。分布式数据处理系统100可以包括其中可以实施说明性实施例的 各方面的计算机的网络。分布式数据处理系统100包含至少一个网络102,其是用于提供 各种设备与分布式数据处理系统1〇〇中连接在一起的计算机之间的通信链路的介质。网络 102可以包括诸如有线、无线通信链路、或者光纤的连接。
[0051] 在描绘的示例中,服务器104和服务器106与存储单元108 -起连接到网络102。 此外,客户端110、112和114也连接到网络102。这些客户端110、112和114可以例如是个 人计算机、网络计算机等。在描绘的示例中,服务器104提供诸如引导文件、操作系统映像 和应用的数据到客户端110、112和114。客户端110、112和114是到描绘的示例中的服务 器104的客户端。分布式数据处理系统100可以包括未示出的额外的服务器、客户端和其 他设备。
[0052] 在描绘的示例中,分布式数据处理系统100是具有代表使用传输控制协议/因特 网协议(TCP/IP)套件的协议相互通信的网络和网关的全世界集合的网络102的因特网。在 因特网的心脏是由路由数据和消息的成千上万的商业、政府、教育和其他计算机系统构成 的主要节点或主机计算机之间的高速数据通信线路的主干网。当然,分布式数据处理系统 100还可以实施以包括多个不同类型的网络,诸如例如内联网、局域网(LAN)、广域网(WAN) 等。如上所述,图1旨在为示例,不是作为对于公开的主题的不同实施例的架构限制,并且 因此,图1示出的特定元件不应视为对于其中可以实施本发明的说明性实施例的环境的限 制。
[0053] 现在参照图2,示出其中可以实施说明性实施例的数据处理系统的框图。数据处理 系统200是诸如图1中的服务器104或客户端110的计算机的示例,其中可以为说明性实 施例定位实施处理的计算机可用程序代码或指令。在该说明性示例中,数据处理系统200 包括通信组织202,其提供处理器单元204、存储器206、永久存储208、通信单元210、输入/ 输出(I/O)单元212和显示器214之间的连接。
[0054] 处理器单元204用于执行可以加载到存储器206的软件的指令。取决于具体实施 方式,处理器单元204可以是一组一个或多个处理器,或者可以是多处理器核心。此外,处 理器单元204可以使用一个或多个异构处理器系统实施,其中主处理器与次级处理器存在 于单个芯片上。作为另一说明性示例,处理器单元204可以是包含多个相同类型的处理器 的对称多处理器系统。
[0055] 存储器206和永久存储208是存储设备的示例。存储设备是能够临时和/或永久 存储信息的任何块硬件。在这些示例中,存储器206例如可以是随机存取存储器或任何其 他合适的易失性或非易失性存储设备。取决于【具体实施方式】,永久存储208可以采取各种 形式。例如,永久存储208可以包含一个或多个组件或设备。例如,永久存储208可以是硬 驱动器、闪速存储器、可重写光盘、可重写磁带或上述一些组合。由永久存储208使用的介 质还可以是可移除的。例如,可移除硬驱动器可以用于永久存储208。
[0056] 在这些示例中,通信单元210提供与其他数据处理系统或设备的通信。在这些示 例中,通信单元210是网络接口卡。通信单元210可以通过使用物理和无线通信链路的任 一或两者提供通信。
[0057] 输入/输出单元212允许与可以连接到数据处理系统200的其他设备的数据的输 入和输出。例如,输入/输出单元212可以通过键盘和鼠标提供用于用户输入的连接。此 夕卜,输入/输出单元212可以发送输出到打印机。显示器214提供显示信息给用户的机制。
[0058] 用于操作系统和应用或程序的指令位于永久存储208上。这些指令可以加载到存 储器206中,用于由处理器单元204执行。不同实施例的处理可以通过使用可以位于存储 器(诸如存储器206)中的计算机实施的指令的处理器单元204执行。这些指令称为可以 由处理器单元204中的处理器读取和执行的程序代码、计算机可用程序代码、或者计算机 可读程序代码。不同实施例中的程序代码可以体现在不同物理或有形计算机可读介质上, 诸如存储器206或永久存储208。
[0059] 程序代码216以功能形式位于可以选择性移除的计算机可读介质218中,并且可 以加载到或传送到数据处理系统200用于由处理器单元204执行。在这些示例中,程序代 码216和计算机可读介质218形成计算机程序产品220。在一个示例中,计算机可读介质 218可以以有形形式,诸如例如可以插入或放置到作为永久存储208的一部分的驱动器或 其他设备用于传送到存储设备(诸如作为永久存储208的一部分的硬驱动器)上的光或磁 盘。在有形形式中,计算机可读介质218还可以从采取永久存储的形式,诸如连接到数据处 理系统200的硬驱动器、指状储存器或闪速存储器。计算机可读介质218的有形形式也称 为计算机可记录存储介质。在一些实例中,计算机可记录介质218不可移除。
[0060] 可替代地,程序代码216可以通过到通信单元210的通信链路和/或通过到输入/ 输出单元212的连接,从计算机可读介质218传送到数据处理系统200。在说明性示例中, 通信链路和/或连接可以是物理的或无线的。计算机可读介质还可以采取非有形介质的形 式,诸如包含程序代码的通信链路或无线传输。为数据处理系统200图示的不同组件不意 味着提供对于其中可以实施不同实施例的方式的架构限制。不同说明性实施例可以在包括 除了或替代为数据处理系统200图示的那些组件的组件的数据处理系统中实施。图2中示 出的其他组件可以根据示出的说明性示例而变化。作为一个示例,数据处理系统200中的 存储设备是可以存储数据的任何硬件装置。存储器206、永久存储208和计算机可读介质 218是以有形形式的存储设备的示例。
[0061] 在另一示例中,总线系统可以用于实施通信组织202,并且可以包括一个或多个总 线(诸如系统总线或输入/输出总线)。当然,总线系统可以使用提供附接到总线系统的不 同组件或设备之间的数据的传送的任何适当类型的架构来实施。此外,通信单元可以包括 用于发送和接收数据的一个或多个设备,诸如调制解调器或网络适配器。此外,存储器可以 例如是存储器或诸如在可以存在于通信组织202中的接口和存储器控制器中发现的高速 缓存。
[0062] 用于执行本发明的操作的计算机程序代码可以以一种或多种编程语言的任何组 合撰写,包括诸如Java、Smalltalk、C++等的面向对象的编程语言以及诸如"C"编程语言或 类似编程语言的传统程序性编程语言。程序代码可以整体地在用户计算机、部分地在用户 计算机(作为独立软件包)、部分地在用户计算机并且部分地在远程计算机、或整体地在远 程计算机或服务器上执行。在后一场景中,远程计算机可以通过任何类型的网络(包括局 域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以进行到外部计算机的连接(例 如,通过使用因特网服务提供者的因特网)。
[0063] 本领域的普通技术人员将理解图1-2中的硬件可以取决于实施方式而变化。除了 或替代图1-2中描绘的硬件,可以使用其他内部硬件或外部设备(诸如闪速存储器、等价非 易失性存储器或光盘驱动器等)。此外,除了之前提及的SMP系统,说明性实施例的处理可 以应用于多处理器数据处理系统,而不背离公开的主题的精神和范围。
[0064] 如将所见的,在此描述的技术可以结合诸如图1中图示的标准客户端-服务器范 例操作,标准客户端-服务器范例中客户端机器与在一组一个或多个机器上运行的因特网 可访问的、基于Web的门户通信。终端用户操作能够访问和与门户交互的可连接因特网的 设备(例如,桌面型计算机、笔记本计算机、连网的移动设备等)。典型地,每个客户端或 服务器机器是包括硬件和软件的诸如图2所示的数据处理系统,并且这些实体在诸如因特 网、内联网、外联网、专用网或任何其他通信介质或链接的网络上相互通信。数据处理系统 典型地包括一个或多个处理器、操作系统、一个或多个应用以及一个或多个实用程序。数 据处理系统上的应用提供对于Web服务的原生支持,包括但不限于对于HTTP、SOAP、XML、 WSDL、UDDI和WSFI的支持。关于SOAP、WSDL、UDDI和WSFL的信息可从负责开发和维护这 些标准的万维网联盟(W3C)获得;关于HTTP和XML的进一步信息可从互联网工程任务组 (IETF)获得。假设对于这些标准熟悉。
[0065] 联邦樽型
[0066] 如上所述,在在此的一个实施例中,在"联邦"环境的情况下实施身份提供者实例 发现。因此,提供以下背景。通常,企业具有它自身的用户登记,并且保持与它自身的用户 组的关系。每个企业典型地具有它自身认证这些用户的方式。然而,在联邦方案中,企业以 集体方式协作,使得一个企业中的用户可以通过企业参与企业的联邦利用与一组企业的关 系。用户可以被授权访问处于任何联邦企业的资源,好像它们具有与每个企业的直接关系。 用户不需要在每个感兴趣的商业处登记,并且用户不一直要求用户标识和认证他们自身。 因此,在该联邦环境中,认证方案允许信息技术中迅速演化的异构环境中的单点登陆体验。 [0067] 如所公知的,联邦是一组独立实体,诸如企业、企业内的逻辑单位、组织、机构等, 其协作以为用户提供单点登陆、易用体验;联邦环境不同于典型的单点登陆环境在于两个 实体不需要具有直接的、预先建立的、定义对于用户如何传送和传送什么信息的关系。在联 邦环境内,实体提供处理认证用户,接受由其他实体呈现的认证断言(例如,认证令牌),以 及提供将用户的担保身份转换为本地实体内理解的身份的一些形式的转换的服务。
[0068] 联邦减轻了服务提供者的管理负担。服务提供者可以依赖于其相对于联邦整体的 信任关系;服务提供者不需要管理认证信息,诸如用户密码信息,因为它可以依赖于由用户 的认证家域或身份提供者完成的认证。联邦环境允许用户在第一实体处认证,该第一实体 可以充当发出用于在第二实体处使用的关于用户的认证断言的发出方。用户然后可以通过 呈现由第一实体发出的认证断言,而不必在第二实体处明确地重新认证,访问处于第二、独 立实体(称为响应方)的受保护的资源。从发出方传送到响应方的信息以断言的形式,并 且该断言可以包含以声明形式的不同类型的信息。例如,断言可以是关于用户的认证身份 的声明,或者它可以是关于与特定用户相关联的用户属性信息的声明。此外,该信息可以由 响应方用于基于由响应方维护的响应方的访问控制规则、身份映射规则和可能的一些用户 属性,提供对于响应方的资源的访问。
[0069]身份提供者(IdP)是特定类型的服务,其提供身份信息作为服务到联邦计算环境 中的其他实体。对于大多数联邦交易,对于认证断言的发出方将通常是身份提供者;任何其 他实体可以区别于身份提供者。提供联邦计算环境中的服务的任何其他实体可以分类为服 务提供者。一旦用户已经认证到身份提供者,那么联邦中的其他实体或企业可以仅仅被视 为给定联邦会话或给定联邦交易期间的服务提供者。
[0070] 尽管可能在联邦环境中存在可以充当身份提供者的多个企业,例如,因为它们是 具有生成和验证用户的认证证书等的能力的多个企业,但是联邦交易通常仅涉及单个身份 提供者。如果仅存在能够认证用户的单个联邦实体,例如,因为联邦内存在一个并且仅存在 一个实体用户与其执行联邦登记或注册操作,那么将预期该实体充当用户的身份提供者, 以便支持贯穿联邦环境的用户的交易。
[0071] 现在参照图3,框图描绘了给定域的预先存在的数据处理系统与可以用于支持身 份提供者的一些联邦架构组件的集成。联邦环境包括为用户提供多种服务的实体。用户 312与可以支持浏览器应用316和各种其他客户端应用318的客户端设备314交互。用户 312区别于客户端设备314、浏览器316和充当用户和其他设备和服务之间接口的任何其他 软件。在一些情况下,以下描述可以在客户端应用中明确地活动的用户与代表用户活动的 客户端应用之间进行区分。通常,尽管请求者是中介,诸如基于客户端的应用、浏览器、SOAP 客户端等,但是可以假设为代表用户活动。
[0072] 浏览器应用316可以是典型的浏览器,其包括许多模块,诸如HTTP通信组件320 和标记语言(ML)解释器322。浏览器应用316还可以支持插件程序,诸如可能或可能不要 求虚拟机运行时间环境的Web服务客户端324和/或可下载小应用程序。Web服务客户端 324可以使用简单对象访问协议(SOAP),其是用于定义在分散的分布式环境中结构化和类 型化信息的交换的轻量协议。SOAP是基于XML的协议,其包括三个部分:定义用于描述消 息中是什么以及如何处理它的框架的封装;用于表示应用定义的数据类型的实例的一组编 码规则;以及用于代表远程过程调用和响应的约定。用户312可以使用浏览器应用316访 问基于web的服务,但是用户312还可以通过客户端设备314上的其他web服务客户端访 问web服务。一些联邦操作可以采用经由用户的浏览器的HTTP重新定向。然而,描述的技 术可以在多种通信协议上支持,并且不意味着限于基于HTTP的通信。例如,当需要时,联邦 环境中的实体可以直接通信;不要求消息通过用户的浏览器重新定向。
[0073] 联邦环境所要求的组件可以与预先存在的系统集成。图3描绘用于将这些组件实 施为到预先存在的系统的前端的一个实施例。在联邦域处预先存在的组件可以被视为传统 应用或后端处理组件330,其以类似于图4所示的方式包括认证服务运行时间(ASR)服务器 332。ASR服务器332负责当域控制对于应用服务器334的访问时认证用户,对于应用服务 器334的访问可以被视为生成、检索或者其他方式支持或处理受保护的资源335。域可以继 续使用传统用户注册应用336,以注册用户用于访问应用服务器334。针对传统操作认证注 册用户所需的信息存储在企业用户注册表338中;企业用户注册表338也可以对于联邦组 件可访问。
[0074] 在加入联邦环境之后,域可以继续操作而不干涉联邦组件。换句话说,可以配置 域,使得用户可以继续直接访问特定应用服务器或其他受保护的资源,而不通过接触点服 务器或实施该接触点服务器功能的其他组件;以此方式访问系统的用户将经历典型的认证 流程和典型的访问。在此情况下,然而,直接访问传统系统的用户将不能建立对于域的接触 点服务器已知的联邦会话。
[0075] 通过使用联邦前端处理340,域的传统功能可以集成到联邦环境中,联邦前端处 理340包括接触点服务器342以及自身与安全令牌服务(STS)346交互的信任代理服务器 344 (或者更简单地,信任代理344或信任服务344)。联邦配置应用348允许管理用户配置 联邦前端组件,以允许它们通过联邦接口单元350与传统后端组件对接。联邦功能可以在 独立的系统组件或模块中实施。典型地,用于执行联邦操作的大多数功能可以由单个联邦 应用内的逻辑组件的集合实施;联邦用户生命周期管理应用352包括信任服务344连同单 点登陆协议服务(SPS)354。信任服务344可以包括身份和属性服务(IAS)356,其是负责作 为联邦功能的一部分的涉及身份映射、属性检索等操作的服务。身份和属性服务356还可 以在单点登陆操作期间由单点登陆协议服务354采用。联邦用户注册表358可以在特定情 况下采用以保持用于联邦专用目的的用户相关信息。
[0076] 云计算樽型
[0077] 云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的 网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能 快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟 机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型, 更多描述具体请参见Peter Mell和Tim Grance在2009年10月7日发表的的"Draft NIST Working Definition of Cloud Computing,'。
[0078] 具体典型特征包括:
[0079] 按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单 方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
[0080] 广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进 了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字 助理PDA)对云的使用。
[0081] 资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服 务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况 下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上 指定位置(例如国家、州或数据中心),因此具有位置无关性。
[0082] 迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展, 并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的, 并能在任意时候都能获取任意数量的计算能力。
[0083] 可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户 帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资 源使用情况,为服务提供者和消费者双方提供透明度。
[0084] 典型服务模型如下:
[0085] 软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的 应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户 机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包 括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
[0086] 平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或 获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不 控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制 权,对应用托管环境配置可能也具有控制权。
[0087] 基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行 包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理 也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的 网络组件(例如主机防火墙)可能具有有限的控制权。
[0088] 典型部署模型如下:
[0089] 私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管 理并且可以存在于该组织内部或外部。
[0090] 团体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安 全要求、政策和合规考虑)的特定团体。团体云可以由团体内的多个组织或第三方管理并 且可以存在于该团体内部或外部。
[0091] 公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
[0092] 混合云:云基础架构由两个或更多部署模型的云(私有云、团体云或公共云)组 成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术 (例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
[0093] 云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操 作性。云计算的核心是包含互连节点网络的基础架构。具有代表性的云计算节点如图2所 示。具体来讲,云计算节点具有计算机系统/服务器,其可与众多其它通用或专用计算系统 环境或配置一起操作。众所周知,适于与计算机系统/服务器一起操作的计算系统、环境和 /或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、 手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型 计算机系统、大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。计算 机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一 般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的 例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器可以在通过通信网络 链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序 模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0094] 参照图4,通过另外的背景,示出由云计算环境提供的一组功能抽象层。首先应当 理解,图4所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图4 所示,提供下列层和对应功能:
[0095] 硬件和软件层400包括硬件和软件组件。硬件组件的例子包括:主机,例 如IBM? zSeries?系统;基于RISC (精简指令集计算机)体系结构的服务器,例如 IBM pSeries? 系统;IBM xSeries? 系统;IBM B丨adeCenter? 系统;存储设备;网络 和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM WebSphere?应用服 务器软件;数据库软件,例如IBM DB2?数据库软件。(IBM, zSeries, pSeries, xSeries, B ladeCenter, WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
[0096] 虚拟层402提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚 拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
[0097] 在一个示例中,管理层404可以提供下述功能:资源供应功能:提供用于在云计算 环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对 资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软 件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户 门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云 计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为 根据SLA预测的对云计算资源未来需求提供预先安排和供应。
[0098] 工作负载层406提供云计算环境可能实现的功能的示例。在该层中,可提供的工 作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学 提供;数据分析处理;交易处理;以及根据本公开的教导,身份提供者实例发现。
[0099] 预先理解,尽管本公开包括关于云计算的详细描述,但是在此叙述的教导的实施 方式不限于云计算环境。当然,本发明的实施例能够结合已知或随后开发的任何其他类型 的计算环境实施。
[0100] 因此,代表性的云计算环境具有一组高级功能组件,其包括前端身份管理器、商业 支持服务(BSS)功能组件、操作支持服务(0SS)功能组件以及计算云组件。身份管理器负 责与请求客户端对接,以便提供身份管理,并且该组件可以用一个或多个已知系统实施,诸 如可从纽约Armonk的IBM公司获得的Tivoli联邦身份管理器(TFM)。在适当的情况下, TFM可以用于提供F-SS0到其他云组件。商业支持服务组件提供特定管理功能,诸如账单 支持。操作支持服务组件用于提供其他云组件(诸如虚拟机(VM)实例)的提供和管理。云 组件代表主要计算资源,其典型地是用于运行使得可经由云访问的目标应用410的多个虚 拟机实例。一个或多个数据库用于存储目录、日志和其他工作数据。所有这些组件(包括 前端身份管理器)位于云"内",但是这不是要求。在替代实施例中,身份管理器可以在云外 部操作。
[0101] 身份提供者实例发现
[0102] 还已知提供身份提供者(IdP)实例发现服务,有时称为"IdPIDS"。优选地,在终端 用户访问服务提供者以从应用获得服务之后,从联邦服务提供者(SP)自动访问(例如,经 由Web服务调用)IdPIDS。通常地,IdPIDS操作来从多个这样的实例选择(或者"选取") 身份提供者实例。如在此使用的,"实例"指由身份提供者执行的一组功能,其中这样的功能 在每个其他"实例"中复制或镜像。因此,至少对于终端用户客户端交互的处理,每个身份 提供者"实例"可以被认为功能上等价于另一这样的实例。特定身份提供者实例因此可以 存在于特定位置,特定时间,或者在给定发生。通常,IdPIDS操作来从可以用于接收终端用 户绑定的多个这样的实例定位"最佳的"身份提供者实例,尽管术语"最佳的"不应用于限 制公开的主题。特定"实例"可以是比另一这样的实例"更好",但是不必然相对于一些抽象 或定义的标准"最好"。最低限度,IdPIDS操作来基于给定的"选择"标准在另一这样的实 例上选择给定的IdP实例。如将在下面更详细描述的,选择标准可以是完全变化的,但是典 型的是以下之一:计算实体(例如,终端用户客户端机器或一些其他机器)和一个或多个身 份提供者实例之间的网络相近性、计算实体和一个或多个身份提供者实例之间的地理相近 性、与一个或多个身份提供者实例相关联的负载、一个或多个身份提供者实例的可用性、与 一个或多个身份提供者实例相关联的能力(包括但不限于IdP实例是否支持要求的F-SS0 协议/方法)、与一个或多个身份提供者实例相关联的性能度量、与一个或多个身份提供者 实例相关联的现有绑定、SP是否具有与一个或多个特定实例建立的伙伴关系等。
[0103] 以下提供一般地基于身份提供者发现的问题的额外背景。在图5中,假设终端用 户500希望从服务提供者502获得服务,并且具有多个独立的身份提供者选项,诸如身份提 供者504、506、508和510。在该示例中,身份提供者相互非附属,并且代表商业认证服务。已 知的发现服务实施方式(诸如图5中图示的)以独立方式操作,或者通过直接嵌入服务提 供者操作。在高等级,发现模型工作如下。终端用户500访问服务提供者502 (如在此使用 的,"服务提供者"和相关联的SP "应用"可以同时使用),然后手动地选择身份提供者。月艮 务提供者然后将终端用户重新定向到他或她希望使用的选择的身份提供者(例如,"WWW. yahoo, com" IdP 504)。终端用户对身份提供者认证,身份提供者(在认证之后)然后将终 端用户重新定向(典型地通过基于HTTP重定向)回SP 502。IdP 504还为SP 502提供身 份断言,诸如安全断言标记语言(SAML)断言或令牌,其提供联邦用户已经认证的证明。然 后在联邦用户和SP之间建立终端用户会话以完成该处理。
[0104] 图5中示出的方法不涉及身份提供者"实例",由于每个身份提供者504、506、508 和510独立操作。现在参照图6,已知的单个逻辑IdP发现服务提供有多个IdP实例。发现 服务可由服务提供者602访问。在该实施例中,所有IdP实例604、606、608和610优选地共 享公共站点(DNS)名,诸如"idp.xyz.com",并且每个实例位于特定位置(东京、班加罗尔、 伦敦和纽约)。全局服务负载平衡(GSLB)机制605将终端用户600路由到特定IdP实例。 在一个方法中,GSLB是基于DNS的,尽管路由可以在传统0SI模型的其他层执行。因此,在 替代方法中,基于BGP的路由标准可以用于确定选择哪个实例。更复杂的基于GSLB的方法 可以包括实现更精细粒度的地点选择标准的顾问组件。
[0105] 图7描述在其中企业具有多个IdP实例并且支持实施为联邦服务提供者的多个应 用的实施例中的企业内IdP发现技术。在该实施例中,如在图6中,存在多个身份提供者实 例704、706、708和710,仅为了图示的目的,多个身份提供者实例704、706、708和710位于 独立的地理位置,诸如东京、班加罗尔、伦敦和纽约。不像图6,其中使用基于GSLB的路由机 制选择IdP实例,在此身份提供者发现执行或实施为"服务"自身。由身份提供者实例发现 服务或" IdPIDS"提供发现方法。在该场景中,终端用户700对服务提供者702进行请求,并 且该请求自动(或者程序化地)调用IdPIDS服务705, IdPIDS服务705然后用于从多个实 例704、706、708和710选择IdP实例,多个实例704、706、708和710的每个由其唯一子域 [city], idp.xyz.com标识。同样如图7所示,一个或多个其他服务提供者(诸如SP 712) 也使用IdPIDS服务705。IdPIDS服务基于一个或多个标准选择给定的IdP实例,一个或多 个标准包括但不限于到每个IdP的用户相近性(网络或地理)、IdP负载或可用性、IdP能 力、现有IdP绑定、或者其一些组合。优选地,服务进行选择而不要求选择给定实例的处理 中直接终端用户介入(尽管终端用户最初可以介入选择身份提供者服务)。
[0106] 图8更详细地图示IdP实例发现处理。在该示例中,终端用户800优选地经由SSL、 TLS等已经建立到服务提供者802的连接。在步骤(1),客户端浏览器通过将请求(诸如 " https://www.xyz.com/application/")传递到服务提供者802。在步骤(2),服务提供 者802对IdPIDS服务805进行对于IdP实例的Web服务请求。在步骤(3),IdPIDS从实例 804、806、808和810选择IdP实例。在该示例中,IdPIDS 805已经选择伦敦实例。因此,在 步骤(4),IdPIDS 805返回对于在步骤(2)传递的请求的响应。典型地,该响应是URL,其 在步骤(5)由SP返回到客户端浏览器作为重新定向目标。在步骤6,浏览器重新定向到选 择的IdP实例,在此情况下的伦敦实例808,并且请求对于伦敦IdP实例的认证。在用户以 已知方式认证之后,在步骤(7),基于伦敦的IdP实例808发出重新定向到终端用户浏览器, 该重新定向使得客户端浏览器返回到服务提供者802。这是步骤(8)。服务提供者802具 有域选择的IdP实例的信任关系(如上参照图3描述的)。然而,SP可以有或者可以没有 域每个IdP实例的信任关系;在适当的情况下,并且如上注意的,这样的关系的存在(或者 其缺乏)可以是使用的选择标准中。用户的认证身份通过该联邦信任关系812从IdP实例 808传递到服务提供者802,其可以使用包括SAML、OpenID等的多种已知机制实施。这完成 该处理。
[0107] 因此,根据实施例,当终端用户(客户端)访问应用(服务提供者)时,服务提供者 对于IdPIDS进行请求,将其传递到客户端的IP地址或其他相关信息(例如,应用标识符、 指示之前IdP绑定的cookie等)。作为服务,IdPIDS通过一个或多个技术确定适当的IdP 实例,并且将响应返回到服务提供者。服务提供者然后将客户端重新定向到IdP,典型地通 过HTTP重新定向。取决于使用的特定F-SS0协议/绑定和本地配置的任何要求,该重新定 向可以适当地调用IdP发起的或SP发起的F-SS0端点。IdP以通常方式认证客户端,然后 将用户重新定向回服务提供者。用户的认证身份(如有选择的IdP实例生成)经由联邦信 任关系传递到服务提供者。以此方式,选择的F-SS0协议/绑定用于将适当的身份信息传 递到SP,并且最终用户重新定向到原始请求的服务。
[0108] 如所述的,IdPIDS可以实施多种方式来确定适当的实例。例如,基于客户端IP地 址,IdPIDS可以基于到IdP实例的接近(或者最佳)网络相近性进行选择。可以通过延迟、 往返时间(RTT)、自主系统(AS)跳跃的数目、分组丢失或其组合确定网络相近性。替代网 络相近性,决定可以基于地理相近性,在此情况下可以选择"最近的"数据中心。在该处理 期间,可以使用IP范围映射或IP到国家/地理映射。选择标准可以时网络和地理定位两 者的给定函数。或者,选择处理可以基于具体IdP实例可能如何"忙"(负载),或者在具体 请求时间IdP实例是否可用。为此目的,优选地每个IdP实例与IdPIDS服务通信,并且适 当的请求-响应协议用于将状态和负载数据从IdP实例传送到服务。概括来说,每个IdP 实例的状态典型地对于所有IdP实例是已知的(或者可能已知),这可以通过多种方式实 现,诸如使用直接警告或提供数据(潜在地包括关于特定IdP组件或从属实体的数据)到 IdPIDS实例指示IdP实例的"健康"或可用性的监视能力。负载数据可以包括但不限于CPU 负载、存储负载等。当考虑实例负载时,服务可以执行作为哪个实例在请求时最小负载的函 数的实例选择。在替代中,实例选择可以基于网络和/或地理定位以及负载的组合。因此, 例如,特定IdP实例可能比另一 IdP实例更近(网络方式),但是更重负载,在此情况下IdP 可能选择更远(网络方式)的更少负载的IdP实例。
[0109] 选择标准可以基于其他因素。因此,例如,一个或多个服务提供者实例(或者,更 一般地多个服务提供者实例的子集)可以具有不由所有实例共享的特定能力。在这样的情 况下,IdPIDS将请求定向到具有希望的能力(或者可能最近或最小负载的实例,如果存在 若干共享能力的实例)的实例之一。通常,选择可以基于与一个或多个服务提供者实例相 关联的一些其他性能。或者,选择可以利用与一个或多个服务提供者实例相关联的现有绑 定。该绑定可以以任何已知方式(诸如cookie)捕获。
[0110] 除了定位、负载、能力或可用性外,选择可以基于循环机制。
[0111] 服务提供者实例发现服务通过其执行实例选择的各种技术的上面的描述仅仅是 代表性的。一个或多个这些标准可以相互结合使用,服务可以在特定情况下使用这些技术 而不是别的(例如,在特定日子、在特定时间、在不同负载条件下等),服务可以默认、或者 在特定服务提供者(而不是其他)的情况下、对于特定类型的联邦终端用户等,使用一个或 其他技术。所有这些的变化视为在发现机制和在此实施的方法的范围内。
[0112] IdPIDS可以实施为云服务,诸如图4中代表的。
[0113] 为了扩展和/或性能和可用性,IdPIDS自身可以具有处于多个传递地点的多个、 群集的实例。"群集的"IdPIDS服务实施例对于多个联邦应用提供高可扩展和高可用身份提 供者"后端"发现服务。在该方法中,有应用请求驱动后端服务(与直接和用户交互的典型 的前端服务相反)。IdP实例组织为"群集",其中每个群集位于给定定位,并且群集中的每 个实例与该群集中的所有其他实例"共同定位"。每个"群集"自身运行其自己的IdPIDS服 务;因此,IdPIDS自身在每个群集定位处"复制"或"镜像"。通常,处于特定群集的IdPIDS 服务实例在自身共同定位的实例之间执行"实例"选择,或者IdPIDS可以将请求定向到位 于另一地点的另一 IdPIDS服务(例如,到另一群集)。因此,为了多个原因之一,用户可以 定向到处于不同传递地点的身份提供者;如果本地IdPIDS那时不可用或过度负载,为了其 他负载平衡的目的,或者如果本地IdPIDS没有提供有应用要求的具体能力。该群集方法也 是有利的,由于其实现本地IdP实例(或者这样的实例的群集)取下用于维护,同时对于正 使用后端服务的联邦应用保持完整的F-SS0能力。
[0114] 对于由IdPIDS返回的特定请求的响应可以包括联邦专用URL。
[0115] 特定IdP实例可以使用全局服务负载平衡(GSLB)机制虚拟化。
[0116] 发现服备代理一利用发布-订阅的IdP实例发现
[0117] 在以上作为背景的情况下,现在描述本公开的技术。
[0118] 在该方法中,"发现服务代理"集成到F-SS0基于云的环境,并且与外部身份提供者 (IdP)实例发现服务(诸如上面描述的IdPIDS实施例的任何)交互。通常地,代理将IdP 实例请求代理到发现服务,并且接收包括IdP实例分配和可能其他数据(诸如实例状态) 的响应。代理保持实例分配的高速缓存(有时称为本地高速缓存)。随着接收新的实例请 求,高速缓存的分配数据(如果当前,如将描述的)用于提供适当的响应替代将这些请求代 理到发现服务。因为IdPIDS典型地位于远离F-SS0环境,所以本地高速缓存的实例分配数 据的使用减少识别请求的IdP实例的所需的时间。根据本公开,代理通过订阅来自发现服 务的更新动态地保持和管理其高速缓存。更新识别在包括IdP服务的地理上分布的实例的 组(或者实例群集)中或相关联地出现IdP实例改变(诸如服务器为了维护而离线、添加 新的服务等)。优选地,更新经由发布-订阅模型从IdPIDS提供到代理。以此方式,代理 主动(并且相对于实例请求不同步地)接收改变通知。代理使用该通知更新其本地高速缓 存,使得实例分配是当前的,并且反映 IdP实例(或者实例群集)真实的当时存在的后端状 态。
[0119] 如所述的发现服务代理典型地以硬件和软件实施,诸如图2所示和上述。代理包 括(或者具有与其相关联的)高速缓存(或者,更具体地,数据存储),其中保持实例分配数 据。代理中的一个或多个控制例程用于提供高速缓存的各种功能,即,初始化高速缓存、用 初始实例分配数据布居高速缓存、接收实例分配请求和使用高速缓存的分配数据响应实例 分配请求、以及从远程发现服务接收改变通知(优选地,经由发布-订阅订阅模型)并且适 当地更新高速缓存。这些功能下面更详细描述。
[0120] 图9图示在基于云的环境的实施例中发现服务代理的实施方式,基于云的环境的 实施例实施F-SSO认证以及对云中支持的一个或多个商业应用的访问。通常,并且如将描 述的,发现服务代理用于提供到(典型地,远程的)发现服务的接口,发现服务用于确定要 用于服务特定IdP实例请求的适当IdP实例。
[0121] 如上一般地描述的,云环境900包括一组高等级组件,其典型地包括前端身份管 理器、商业支持服务(BSS)功能组件、运行支持服务(0SS)功能组件(未示出)以及计算云 组件。如图9所示,其已经为了说明的目的简化,经由可从IBM商业地获得的用于电子商务 的Tiν〇Π l;【方问管理器(TAMeb)产品实施基础访问管理器902。由协议服务模块904提供 F-SS0支持,其可以由可从IBM获得的Tivoli联邦身份管理器(TFM)实施。协议服务模块 904包括相关联的安全性令牌服务(STS) 906,其实施Web服务信任(WS-Trust)的消息传送 机制以定义对于安全性令牌的发出、交换和验证。WS-Trust协议允许Web服务客户端请求 特定安全性令牌交换另一个的一些受信权限。高性能、多线程Web服务器908(附图中称为 WebSEAL)典型地ΤΑΜ组件管理对于身份管理器的访问。商业支持服务(BSS)组件910提 供对于环境的管理功能,如已经描述的。在该示例中,一个或多个商业应用912在多个虚拟 机实例(未示出)中运行。在LDAP中支持顾客的外部数据。顾客的环境916包括接触点 918(诸如WebSEAL)和LDAP目录918。经由Web浏览器920或经由"富有的(rich) "客户 端(即,支持直接访问客户端的机器)提供客户端访问。以已知方式提供其他公共管理平 台组件、数据库和服务。当然,云计算基础设施的特定细节不旨在为限制性的。
[0122] 在图9中,发现服务代理922位于云计算环境中,并且它包括Web服务客户端 (WS-C)924。在替代中,WS-C 924可以嵌入WebSEAL代理908,或在TFIM SS0协议服务模块 904中,或在一些其他组件中。WS-C 924调用远程身份提供者实例发现服务(IdPIDS) 926 以检索要使用的适当的身份提供者实例的标识(URL)。如上已经描述的,该决定(通过 IdPIDS)可以基于多个因素,诸如发现服务代理的当前定位、意图的IdP、请求F-SS0的应用 以及其他信息,包括但不限于IdPIDS已知的"后端"信息,诸如负载、网络状态等。
[0123] 为了支持性能环境,包括可能操作的IdPIDS服务自身变为不可用的一个环境,发 现服务代理922保持实例分配的高速缓存928。如上注意的,代理还运行更新服务,以便动 态地保持和管理其本地高速缓存。现在描述该操作。
[0124] 图10图示本技术的优选操作。在该示例中,发现服务代理1000使用其相关联的 WS-C 1002与远程IdPIDS 1004通信。该交互可以在任何合适的协议(例如,REST、SOAP、 TLS (传输层安全性)上的HTTP等、或其一些组合)上发生。发现服务代理1000还订阅由发 现服务发布的改变通知,如将描述的。在该操作场景中,随着接收对于IdP实例的请求,发 现服务代理1000执行(对于发现服务1004) -系列初始布居请求。这些请求与特定主机名 称相关联,诸如该示例中的》¥¥.〇1〇11(1-;[13111.(301]1。优选地,通过目标111^("¥¥¥.(31〇11(1-;[13111· com")、本地IP地址(例如,前端Web服务器1006的9. X. X. X)、请求F-SS0的应用(Web服 务器1006对其中介F-SS0的URL)等,区分IdP实例请求。因此,IdP请求数据可以包括这 些信息之一或组合。参照图10,步骤(1)图示WS-C发出相对于主机名称的对于IdP实例的 请求,并且步骤(2)图示发现服务提供它(服务)已经确定应该用于服务特定请求的IdP 实例。随着由发现服务1004服务这些初始布居请求,发现服务代理接收IdP分配。分配因 此将"请求数据"与"IdP实例"相关联。在步骤(3),代理用实例分配数据布居它的本地高 速缓存,并且该数据可以包括诸如时间戳等的其他信息。数据存储、查询和从高速缓存的取 回可以基于IdP请求中的任何信息。随着新的请求类别到达,代理用意图的目的地(URL/IP 地址)布居它的本地高速缓存。尽管图10中未图示,随着在代理处接收重复请求,发现服 务代理执行对于高速缓存的查询,并且假如现有信息仍是当前的,则重新使用它。因此,特 定的分配数据可以在高速缓存中具有存活时间(TTL);因此,当在代理处接收新的(重复) 请求时,代理检查以确定它是否具有对于主机名称(或其他请求数据)的当前分配数据;如 果是,则高速缓存重新使用存储的分配数据,而不是将请求代理到远程发现服务。
[0125] 如上注意的,代理1000还订阅由实例发现服务发布以提供整体服务的性能上的 额外提高、可靠性和可用性的改变通信。为此,发现服务提供发现服务代理订阅的改变通知 服务。订阅-通知机制可以以一对一或一对多的方式操作。因此,发现服务通知服务可以发 布可用于多个代理的更新。取决于实施方式,特定的订阅-通知机制可以是任何传统类型。 在示例性实施例中,可以利用由WS-通知指定的订阅-通知机制。WS-通知使用基于主题 的发布/订阅消息发送方式提供用于Web服务通信的开放标准。尽管具体WS-通知将依赖 于idPlDS实施方式细节,但是在一个实例实施例中,通知服务可以使用IBM WebSphere? 应用服务器V7. 0实施,其对于基于XML的Web服务(JAX-WS)实施基于Java API的WS-通 知,已知为版本7. 0 WS-通知。
[0126] 在替代中,可以使用在OGSI (开放网格服务基础设施)中指定的订阅-通知机制。 为此目的可以使用的其他发布-订阅(pub-sub)机制包括但不限于可从Microsoft获得 的 WSP。
[0127] 概括来说,并且如在图1所见,通知服务包括在IdPIDS中运行的通知生产者组件, 以及在代理(或与其相关联的WS-C)中运行的通知消费者组件。以软件实施每个这样的组 件,软件存储在存储器中作为一组计算机程序指令,并且由作为专业或专用机器的一个或 多个处理器运行。使用适当的基于web的或可编程的接口,创建一个或多个"订阅"。订阅 是代表通知消费者组件、通知生产者组件、主题和各种其他过滤表示、策略和环境信息之间 的关系的WS-资源。订阅者是充当发送订阅请求消息到通知生产者组件的服务请求者的实 体(在该示例中,代理或WS-C)。订阅者可以不同于通知消费者组件。为了生产具有额外规 模的通知服务,可以以与WS-通知规范一致的已知方式,实施订阅管理器和/或订阅中间人 组件。
[0128] 使用这种类型的发布-订阅模型,本公开的发现服务代理订阅来自发现服务的更 新。这允许服务代理接收关于对于包括IdP示例发现服务的资源(例如,网络、服务群集、月艮 务器、服务等)的改变的通知。通知可以完全变化,并且它们可以以任何格式提供。因此, 可以实施WS-通知规范的含义内的任何主题。通知为服务代理提供一般地关于发现服务并 且关于发现服务中的特定资源的最新和时间信息。因此,在没有限制的情况下,通知可以有 任何属性和类型。这么可以是粗糙粒度(例如,"发现服务是活动的")或精细粒度(例如, 在定位A的发现服务群集实例当前由于维护而暂停服务)等,并且它们可以周期性地(每 小时、每分钟或每秒)或者非同步地(随着特定时间出现)或者以其一些组合来提供。通 知可以是资源特定的,诸如"[指名的资源]当前处于75%负载"、"[指名的资源]响应时 间>2ms"等。通知还可以提供可以由代理用于便利发现的信息,示例是"属性服务不可用, 所有请求属性的请求应该路由到X"等。在后一示例中,然后可以基于返回的标准选择IdP 实例。当然,所有这些示例仅仅是为了说明的目的,并且不应视为限制。
[0129] 典型地,订阅与特定主机名称或发现服务中的其他可识别资源相关联。通知服务 优选地可由IdPIDS提供者或与服务代理自身相关联配置。因此,在一种实施方式中,服务 代理输出包括一个或多个可以在其配置通知的显示屏幕的Web接口。
[0130] 返回参照图10,步骤(4)图示发现服务代理订阅关于IdP实例"www. cloud-ibm. com"的更新,步骤(5)图示发现服务发布对于该实例的更新。随着由代理接收更新,代理确 定(基于策略或其他商业逻辑)是否以及如何更新它的实例分配数据的高速缓存。特定策 略或商业逻辑可以完全变化,尽管接收更新典型地实施一个或多个高速缓存无效规则。因 此,例如,如果发现服务中的服务器1. 2. 3. 4已经用于服务之前在时间t的实例请求,那么 高速缓存可以存储诸如WWW. cloud-ibm. com-服务器1.2. 3.4 {时间t}的条目。一旦接 收指示服务器1. 2. 3. 4当机用于维护的更新时,高速缓存那么可以使该高速缓存条目无效 (例如,通过清除它),或者另外改变到一些其他分配的关联。以此方式,当由代理接收对于 主机名称的新的(重复)请求时,更新(或者"当前")分配可以提供给请求的客户端。通 过基于发现服务更新来更新高速缓存,代理动态地保持和管理它的关于后端IdP实例的信 息。这使得代理能够可靠地并且以可扩展的方式从它的本地高速缓存服务实例请求,从而 摆脱必须由(典型地远程)发现服务来服务的请求。
[0131] 概括来说,通知服务包括在IdPIDS中运行的通知生产者组件,以及在代理(或者 与其相关联的WS-C)中运行的通知消费者组件。每个这样的组件以软件实施,软件存储在 计算机存储器中作为一组计算机程序指令,并且由作为专业或专用机器的一个或多个处理 器运行。使用适当的基于web的或可编程的接口,创建一个或多个"订阅"。订阅是代表通 知消费者组件、通知生产者组件、主题和各种其他过滤表示、策略和环境信息之间的关系的 WS-资源。订阅者是充当发送订阅请求消息到通知生产者组件的服务请求者的实体(在该 示例中,代理或WS-C)。为了生产具有额外规模的通知服务,可以以与WS-通知规范一致的 已知方式,实施订阅管理器和/或订阅中间人组件。
[0132] 上述技术提供了许多优点,如已经描述的。代理摆脱了实例发现。其使得F-SS0操 作能够在云环境中安全地和有效地实施。此外,发布-订阅模式便于代理和发现服务之间 的改变通知服务,其通过确保其分配数据的高速缓存是当前的并且反映可用于发现服务的 资源的实际状态,提升了代理的操作。该方法确保发现服务代理知晓关于后端资源的可用 性问题(例如,IdP实例离线或者过载,或者以其他方式不可用);因此,代理可以使用它的 高速缓存中的分配数据来响应请求,或者如果需要前进到服务(例如,因为高速缓存丢失 或其他),则请求将继续。通过以此方式动态地保持和管理它的本地高速缓存,最小化识别 请求的IdP实例的时间。此外,通过在高速缓存响应于实例请求,最小化对于服务的负载。 当要求对于服务的请求时,通知服务确保这样的请求定向到活动的资源。结果是更高可用、 高可靠和高可扩展发现服务。
[0133] 上述功能可以实施为独立的方法,例如由处理器运行的基于软件的功能,或者可 以用作管理服务(包括作为经由S0AP/XML接口的Web服务)。在此描述的特定硬件和软件 实施方式细节仅仅是为了说明的目的,而不意在限制描述的主题的范围。
[0134] 更一般地,在公开的发明的环境中的计算设备每个是包括硬件和软件的数据处理 系统(诸如图2所示),并且这些实体通过网络(诸如因特网、内联网、外联网、专用网络、 或者任何其他通信介质或链路)相互通信。数据处理系统上的应用提供对于Web和其他 已知服务和协议的原生支持,包括但不限于对于HTTP、FTP、SMTP、SOAP、XML、WSDL、SAML、 Liberty、Shibboleth、OpenID、WS-Federation、Cardspace、WS-Trust、UDDI 和 WSFL 等的 支持。关于SOAP、WSDL、UDDI和WSFL的信息可从负责开发和维护这些标准的万维网联盟 (W3C)获得;关于HTTP和XML的进一步信息可从互联网工程任务组(IETF)获得。假设对 于这些标准熟悉。
[0135] 除了基于云的基础架构,在此描述的方案可以以或结合各种服务器侧架构实施。 这些包括但不限于简单η层架构、Web门户、联邦系统等。
[0136] 如上面的示例说明的,一个或多个身份提供者示例发现功能可以在云内或外主 办。
[0137] 更一般地,在此描述的主题可以采取完全硬件实施例、完全软件实施例或包含硬 件和软件元素两者的实施例的形式。在优选实施例中,以软件实施分层的注销功能,软件包 括但不限于固件、驻留软件、微代码等。数据可以配置到数据结构(例如,阵列、链接的列表 等)并且存储在数据存储(诸如计算机存储器)中。此外,如上注意的,在此描述的身份提 供者实例发现功能采取计算机程序产品的形式,计算机程序产品可从提供用于由或结合计 算机或任何指令运行系统使用的程序代码的计算机可用或计算机可读介质获得。为了描述 的目的,计算机可用或计算机可读介质可以是包含或存储用于由或结合指令运行系统、装 置或设备使用的任何装置。介质可以是电、磁、光、电磁、红外或者半导体系统(或者装置或 设备)。计算机可读介质的示例包括半导体或固态存储器、磁带、可移除计算机盘、随机存取 存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括致密盘-只读存储 器(CD-ROM)、致密盘-读/写(CD-R/W)和DVD。计算机可读介质是有形物品。
[0138] 计算机程序产品可以是具有实施一个或多个描述的功能的程序指令(或者程序 代码)的产品。这些指令或代码可以在通过网络从远程数据处理系统下载之后存储在数据 处理系统中的计算机可读存储介质中。或者,那些指令或代码可以存储在服务器数据处理 系统中的计算机可读存储介质中,并且适于通过网络下载到远程数据处理系统用于在远程 系统中的计算机可读存储介质中使用。
[0139] 在代表性实施例中,在专用计算机中,优选地在由一个或多个处理器运行的软件 中实施身份提供者实例发现组件。相关联的配置(安全级别、状态、定时器)存储在相关联 的数据存储中。软件还保持在一个或多个数据存储或与一个或多个处理器相关联的存储器 中,并且软件可以实施为一个或多个计算机程序。
[0140] 身份提供者实例发现功能可以实施为现有访问管理器或策略管理解决方案的附 属或扩展。
[0141] 尽管上面描述了由本发明的某些实施例执行的特定顺序的操作,但是应该理解这 样的顺序是示例性的,由于替代实施例可以以不同顺序执行操作,组合某些操作,叠加某些 操作等。说明书中对于给定实施例的参照指示描述的实施例可以包括特定特征、结构或特 性,但是每个实施例可以不必包括特定特征、结构或特性。
[0142] 最后,尽管已经分别描述了系统的给定组件,但是本领域的普通技术人员将理解 一些功能可以在给定指令、程序序列、代码部分等中组合或共享。
[0143] 如此在使用的,"客户端侧"应用广泛地理解为指应用、与应用相关联的页面或者 由对于应用的客户端侧请求调用的一些其他资源或功能。如在此使用的"浏览器"不旨在 指任何具体浏览器(例如,Internet Explorer、Safari、FireFox等),而是应该广泛地理解 为指可以访问和显示因特网可获得的资源的任何客户端侧渲染引擎。此外,尽管典型地客 户端侧交互使用HTTP出现,但是这也不是限制。客户端侧交互可以格式化为符合简单对象 访问协议(SOAP),并且可以使用在HTTP上(公共因特网上)的行进、FTP、或者任何其他可 靠的传输机制(诸如IBMK MQSeriesN支术和C0RBA,用于在企业内联网上的传输)。通 过提供到另一应用的钩连(hook)、通过便于作为插件的机制的使用,通过链接到该机制等, 在此描述的任何应用或功能可以实施为原生代码。
[0144] 如在此使用的,"身份提供者实例"是也可用在一个或多个其他这样的实例中的身 份提供者的例示或实施方式。因此,通常,"实例"典型地是完全特征化的身份提供者(IdP), 其功能在至少一个其他这样的实例中镜像或复制。
[0145] 当然,在此描述的任何商业产品的标识不意在取为对于公开的主题的限制。
[0146] 已经描述了本发明,现在要求保护如下。
【权利要求】
1. 一种用于使用身份提供者实例发现服务提供身份提供者服务的方法,包括: 在由发现服务处理对于身份提供者实例的请求时,接收和存储识别身份提供者实例的 数据; 接收关于与所述发现服务相关联的资源的更新,经由在硬件元件上支持的发布-订阅 通知服务接收所述更新; 基于所述更新,修改所述数据;以及 在接收对于身份提供者实例的新请求时,响应于所述新请求使用修改的数据以识别用 于使用的身份提供者实例。
2. 如权利要求1所述的方法,其中所述数据是将请求与由所述发现服务选择以服务所 述请求的身份提供者实例相关联的分配数据。
3. 如权利要求1所述的方法,其中周期性地或非同步地接收所述更新。
4. 如权利要求1所述的方法,其中所述通知服务是由所述身份提供者实例发现服务提 供的Web服务。
5. 如权利要求1所述的方法,还包括订阅所述更新。
6. 如权利要求1所述的方法,其中所述更新包括以下之一:与一个或多个身份提供者 实例相关联的负载、一个或多个身份提供者实例的可用性、与一个或多个身份提供者实例 相关联的性能度量、以及与一个或多个身份提供者实例相关联的现有绑定。
7. 如权利要求1所述的方法,其中根据策略或商业逻辑修改所述数据。
8. -种用于使用身份提供者实例发现服务提供身份提供者服务的装置,包括: 处理器; 保持计算机程序指令的计算机存储器,当计算机程序指令由处理器运行时执行一种方 法,包括: 在由发现服务处理对于身份提供者实例的请求时,接收和存储识别身份提供者实例的 数据; 接收关于与所述发现服务相关联的资源的更新,经由在硬件元件上支持的发布-订阅 通知服务接收所述更新; 基于所述更新,修改所述数据;以及 在接收对于身份提供者实例的新请求时,响应于所述新请求使用修改的数据以识别用 于使用的身份提供者实例。
9. 如权利要求8所述的装置,其中所述数据是将请求与由所述发现服务选择以服务所 述请求的身份提供者实例相关联的分配数据。
10. 如权利要求8所述的装置,其中周期性地或非同步地接收所述更新。
11. 如权利要求8所述的装置,其中所述通知服务是由所述身份提供者实例发现服务 提供的Web服务。
12. 如权利要求8所述的装置,其中所述方法还包括订阅所述更新。
13. 如权利要求8所述的装置,其中所述更新包括以下之一:与一个或多个身份提供者 实例相关联的负载、一个或多个身份提供者实例的可用性、与一个或多个身份提供者实例 相关联的性能度量、以及与一个或多个身份提供者实例相关联的现有绑定。
14. 如权利要求1所述的装置,其中根据策略或商业逻辑修改所述数据。
15. -种用于在数据处理系统中使用的计算机可读介质中的计算机程序产品,用于使 用身份提供者实例发现服务提供身份提供者服务,计算机程序产品保持计算机程序指令, 当由数据处理系统运行时,执行一种方法,包括: 在由发现服务处理对于身份提供者实例的请求时,接收和存储识别身份提供者实例的 数据; 接收关于与所述发现服务相关联的资源的更新,经由在硬件元件上支持的发布-订阅 通知服务接收所述更新; 基于所述更新,修改所述数据;以及 在接收对于身份提供者实例的新请求时,响应于所述新请求使用修改的数据以识别用 于使用的身份提供者实例。
16. 如权利要求15所述的计算机程序产品,其中所述数据是将请求与由所述发现服务 选择以服务所述请求的身份提供者实例相关联的分配数据。
17. 如权利要求15所述的计算机程序产品,其中周期性地或非同步地接收所述更新。
18. 如权利要求15所述的计算机程序产品,其中所述通知服务是由所述身份提供者实 例发现服务提供的Web服务。
19. 如权利要求15所述的计算机程序产品,其中所述方法还包括订阅所述更新。
20. 如权利要求15所述的计算机程序产品,其中所述更新包括以下之一:与一个或多 个身份提供者实例相关联的负载、一个或多个身份提供者实例的可用性、与一个或多个身 份提供者实例相关联的性能度量、以及与一个或多个身份提供者实例相关联的现有绑定。
21. 如权利要求15所述的计算机程序产品,其中根据策略或商业逻辑修改所述数据。
22. -种用于识别身份提供者实例的系统,包括: 在硬件元件上支持并且具有与其相关联的高速缓存的代理,所述代理发出身份提供者 实例发现请求; 身份提供者实例发现服务,其接收由所述代理发出的每个身份提供者实例发现请求, 进行选择,并且将识别所述选择的数据返回所述代理,用于在所述高速缓存中存储;以及 通知服务,所述代理通过所述通知服务订阅以从所述身份提供者实例发现服务接收更 新,至少一个更新关于与发现服务相关联的资源,并且由所述代理用于更新所述高速缓存 中存储的所述数据。
23. 如权利要求22所述的系统,其中所述通知服务根据发布-订阅模型操作。
24. 如权利要求22所述的系统,其中周期性地或非同步地提供所述更新。
25. 如权利要求22所述的系统,其中所述高速缓存中存储的所述数据根据策略或商业 逻辑更新。
【文档编号】G06F17/00GK104145261SQ201380010721
【公开日】2014年11月12日 申请日期:2013年1月29日 优先权日:2012年2月23日
【发明者】H.M.欣顿, R.J.麦卡迪, C.卢尼 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1