首页> 中国专利> 使用发布订阅模型的身份提供者发现服务

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

摘要

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

著录项

  • 公开/公告号CN104145261A

    专利类型发明专利

  • 公开/公告日2014-11-12

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201380010721.4

  • 发明设计人 H.M.欣顿;R.J.麦卡迪;C.卢尼;

    申请日2013-01-29

  • 分类号G06F17/00(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人赵碧洋

  • 地址 美国纽约阿芒克

  • 入库时间 2023-12-17 02:24:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-04-26

    授权

    授权

  • 2014-12-10

    实质审查的生效 IPC(主分类):G06F17/00 申请日:20130129

    实质审查的生效

  • 2014-11-12

    公开

    公开

说明书

技术领域

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

背景技术

联邦环境是本领域公知的。联邦是一组独立实体(诸如企业、组织、机 构等),其协作以为用户提供单点登陆(single-sign-on)、易用体验。联邦环 境不同于典型的单点登陆环境在于两个实体不需要具有直接的、预先建立的、 定义对于用户如何传送和传送什么信息的关系。在联邦环境内,实体提供处 理认证用户,接受由其他实体呈现的认证断言(例如,认证令牌),以及提供 将用户的担保身份转换为本地实体内理解的身份的一些形式的转换的服务。 联邦减轻了服务提供者的管理负担。服务提供者(SP)可以依赖于其相对于 联邦整体的信任关系;服务提供者不需要管理认证信息,诸如用户密码信息, 因为它可以依赖于由用户的认证家域(authentication home domain)完成的认 证,该认证家域是用户在其认证的域。

特别地,联邦实体可以担当提供关于联邦用户的身份信息和属性信息的 用户的家域。提供身份信息、身份或认证断言、或身份服务的联邦计算环境 中的实体称为身份提供者(IdP)。同一联邦内的其他实体或联邦伙伴可以依 赖于用于用户的认证证书的主要管理(例如,接受由用户的身份提供者提供 的单点登陆令牌)的身份提供者。身份提供者是特定类型的服务,其提供作 为服务的身份信息给联邦计算环境中的其他实体。

联邦单点登陆(F-SSO)允许用户裕服务提供者(SP)直接交互,并且 为了在认证的环境下接收身份信息的目的,利用SP和IdP之间的安全信任关 系。

用于身份提供者发现的典型模型是与终端用户直接交互的服务。该方法 在多种场景中是有用的,例如,允许终端用户从可用身份提供者的列表选择, 或者便于属性同意。已知的发现服务实施方式典型地以独立方式操作,或者 通过直接嵌入服务提供者。在高等级,一个典型的发现模型工作如下。终端 用户访问应用(SP),然后手动地选择身份提供者。服务提供者然后将终端用 户重新定向到选择的身份提供者。终端用户对身份提供者认证,身份提供者 (在认证之后)然后将终端用户重新定向(典型地通过基于HTTP重定向) 回应用。IdP还为SP提供身份断言,诸如安全断言标记语言(SAML)断言 或令牌,其提供联邦用户已经认证的证明。然后在联邦用户和SP之间建立终 端用户会话以完成该处理。

另一典型的发现方法是SP将用户重新定向到另一服务,其然后与用户 交互以选择IdP。该服务然后将用户重新定向到IdP用于认证,然后用户重新 定向回SP。

在一些场景中,单个身份提供者可以在地理上分布的实例上实施。在此 情况下,试图访问SP的用户需要定向到最近或者最恰当的IdP实例。该操作 可以由身份提供者实例发现服务提供,如在共同拥有的美国专利号12/959,413 中描述的。IdP实例发现服务提供一组身份提供者实例的特定身份提供者实例 的自动发现以及绑定。在该方法中,特定身份提供者的选择可以基于一个或 多个标准,诸如用户相近性(网络或地理)、IdP实例负载或可用性、IdP实 例能力、与特定实例相关联的性能度量、现有IdP绑定或一些组合。

尽管IdP实例发现服务允许服务提供者动态地检索适当的IdP实例的位 置,用于F-SSO协议的完成,设计这样的技术以在F-SSO环境外部操作,并 且它们依赖于“基于拉动的(pull-based)”方法以根据需要获得IdP实例信息。

发明内容

本发明描述了一种增强的身份提供者实例发现服务(IdPIDS)。在该方法 中,发现服务代理优选地集成在F-SSO环境(其可以是基于云的)内,并且 用于与外部IdP实例发现服务交互。发现服务代理将IdP实例请求代理到发 现服务,并且接收对于这种请求的响应。响应典型地包括已经由发现服务分 配来处理该请求的实例的身份。代理保持其中存储实例分配的高速缓存。随 着在代理接收新的实例请求,代理可以使用高速缓存的分配数据以提供适当 的响应,替代将这些请求代理到发现服务,从而减少识别请求的IdP实例所 需的时间。代理通过订阅来自发现服务的更新动态地保持和管理其本地高速 缓存,发现服务更新在包括IdP服务的一组地理上分布的实例内出现的身份 IdP实例改变(诸如服务器为了维护而离线,添加新的服务等)。优选地,使 用使得代理主动接收关于后端IdP服务中改变的通知的发布-订阅(pub-sub) 模型,将更新提供给代理。

前述已经概述本发明的一些更相关的特征。这些特征应该理解为仅仅是 说明性的。通过以不同的方式应用公开的发明或者通过修改本发明可以获得 一些其他有益结果,如将描述的。

从第一方面看,本发明提供了用于使用身份提供者实例发现服务提供身 份提供者服务的方法,包括:在由发现服务处理对于身份提供者实例的请求 时,接收和存储识别身份提供者实例的数据;接收关于与所述发现服务相关 联的资源的更新,经由在硬件元件上支持的发布-订阅通知服务接收所述更 新;基于所述更新,修改所述数据;以及在接收对于身份提供者实例的新请 求时,响应于所述新请求使用修改的数据以识别用于使用的身份提供者实例。

优选地,本发明提供了一种方法,其中所述数据是将请求与由所述发现 服务选择以服务所述请求的身份提供者实例相关联的分配数据。

优选地,本发明提供了一种方法,其中周期性地或非同步地接收所述更 新。

优选地,本发明提供了一种方法,其中所述通知服务是由所述身份提供 者实例发现服务提供的Web服务。

优选地,本发明提供了一种方法,还包括订阅所述更新。

优选地,本发明提供了一种方法,其中所述更新包括以下之一:与一个 或多个身份提供者实例相关联的负载、一个或多个身份提供者实例的可用性、 与一个或多个身份提供者实例相关联的性能度量、以及与一个或多个身份提 供者实例相关联的现有绑定。

优选地,本发明提供了一种方法,其中根据策略或商业逻辑修改所述数 据。

从另一方面看,本发明提供了一种用于使用身份提供者实例发现服务提 供身份提供者服务的装置,包括:处理器;保持计算机程序指令的计算机存 储器,当计算机程序指令由处理器运行时执行一种方法,包括:在由发现服 务处理对于身份提供者实例的请求时,接收和存储识别身份提供者实例的数 据;接收关于与所述发现服务相关联的资源的更新,经由在硬件元件上支持 的发布-订阅通知服务接收所述更新;基于所述更新,修改所述数据;以及在 接收对于身份提供者实例的新请求时,响应于所述新请求使用修改的数据以 识别用于使用的身份提供者实例。

优选地,本发明提供了一种装置,其中所述数据是将请求与由所述发现 服务选择以服务所述请求的身份提供者实例相关联的分配数据。

优选地,本发明提供了一种装置,其中周期性地或非同步地接收所述更 新。

优选地,本发明提供了一种装置,其中所述通知服务是由所述身份提供 者实例发现服务提供的Web服务。

优选地,本发明提供了一种装置,其中所述方法还包括订阅所述更新。

优选地,本发明提供了一种装置,其中所述更新包括以下之一:与一个 或多个身份提供者实例相关联的负载、一个或多个身份提供者实例的可用性、 与一个或多个身份提供者实例相关联的性能度量、以及与一个或多个身份提 供者实例相关联的现有绑定。

优选地,本发明提供了一种装置,其中根据策略或商业逻辑修改所述数 据。

从另一方面看,本发明提供了一种用于在数据处理系统中使用的计算机 可读介质中的计算机程序产品,用于使用身份提供者实例发现服务提供身份 提供者服务,计算机程序产品保持计算机程序指令,当由数据处理系统运行 时,执行一种方法,包括:在由发现服务处理对于身份提供者实例的请求时, 接收和存储识别身份提供者实例的数据;接收关于与所述发现服务相关联的 资源的更新,经由在硬件元件上支持的发布-订阅通知服务接收所述更新;基 于所述更新,修改所述数据;以及在接收对于身份提供者实例的新请求时, 响应于所述新请求使用修改的数据以识别用于使用的身份提供者实例。

优选地,本发明提供了一种计算机程序产品,其中所述数据是将请求与 由所述发现服务选择以服务所述请求的身份提供者实例相关联的分配数据。

优选地,本发明提供了一种计算机程序产品,其中周期性地或非同步地 接收所述更新。

优选地,本发明提供了一种计算机程序产品,其中所述通知服务是由所 述身份提供者实例发现服务提供的Web服务。

优选地,本发明提供了一种计算机程序产品,其中所述方法还包括订阅 所述更新。

优选地,本发明提供了一种计算机程序产品,其中所述更新包括以下之 一:与一个或多个身份提供者实例相关联的负载、一个或多个身份提供者实 例的可用性、与一个或多个身份提供者实例相关联的性能度量、以及与一个 或多个身份提供者实例相关联的现有绑定。

优选地,本发明提供了一种计算机程序产品,其中根据策略或商业逻辑 修改所述数据。

从另一方面看,本发明提供了一种用于识别身份提供者实例的系统,包 括:在硬件元件上支持并且具有与其相关联的高速缓存的代理,所述代理发 出身份提供者实例发现请求;身份提供者实例发现服务,其接收由所述代理 发出的每个身份提供者实例发现请求,进行选择,并且将识别所述选择的数 据返回所述代理,用于在所述高速缓存中存储;以及通知服务,所述代理通 过所述通知服务订阅以从所述身份提供者实例发现服务接收更新,至少一个 更新关于与发现服务相关联的资源,并且由所述代理用于更新所述高速缓存 中存储的所述数据。

优选地,本发明提供了一种系统,其中所述通知服务根据发布-订阅模型 操作。

优选地,本发明提供了一种系统,其中周期性地或非同步地提供所述更 新。

优选地,本发明提供了一种系统,其中所述高速缓存中存储的所述数据 根据策略或商业逻辑更新。

附图说明

参照附图,现在将仅通过示例的方式描述本发明的优选实施例,附图中:

图1描绘其中可以实施说明性实施例的示例性方面的分布式数据处理环 境的示例性框图;

图2是其中可以实施说明性实施例的示例性方面的数据处理系统的示例 性框图;

图3图示其图示给定域的数据处理系统与可以用于支持描述的主题的实 施例的联邦架构组件的集成的框图;

图4描绘其中可以根据本发明的实施例实施身份提供者发现处理的云计 算环境的抽象模型层;

图5图示用于实现身份提供者的发现的一般技术;

图6图示用于将终端用户绑定或路由到特定IdP实例的已知负载平衡的 基于DNS的机制;

图7图示已知的企业内IdP实例发现服务(IdPIDS);

图8图示图7的实施例中的SP、IdPIDS和IdP之间的交互;

图9图示F-SSO云计算环境中发现服务代理的实施方式;

图10图示根据本公开的教导的由发现服务代理和IdPIDS实施的发布- 订阅机制;以及

图11图示实施为WS-通知服务的代表性发布-订阅机制。

具体实施方式

现在参照附图并且特别参照图1-2,提供了其中可以实施本公开的实施 例的数据处理环境的示例性图示。应该理解,图1-2仅仅是示例性的,并且 不旨在断言或暗示对于其中可以实施公开的主题的各方面或实施例的环境的 任何限制。可以进行对于描述的环境的许多修改而不背离本发明的精神和范 围。

客户端-服务器模型

现在参照附图,图1描绘其中可以实施说明性实施例的各方面的示例性 分布式数据处理系统的图形表示。分布式数据处理系统100可以包括其中可 以实施说明性实施例的各方面的计算机的网络。分布式数据处理系统100包 含至少一个网络102,其是用于提供各种设备与分布式数据处理系统100中 连接在一起的计算机之间的通信链路的介质。网络102可以包括诸如有线、 无线通信链路、或者光纤的连接。

在描绘的示例中,服务器104和服务器106与存储单元108一起连接到 网络102。此外,客户端110、112和114也连接到网络102。这些客户端110、 112和114可以例如是个人计算机、网络计算机等。在描绘的示例中,服务器 104提供诸如引导文件、操作系统映像和应用的数据到客户端110、112和114。 客户端110、112和114是到描绘的示例中的服务器104的客户端。分布式数 据处理系统100可以包括未示出的额外的服务器、客户端和其他设备。

在描绘的示例中,分布式数据处理系统100是具有代表使用传输控制协 议/因特网协议(TCP/IP)套件的协议相互通信的网络和网关的全世界集合的 网络102的因特网。在因特网的心脏是由路由数据和消息的成千上万的商业、 政府、教育和其他计算机系统构成的主要节点或主机计算机之间的高速数据 通信线路的主干网。当然,分布式数据处理系统100还可以实施以包括多个 不同类型的网络,诸如例如内联网、局域网(LAN)、广域网(WAN)等。 如上所述,图1旨在为示例,不是作为对于公开的主题的不同实施例的架构 限制,并且因此,图1示出的特定元件不应视为对于其中可以实施本发明的 说明性实施例的环境的限制。

现在参照图2,示出其中可以实施说明性实施例的数据处理系统的框图。 数据处理系统200是诸如图1中的服务器104或客户端110的计算机的示例, 其中可以为说明性实施例定位实施处理的计算机可用程序代码或指令。在该 说明性示例中,数据处理系统200包括通信组织202,其提供处理器单元204、 存储器206、永久存储208、通信单元210、输入/输出(I/O)单元212和显 示器214之间的连接。

处理器单元204用于执行可以加载到存储器206的软件的指令。取决于 具体实施方式,处理器单元204可以是一组一个或多个处理器,或者可以是 多处理器核心。此外,处理器单元204可以使用一个或多个异构处理器系统 实施,其中主处理器与次级处理器存在于单个芯片上。作为另一说明性示例, 处理器单元204可以是包含多个相同类型的处理器的对称多处理器系统。

存储器206和永久存储208是存储设备的示例。存储设备是能够临时和/ 或永久存储信息的任何块硬件。在这些示例中,存储器206例如可以是随机 存取存储器或任何其他合适的易失性或非易失性存储设备。取决于具体实施 方式,永久存储208可以采取各种形式。例如,永久存储208可以包含一个 或多个组件或设备。例如,永久存储208可以是硬驱动器、闪速存储器、可 重写光盘、可重写磁带或上述一些组合。由永久存储208使用的介质还可以 是可移除的。例如,可移除硬驱动器可以用于永久存储208。

在这些示例中,通信单元210提供与其他数据处理系统或设备的通信。 在这些示例中,通信单元210是网络接口卡。通信单元210可以通过使用物 理和无线通信链路的任一或两者提供通信。

输入/输出单元212允许与可以连接到数据处理系统200的其他设备的数 据的输入和输出。例如,输入/输出单元212可以通过键盘和鼠标提供用于用 户输入的连接。此外,输入/输出单元212可以发送输出到打印机。显示器214 提供显示信息给用户的机制。

用于操作系统和应用或程序的指令位于永久存储208上。这些指令可以 加载到存储器206中,用于由处理器单元204执行。不同实施例的处理可以 通过使用可以位于存储器(诸如存储器206)中的计算机实施的指令的处理 器单元204执行。这些指令称为可以由处理器单元204中的处理器读取和执 行的程序代码、计算机可用程序代码、或者计算机可读程序代码。不同实施 例中的程序代码可以体现在不同物理或有形计算机可读介质上,诸如存储器 206或永久存储208。

程序代码216以功能形式位于可以选择性移除的计算机可读介质218中, 并且可以加载到或传送到数据处理系统200用于由处理器单元204执行。在 这些示例中,程序代码216和计算机可读介质218形成计算机程序产品220。 在一个示例中,计算机可读介质218可以以有形形式,诸如例如可以插入或 放置到作为永久存储208的一部分的驱动器或其他设备用于传送到存储设备 (诸如作为永久存储208的一部分的硬驱动器)上的光或磁盘。在有形形式 中,计算机可读介质218还可以从采取永久存储的形式,诸如连接到数据处 理系统200的硬驱动器、指状储存器或闪速存储器。计算机可读介质218的 有形形式也称为计算机可记录存储介质。在一些实例中,计算机可记录介质 218不可移除。

可替代地,程序代码216可以通过到通信单元210的通信链路和/或通过 到输入/输出单元212的连接,从计算机可读介质218传送到数据处理系统 200。在说明性示例中,通信链路和/或连接可以是物理的或无线的。计算机 可读介质还可以采取非有形介质的形式,诸如包含程序代码的通信链路或无 线传输。为数据处理系统200图示的不同组件不意味着提供对于其中可以实 施不同实施例的方式的架构限制。不同说明性实施例可以在包括除了或替代 为数据处理系统200图示的那些组件的组件的数据处理系统中实施。图2中 示出的其他组件可以根据示出的说明性示例而变化。作为一个示例,数据处 理系统200中的存储设备是可以存储数据的任何硬件装置。存储器206、永 久存储208和计算机可读介质218是以有形形式的存储设备的示例。

在另一示例中,总线系统可以用于实施通信组织202,并且可以包括一 个或多个总线(诸如系统总线或输入/输出总线)。当然,总线系统可以使用 提供附接到总线系统的不同组件或设备之间的数据的传送的任何适当类型的 架构来实施。此外,通信单元可以包括用于发送和接收数据的一个或多个设 备,诸如调制解调器或网络适配器。此外,存储器可以例如是存储器或诸如 在可以存在于通信组织202中的接口和存储器控制器中发现的高速缓存。

用于执行本发明的操作的计算机程序代码可以以一种或多种编程语言的 任何组合撰写,包括诸如Java、Smalltalk、C++等的面向对象的编程语言以及 诸如“C”编程语言或类似编程语言的传统程序性编程语言。程序代码可以整 体地在用户计算机、部分地在用户计算机(作为独立软件包)、部分地在用户 计算机并且部分地在远程计算机、或整体地在远程计算机或服务器上执行。 在后一场景中,远程计算机可以通过任何类型的网络(包括局域网(LAN) 或广域网(WAN))连接到用户的计算机,或者可以进行到外部计算机的连 接(例如,通过使用因特网服务提供者的因特网)。

本领域的普通技术人员将理解图1-2中的硬件可以取决于实施方式而变 化。除了或替代图1-2中描绘的硬件,可以使用其他内部硬件或外部设备(诸 如闪速存储器、等价非易失性存储器或光盘驱动器等)。此外,除了之前提及 的SMP系统,说明性实施例的处理可以应用于多处理器数据处理系统,而不 背离公开的主题的精神和范围。

如将所见的,在此描述的技术可以结合诸如图1中图示的标准客户端- 服务器范例操作,标准客户端-服务器范例中客户端机器与在一组一个或多个 机器上运行的因特网可访问的、基于Web的门户通信。终端用户操作能够访 问和与门户交互的可连接因特网的设备(例如,桌面型计算机、笔记本计算 机、连网的移动设备等)。典型地,每个客户端或服务器机器是包括硬件和软 件的诸如图2所示的数据处理系统,并且这些实体在诸如因特网、内联网、 外联网、专用网或任何其他通信介质或链接的网络上相互通信。数据处理系 统典型地包括一个或多个处理器、操作系统、一个或多个应用以及一个或多 个实用程序。数据处理系统上的应用提供对于Web服务的原生支持,包括但 不限于对于HTTP、SOAP、XML、WSDL、UDDI和WSFI的支持。关于SOAP、 WSDL、UDDI和WSFL的信息可从负责开发和维护这些标准的万维网联盟 (W3C)获得;关于HTTP和XML的进一步信息可从互联网工程任务组 (IETF)获得。假设对于这些标准熟悉。

联邦模型

如上所述,在在此的一个实施例中,在“联邦”环境的情况下实施身份 提供者实例发现。因此,提供以下背景。通常,企业具有它自身的用户登记, 并且保持与它自身的用户组的关系。每个企业典型地具有它自身认证这些用 户的方式。然而,在联邦方案中,企业以集体方式协作,使得一个企业中的 用户可以通过企业参与企业的联邦利用与一组企业的关系。用户可以被授权 访问处于任何联邦企业的资源,好像它们具有与每个企业的直接关系。用户 不需要在每个感兴趣的商业处登记,并且用户不一直要求用户标识和认证他 们自身。因此,在该联邦环境中,认证方案允许信息技术中迅速演化的异构 环境中的单点登陆体验。

如所公知的,联邦是一组独立实体,诸如企业、企业内的逻辑单位、组 织、机构等,其协作以为用户提供单点登陆、易用体验;联邦环境不同于典 型的单点登陆环境在于两个实体不需要具有直接的、预先建立的、定义对于 用户如何传送和传送什么信息的关系。在联邦环境内,实体提供处理认证用 户,接受由其他实体呈现的认证断言(例如,认证令牌),以及提供将用户的 担保身份转换为本地实体内理解的身份的一些形式的转换的服务。

联邦减轻了服务提供者的管理负担。服务提供者可以依赖于其相对于联 邦整体的信任关系;服务提供者不需要管理认证信息,诸如用户密码信息, 因为它可以依赖于由用户的认证家域或身份提供者完成的认证。联邦环境允 许用户在第一实体处认证,该第一实体可以充当发出用于在第二实体处使用 的关于用户的认证断言的发出方。用户然后可以通过呈现由第一实体发出的 认证断言,而不必在第二实体处明确地重新认证,访问处于第二、独立实体 (称为响应方)的受保护的资源。从发出方传送到响应方的信息以断言的形 式,并且该断言可以包含以声明形式的不同类型的信息。例如,断言可以是 关于用户的认证身份的声明,或者它可以是关于与特定用户相关联的用户属 性信息的声明。此外,该信息可以由响应方用于基于由响应方维护的响应方 的访问控制规则、身份映射规则和可能的一些用户属性,提供对于响应方的 资源的访问。

身份提供者(IdP)是特定类型的服务,其提供身份信息作为服务到联邦 计算环境中的其他实体。对于大多数联邦交易,对于认证断言的发出方将通 常是身份提供者;任何其他实体可以区别于身份提供者。提供联邦计算环境 中的服务的任何其他实体可以分类为服务提供者。一旦用户已经认证到身份 提供者,那么联邦中的其他实体或企业可以仅仅被视为给定联邦会话或给定 联邦交易期间的服务提供者。

尽管可能在联邦环境中存在可以充当身份提供者的多个企业,例如,因 为它们是具有生成和验证用户的认证证书等的能力的多个企业,但是联邦交 易通常仅涉及单个身份提供者。如果仅存在能够认证用户的单个联邦实体, 例如,因为联邦内存在一个并且仅存在一个实体用户与其执行联邦登记或注 册操作,那么将预期该实体充当用户的身份提供者,以便支持贯穿联邦环境 的用户的交易。

现在参照图3,框图描绘了给定域的预先存在的数据处理系统与可以用 于支持身份提供者的一些联邦架构组件的集成。联邦环境包括为用户提供多 种服务的实体。用户312与可以支持浏览器应用316和各种其他客户端应用 318的客户端设备314交互。用户312区别于客户端设备314、浏览器316和 充当用户和其他设备和服务之间接口的任何其他软件。在一些情况下,以下 描述可以在客户端应用中明确地活动的用户与代表用户活动的客户端应用之 间进行区分。通常,尽管请求者是中介,诸如基于客户端的应用、浏览器、 SOAP客户端等,但是可以假设为代表用户活动。

浏览器应用316可以是典型的浏览器,其包括许多模块,诸如HTTP通 信组件320和标记语言(ML)解释器322。浏览器应用316还可以支持插件 程序,诸如可能或可能不要求虚拟机运行时间环境的Web服务客户端324和 /或可下载小应用程序。Web服务客户端324可以使用简单对象访问协议 (SOAP),其是用于定义在分散的分布式环境中结构化和类型化信息的交换 的轻量协议。SOAP是基于XML的协议,其包括三个部分:定义用于描述消 息中是什么以及如何处理它的框架的封装;用于表示应用定义的数据类型的 实例的一组编码规则;以及用于代表远程过程调用和响应的约定。用户312 可以使用浏览器应用316访问基于web的服务,但是用户312还可以通过客 户端设备314上的其他web服务客户端访问web服务。一些联邦操作可以采 用经由用户的浏览器的HTTP重新定向。然而,描述的技术可以在多种通信 协议上支持,并且不意味着限于基于HTTP的通信。例如,当需要时,联邦 环境中的实体可以直接通信;不要求消息通过用户的浏览器重新定向。

联邦环境所要求的组件可以与预先存在的系统集成。图3描绘用于将这 些组件实施为到预先存在的系统的前端的一个实施例。在联邦域处预先存在 的组件可以被视为传统应用或后端处理组件330,其以类似于图4所示的方 式包括认证服务运行时间(ASR)服务器332。ASR服务器332负责当域控 制对于应用服务器334的访问时认证用户,对于应用服务器334的访问可以 被视为生成、检索或者其他方式支持或处理受保护的资源335。域可以继续 使用传统用户注册应用336,以注册用户用于访问应用服务器334。针对传统 操作认证注册用户所需的信息存储在企业用户注册表338中;企业用户注册 表338也可以对于联邦组件可访问。

在加入联邦环境之后,域可以继续操作而不干涉联邦组件。换句话说, 可以配置域,使得用户可以继续直接访问特定应用服务器或其他受保护的资 源,而不通过接触点服务器或实施该接触点服务器功能的其他组件;以此方 式访问系统的用户将经历典型的认证流程和典型的访问。在此情况下,然而, 直接访问传统系统的用户将不能建立对于域的接触点服务器已知的联邦会 话。

通过使用联邦前端处理340,域的传统功能可以集成到联邦环境中,联 邦前端处理340包括接触点服务器342以及自身与安全令牌服务(STS)346 交互的信任代理服务器344(或者更简单地,信任代理344或信任服务344)。 联邦配置应用348允许管理用户配置联邦前端组件,以允许它们通过联邦接 口单元350与传统后端组件对接。联邦功能可以在独立的系统组件或模块中 实施。典型地,用于执行联邦操作的大多数功能可以由单个联邦应用内的逻 辑组件的集合实施;联邦用户生命周期管理应用352包括信任服务344连同 单点登陆协议服务(SPS)354。信任服务344可以包括身份和属性服务(IAS) 356,其是负责作为联邦功能的一部分的涉及身份映射、属性检索等操作的服 务。身份和属性服务356还可以在单点登陆操作期间由单点登陆协议服务354 采用。联邦用户注册表358可以在特定情况下采用以保持用于联邦专用目的 的用户相关信息。

云计算模型

云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、 按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者 进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、 服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至 少五个特征、至少三个服务模型和至少四个部署模型,更多描述具体请参见 Peter Mell和Tim Grance在2009年10月7日发表的的“Draft NIST Working  Definition of Cloud Computing”。

具体典型特征包括:

按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况 下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。

广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准 机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、 膝上型电脑、个人数字助理PDA)对云的使用。

资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant) 模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配 和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确 切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因 此具有位置无关性。

迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实 现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用 计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。

可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽 和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。 可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明 度。

典型服务模型如下:

软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上 运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电 子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设 置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至 单个应用能力等的底层云基础架构。

平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者 创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。 消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础 架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制 权。

基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署 并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算 资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储 和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具 有有限的控制权。

典型部署模型如下:

私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或 第三方管理并且可以存在于该组织内部或外部。

团体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务 使命、安全要求、政策和合规考虑)的特定团体。团体云可以由团体内的多 个组织或第三方管理并且可以存在于该团体内部或外部。

公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥 有。

混合云:云基础架构由两个或更多部署模型的云(私有云、团体云或公 共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的 标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术) 绑定在一起。

云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和 语意的互操作性。云计算的核心是包含互连节点网络的基础架构。具有代表 性的云计算节点如图2所示。具体来讲,云计算节点具有计算机系统/服务器, 其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于 与计算机系统/服务器一起操作的计算系统、环境和/或配置的例子包括但不限 于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝 上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电 脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算 技术环境,等等。计算机系统/服务器可以在由计算机系统执行的计算机系统 可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括 执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组 件、逻辑、数据结构等。计算机系统/服务器可以在通过通信网络链接的远程 处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程 序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

参照图4,通过另外的背景,示出由云计算环境提供的一组功能抽象层。 首先应当理解,图4所示的组件、层以及功能都仅仅是示意性的,本发明的 实施例不限于此。如图4所示,提供下列层和对应功能:

硬件和软件层400包括硬件和软件组件。硬件组件的例子包括:主机, 例如系统;基于RISC(精简指令集计算机)体系结构的服务 器,例如系统;系统;系统; 存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件, 例如应用服务器软件;数据库软件,例如数据 库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是 国际商业机器公司在全世界各地的注册商标)。

虚拟层402提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟 服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统, 以及虚拟客户端。

在一个示例中,管理层404可以提供下述功能:资源供应功能:提供用 于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价 功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。 在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和 任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者 和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资 源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履 行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。

工作负载层406提供云计算环境可能实现的功能的示例。在该层中,可 提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期 管理;虚拟教室的教学提供;数据分析处理;交易处理;以及根据本公开的 教导,身份提供者实例发现。

预先理解,尽管本公开包括关于云计算的详细描述,但是在此叙述的教 导的实施方式不限于云计算环境。当然,本发明的实施例能够结合已知或随 后开发的任何其他类型的计算环境实施。

因此,代表性的云计算环境具有一组高级功能组件,其包括前端身份管 理器、商业支持服务(BSS)功能组件、操作支持服务(OSS)功能组件以及 计算云组件。身份管理器负责与请求客户端对接,以便提供身份管理,并且 该组件可以用一个或多个已知系统实施,诸如可从纽约Armonk的IBM公司 获得的Tivoli联邦身份管理器(TFIM)。在适当的情况下,TFIM可以用于提 供F-SSO到其他云组件。商业支持服务组件提供特定管理功能,诸如账单支 持。操作支持服务组件用于提供其他云组件(诸如虚拟机(VM)实例)的提 供和管理。云组件代表主要计算资源,其典型地是用于运行使得可经由云访 问的目标应用410的多个虚拟机实例。一个或多个数据库用于存储目录、日 志和其他工作数据。所有这些组件(包括前端身份管理器)位于云“内”,但 是这不是要求。在替代实施例中,身份管理器可以在云外部操作。

身份提供者实例发现

还已知提供身份提供者(IdP)实例发现服务,有时称为“IdPIDS”。优 选地,在终端用户访问服务提供者以从应用获得服务之后,从联邦服务提供 者(SP)自动访问(例如,经由Web服务调用)IdPIDS。通常地,IdPIDS 操作来从多个这样的实例选择(或者“选取”)身份提供者实例。如在此使用 的,“实例”指由身份提供者执行的一组功能,其中这样的功能在每个其他“实 例”中复制或镜像。因此,至少对于终端用户客户端交互的处理,每个身份 提供者“实例”可以被认为功能上等价于另一这样的实例。特定身份提供者 实例因此可以存在于特定位置,特定时间,或者在给定发生。通常,IdPIDS 操作来从可以用于接收终端用户绑定的多个这样的实例定位“最佳的”身份 提供者实例,尽管术语“最佳的”不应用于限制公开的主题。特定“实例” 可以是比另一这样的实例“更好”,但是不必然相对于一些抽象或定义的标准 “最好”。最低限度,IdPIDS操作来基于给定的“选择”标准在另一这样的 实例上选择给定的IdP实例。如将在下面更详细描述的,选择标准可以是完 全变化的,但是典型的是以下之一:计算实体(例如,终端用户客户端机器 或一些其他机器)和一个或多个身份提供者实例之间的网络相近性、计算实 体和一个或多个身份提供者实例之间的地理相近性、与一个或多个身份提供 者实例相关联的负载、一个或多个身份提供者实例的可用性、与一个或多个 身份提供者实例相关联的能力(包括但不限于IdP实例是否支持要求的F-SSO 协议/方法)、与一个或多个身份提供者实例相关联的性能度量、与一个或多 个身份提供者实例相关联的现有绑定、SP是否具有与一个或多个特定实例建 立的伙伴关系等。

以下提供一般地基于身份提供者发现的问题的额外背景。在图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之间建立终端用户会话以完成该处理。

图5中示出的方法不涉及身份提供者“实例”,由于每个身份提供者504、 506、508和510独立操作。现在参照图6,已知的单个逻辑IdP发现服务提 供有多个IdP实例。发现服务可由服务提供者602访问。在该实施例中,所 有IdP实例604、606、608和610优选地共享公共站点(DNS)名,诸如 “idp.xyz.com”,并且每个实例位于特定位置(东京、班加罗尔、伦敦和纽约)。 全局服务负载平衡(GSLB)机制605将终端用户600路由到特定IdP实例。 在一个方法中,GSLB是基于DNS的,尽管路由可以在传统OSI模型的其他 层执行。因此,在替代方法中,基于BGP的路由标准可以用于确定选择哪个 实例。更复杂的基于GSLB的方法可以包括实现更精细粒度的地点选择标准 的顾问组件。

图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绑定、或者其一些组合。优选地,服务进行选择而 不要求选择给定实例的处理中直接终端用户介入(尽管终端用户最初可以介 入选择身份提供者服务)。

图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等的多种已知机制实施。这完成该处理。

因此,根据实施例,当终端用户(客户端)访问应用(服务提供者)时, 服务提供者对于IdPIDS进行请求,将其传递到客户端的IP地址或其他相关 信息(例如,应用标识符、指示之前IdP绑定的cookie等)。作为服务,IdPIDS 通过一个或多个技术确定适当的IdP实例,并且将响应返回到服务提供者。 服务提供者然后将客户端重新定向到IdP,典型地通过HTTP重新定向。取决 于使用的特定F-SSO协议/绑定和本地配置的任何要求,该重新定向可以适当 地调用IdP发起的或SP发起的F-SSO端点。IdP以通常方式认证客户端,然 后将用户重新定向回服务提供者。用户的认证身份(如有选择的IdP实例生 成)经由联邦信任关系传递到服务提供者。以此方式,选择的F-SSO协议/ 绑定用于将适当的身份信息传递到SP,并且最终用户重新定向到原始请求的 服务。

如所述的,IdPIDS可以实施多种方式来确定适当的实例。例如,基于客 户端IP地址,IdPIDS可以基于到IdP实例的接近(或者最佳)网络相近性进 行选择。可以通过延迟、往返时间(RTT)、自主系统(AS)跳跃的数目、分 组丢失或其组合确定网络相近性。替代网络相近性,决定可以基于地理相近 性,在此情况下可以选择“最近的”数据中心。在该处理期间,可以使用IP 范围映射或IP到国家/地理映射。选择标准可以时网络和地理定位两者的给定 函数。或者,选择处理可以基于具体IdP实例可能如何“忙”(负载),或者 在具体请求时间IdP实例是否可用。为此目的,优选地每个IdP实例与IdPIDS 服务通信,并且适当的请求-响应协议用于将状态和负载数据从IdP实例传送 到服务。概括来说,每个IdP实例的状态典型地对于所有IdP实例是已知的 (或者可能已知),这可以通过多种方式实现,诸如使用直接警告或提供数据 (潜在地包括关于特定IdP组件或从属实体的数据)到IdPIDS实例指示IdP 实例的“健康”或可用性的监视能力。负载数据可以包括但不限于CPU负载、 存储负载等。当考虑实例负载时,服务可以执行作为哪个实例在请求时最小 负载的函数的实例选择。在替代中,实例选择可以基于网络和/或地理定位以 及负载的组合。因此,例如,特定IdP实例可能比另一IdP实例更近(网络 方式),但是更重负载,在此情况下IdP可能选择更远(网络方式)的更少负 载的IdP实例。

选择标准可以基于其他因素。因此,例如,一个或多个服务提供者实例 (或者,更一般地多个服务提供者实例的子集)可以具有不由所有实例共享 的特定能力。在这样的情况下,IdPIDS将请求定向到具有希望的能力(或者 可能最近或最小负载的实例,如果存在若干共享能力的实例)的实例之一。 通常,选择可以基于与一个或多个服务提供者实例相关联的一些其他性能。 或者,选择可以利用与一个或多个服务提供者实例相关联的现有绑定。该绑 定可以以任何已知方式(诸如cookie)捕获。

除了定位、负载、能力或可用性外,选择可以基于循环机制。

服务提供者实例发现服务通过其执行实例选择的各种技术的上面的描述 仅仅是代表性的。一个或多个这些标准可以相互结合使用,服务可以在特定 情况下使用这些技术而不是别的(例如,在特定日子、在特定时间、在不同 负载条件下等),服务可以默认、或者在特定服务提供者(而不是其他)的情 况下、对于特定类型的联邦终端用户等,使用一个或其他技术。所有这些的 变化视为在发现机制和在此实施的方法的范围内。

IdPIDS可以实施为云服务,诸如图4中代表的。

为了扩展和/或性能和可用性,IdPIDS自身可以具有处于多个传递地点的 多个、群集的实例。“群集的”IdPIDS服务实施例对于多个联邦应用提供高 可扩展和高可用身份提供者“后端”发现服务。在该方法中,有应用请求驱 动后端服务(与直接和用户交互的典型的前端服务相反)。IdP实例组织为“群 集”,其中每个群集位于给定定位,并且群集中的每个实例与该群集中的所有 其他实例“共同定位”。每个“群集”自身运行其自己的IdPIDS服务;因此, IdPIDS自身在每个群集定位处“复制”或“镜像”。通常,处于特定群集的 IdPIDS服务实例在自身共同定位的实例之间执行“实例”选择,或者IdPIDS 可以将请求定向到位于另一地点的另一IdPIDS服务(例如,到另一群集)。 因此,为了多个原因之一,用户可以定向到处于不同传递地点的身份提供者; 如果本地IdPIDS那时不可用或过度负载,为了其他负载平衡的目的,或者如 果本地IdPIDS没有提供有应用要求的具体能力。该群集方法也是有利的,由 于其实现本地IdP实例(或者这样的实例的群集)取下用于维护,同时对于 正使用后端服务的联邦应用保持完整的F-SSO能力。

对于由IdPIDS返回的特定请求的响应可以包括联邦专用URL。

特定IdP实例可以使用全局服务负载平衡(GSLB)机制虚拟化。

发现服务代理—利用发布-订阅的IdP实例发现

在以上作为背景的情况下,现在描述本公开的技术。

在该方法中,“发现服务代理”集成到F-SSO基于云的环境,并且与外 部身份提供者(IdP)实例发现服务(诸如上面描述的IdPIDS实施例的任何) 交互。通常地,代理将IdP实例请求代理到发现服务,并且接收包括IdP实 例分配和可能其他数据(诸如实例状态)的响应。代理保持实例分配的高速 缓存(有时称为本地高速缓存)。随着接收新的实例请求,高速缓存的分配数 据(如果当前,如将描述的)用于提供适当的响应替代将这些请求代理到发 现服务。因为IdPIDS典型地位于远离F-SSO环境,所以本地高速缓存的实 例分配数据的使用减少识别请求的IdP实例的所需的时间。根据本公开,代 理通过订阅来自发现服务的更新动态地保持和管理其高速缓存。更新识别在 包括IdP服务的地理上分布的实例的组(或者实例群集)中或相关联地出现 IdP实例改变(诸如服务器为了维护而离线、添加新的服务等)。优选地,更 新经由发布-订阅模型从IdPIDS提供到代理。以此方式,代理主动(并且相 对于实例请求不同步地)接收改变通知。代理使用该通知更新其本地高速缓 存,使得实例分配是当前的,并且反映IdP实例(或者实例群集)真实的当 时存在的后端状态。

如所述的发现服务代理典型地以硬件和软件实施,诸如图2所示和上述。 代理包括(或者具有与其相关联的)高速缓存(或者,更具体地,数据存储), 其中保持实例分配数据。代理中的一个或多个控制例程用于提供高速缓存的 各种功能,即,初始化高速缓存、用初始实例分配数据布居高速缓存、接收 实例分配请求和使用高速缓存的分配数据响应实例分配请求、以及从远程发 现服务接收改变通知(优选地,经由发布-订阅订阅模型)并且适当地更新高 速缓存。这些功能下面更详细描述。

图9图示在基于云的环境的实施例中发现服务代理的实施方式,基于云 的环境的实施例实施F-SSO认证以及对云中支持的一个或多个商业应用的访 问。通常,并且如将描述的,发现服务代理用于提供到(典型地,远程的) 发现服务的接口,发现服务用于确定要用于服务特定IdP实例请求的适当IdP 实例。

如上一般地描述的,云环境900包括一组高等级组件,其典型地包括前 端身份管理器、商业支持服务(BSS)功能组件、运行支持服务(OSS)功能 组件(未示出)以及计算云组件。如图9所示,其已经为了说明的目的简化, 经由可从IBM商业地获得的用于电子商务的访问管理器(TAMeb)产 品实施基础访问管理器902。由协议服务模块904提供F-SSO支持,其可以 由可从IBM获得的Tivoli联邦身份管理器(TFIM)实施。协议服务模块904 包括相关联的安全性令牌服务(STS)906,其实施Web服务信任(WS-Trust) 的消息传送机制以定义对于安全性令牌的发出、交换和验证。WS-Trust协议 允许Web服务客户端请求特定安全性令牌交换另一个的一些受信权限。高性 能、多线程Web服务器908(附图中称为WebSEAL)典型地TAM组件管理 对于身份管理器的访问。商业支持服务(BSS)组件910提供对于环境的管 理功能,如已经描述的。在该示例中,一个或多个商业应用912在多个虚拟 机实例(未示出)中运行。在LDAP中支持顾客的外部数据。顾客的环境916 包括接触点918(诸如WebSEAL)和LDAP目录918。经由Web浏览器920 或经由“富有的(rich)”客户端(即,支持直接访问客户端的机器)提供客 户端访问。以已知方式提供其他公共管理平台组件、数据库和服务。当然, 云计算基础设施的特定细节不旨在为限制性的。

在图9中,发现服务代理922位于云计算环境中,并且它包括Web服务 客户端(WS-C)924。在替代中,WS-C 924可以嵌入WebSEAL代理908, 或在TFIM SSO协议服务模块904中,或在一些其他组件中。WS-C 924调用 远程身份提供者实例发现服务(IdPIDS)926以检索要使用的适当的身份提 供者实例的标识(URL)。如上已经描述的,该决定(通过IdPIDS)可以基 于多个因素,诸如发现服务代理的当前定位、意图的IdP、请求F-SSO的应 用以及其他信息,包括但不限于IdPIDS已知的“后端”信息,诸如负载、网 络状态等。

为了支持性能环境,包括可能操作的IdPIDS服务自身变为不可用的一个 环境,发现服务代理922保持实例分配的高速缓存928。如上注意的,代理 还运行更新服务,以便动态地保持和管理其本地高速缓存。现在描述该操作。

图10图示本技术的优选操作。在该示例中,发现服务代理1000使用其 相关联的WS-C 1002与远程IdPIDS 1004通信。该交互可以在任何合适的协 议(例如,REST、SOAP、TLS(传输层安全性)上的HTTP等、或其一些 组合)上发生。发现服务代理1000还订阅由发现服务发布的改变通知,如将 描述的。在该操作场景中,随着接收对于IdP实例的请求,发现服务代理1000 执行(对于发现服务1004)一系列初始布居请求。这些请求与特定主机名称 相关联,诸如该示例中的www.cloud-ibm.com。优选地,通过目标URL (“www.cloud-ibm.com”)、本地IP地址(例如,前端Web服务器1006的 9.x.x.x)、请求F-SSO的应用(Web服务器1006对其中介F-SSO的URL)等, 区分IdP实例请求。因此,IdP请求数据可以包括这些信息之一或组合。参照 图10,步骤(1)图示WS-C发出相对于主机名称的对于IdP实例的请求,并 且步骤(2)图示发现服务提供它(服务)已经确定应该用于服务特定请求的 IdP实例。随着由发现服务1004服务这些初始布居请求,发现服务代理接收 IdP分配。分配因此将“请求数据”与“IdP实例”相关联。在步骤(3),代 理用实例分配数据布居它的本地高速缓存,并且该数据可以包括诸如时间戳 等的其他信息。数据存储、查询和从高速缓存的取回可以基于IdP请求中的 任何信息。随着新的请求类别到达,代理用意图的目的地(URL/IP地址)布 居它的本地高速缓存。尽管图10中未图示,随着在代理处接收重复请求,发 现服务代理执行对于高速缓存的查询,并且假如现有信息仍是当前的,则重 新使用它。因此,特定的分配数据可以在高速缓存中具有存活时间(TTL); 因此,当在代理处接收新的(重复)请求时,代理检查以确定它是否具有对 于主机名称(或其他请求数据)的当前分配数据;如果是,则高速缓存重新 使用存储的分配数据,而不是将请求代理到远程发现服务。

如上注意的,代理1000还订阅由实例发现服务发布以提供整体服务的性 能上的额外提高、可靠性和可用性的改变通信。为此,发现服务提供发现服 务代理订阅的改变通知服务。订阅-通知机制可以以一对一或一对多的方式操 作。因此,发现服务通知服务可以发布可用于多个代理的更新。取决于实施 方式,特定的订阅-通知机制可以是任何传统类型。在示例性实施例中,可以 利用由WS-通知指定的订阅-通知机制。WS-通知使用基于主题的发布/订阅消 息发送方式提供用于Web服务通信的开放标准。尽管具体WS-通知将依赖于 IdPIDS实施方式细节,但是在一个实例实施例中,通知服务可以使用IBM 应用服务器V7.0实施,其对于基于XML的Web服务(JAX-WS) 实施基于Java API的WS-通知,已知为版本7.0 WS-通知。

在替代中,可以使用在OGSI(开放网格服务基础设施)中指定的订阅- 通知机制。为此目的可以使用的其他发布-订阅(pub-sub)机制包括但不限于 可从获得的WSP。

概括来说,并且如在图1所见,通知服务包括在IdPIDS中运行的通知生 产者组件,以及在代理(或与其相关联的WS-C)中运行的通知消费者组件。 以软件实施每个这样的组件,软件存储在存储器中作为一组计算机程序指令, 并且由作为专业或专用机器的一个或多个处理器运行。使用适当的基于web 的或可编程的接口,创建一个或多个“订阅”。订阅是代表通知消费者组件、 通知生产者组件、主题和各种其他过滤表示、策略和环境信息之间的关系的 WS-资源。订阅者是充当发送订阅请求消息到通知生产者组件的服务请求者 的实体(在该示例中,代理或WS-C)。订阅者可以不同于通知消费者组件。 为了生产具有额外规模的通知服务,可以以与WS-通知规范一致的已知方式, 实施订阅管理器和/或订阅中间人组件。

使用这种类型的发布-订阅模型,本公开的发现服务代理订阅来自发现服 务的更新。这允许服务代理接收关于对于包括IdP示例发现服务的资源(例 如,网络、服务群集、服务器、服务等)的改变的通知。通知可以完全变化, 并且它们可以以任何格式提供。因此,可以实施WS-通知规范的含义内的任 何主题。通知为服务代理提供一般地关于发现服务并且关于发现服务中的特 定资源的最新和时间信息。因此,在没有限制的情况下,通知可以有任何属 性和类型。这么可以是粗糙粒度(例如,“发现服务是活动的”)或精细粒度 (例如,在定位A的发现服务群集实例当前由于维护而暂停服务)等,并且 它们可以周期性地(每小时、每分钟或每秒)或者非同步地(随着特定时间 出现)或者以其一些组合来提供。通知可以是资源特定的,诸如“[指名的资 源]当前处于75%负载”、“[指名的资源]响应时间>2ms”等。通知还可以提供 可以由代理用于便利发现的信息,示例是“属性服务不可用,所有请求属性 的请求应该路由到X”等。在后一示例中,然后可以基于返回的标准选择IdP 实例。当然,所有这些示例仅仅是为了说明的目的,并且不应视为限制。

典型地,订阅与特定主机名称或发现服务中的其他可识别资源相关联。 通知服务优选地可由IdPIDS提供者或与服务代理自身相关联配置。因此,在 一种实施方式中,服务代理输出包括一个或多个可以在其配置通知的显示屏 幕的Web接口。

返回参照图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实例的信息。这使得代理 能够可靠地并且以可扩展的方式从它的本地高速缓存服务实例请求,从而摆 脱必须由(典型地远程)发现服务来服务的请求。

概括来说,通知服务包括在IdPIDS中运行的通知生产者组件,以及在代 理(或者与其相关联的WS-C)中运行的通知消费者组件。每个这样的组件 以软件实施,软件存储在计算机存储器中作为一组计算机程序指令,并且由 作为专业或专用机器的一个或多个处理器运行。使用适当的基于web的或可 编程的接口,创建一个或多个“订阅”。订阅是代表通知消费者组件、通知生 产者组件、主题和各种其他过滤表示、策略和环境信息之间的关系的WS-资 源。订阅者是充当发送订阅请求消息到通知生产者组件的服务请求者的实体 (在该示例中,代理或WS-C)。为了生产具有额外规模的通知服务,可以以 与WS-通知规范一致的已知方式,实施订阅管理器和/或订阅中间人组件。

上述技术提供了许多优点,如已经描述的。代理摆脱了实例发现。其使 得F-SSO操作能够在云环境中安全地和有效地实施。此外,发布-订阅模式便 于代理和发现服务之间的改变通知服务,其通过确保其分配数据的高速缓存 是当前的并且反映可用于发现服务的资源的实际状态,提升了代理的操作。 该方法确保发现服务代理知晓关于后端资源的可用性问题(例如,IdP实例离 线或者过载,或者以其他方式不可用);因此,代理可以使用它的高速缓存中 的分配数据来响应请求,或者如果需要前进到服务(例如,因为高速缓存丢 失或其他),则请求将继续。通过以此方式动态地保持和管理它的本地高速缓 存,最小化识别请求的IdP实例的时间。此外,通过在高速缓存响应于实例 请求,最小化对于服务的负载。当要求对于服务的请求时,通知服务确保这 样的请求定向到活动的资源。结果是更高可用、高可靠和高可扩展发现服务。

上述功能可以实施为独立的方法,例如由处理器运行的基于软件的功能, 或者可以用作管理服务(包括作为经由SOAP/XML接口的Web服务)。在此 描述的特定硬件和软件实施方式细节仅仅是为了说明的目的,而不意在限制 描述的主题的范围。

更一般地,在公开的发明的环境中的计算设备每个是包括硬件和软件的 数据处理系统(诸如图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)获得。假设对于这些标准熟悉。

除了基于云的基础架构,在此描述的方案可以以或结合各种服务器侧架 构实施。这些包括但不限于简单n层架构、Web门户、联邦系统等。

如上面的示例说明的,一个或多个身份提供者示例发现功能可以在云内 或外主办。

更一般地,在此描述的主题可以采取完全硬件实施例、完全软件实施例 或包含硬件和软件元素两者的实施例的形式。在优选实施例中,以软件实施 分层的注销功能,软件包括但不限于固件、驻留软件、微代码等。数据可以 配置到数据结构(例如,阵列、链接的列表等)并且存储在数据存储(诸如 计算机存储器)中。此外,如上注意的,在此描述的身份提供者实例发现功 能采取计算机程序产品的形式,计算机程序产品可从提供用于由或结合计算 机或任何指令运行系统使用的程序代码的计算机可用或计算机可读介质获 得。为了描述的目的,计算机可用或计算机可读介质可以是包含或存储用于 由或结合指令运行系统、装置或设备使用的任何装置。介质可以是电、磁、 光、电磁、红外或者半导体系统(或者装置或设备)。计算机可读介质的示例 包括半导体或固态存储器、磁带、可移除计算机盘、随机存取存储器(RAM)、 只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括致密盘-只读存储 器(CD-ROM)、致密盘-读/写(CD-R/W)和DVD。计算机可读介质是有形 物品。

计算机程序产品可以是具有实施一个或多个描述的功能的程序指令(或 者程序代码)的产品。这些指令或代码可以在通过网络从远程数据处理系统 下载之后存储在数据处理系统中的计算机可读存储介质中。或者,那些指令 或代码可以存储在服务器数据处理系统中的计算机可读存储介质中,并且适 于通过网络下载到远程数据处理系统用于在远程系统中的计算机可读存储介 质中使用。

在代表性实施例中,在专用计算机中,优选地在由一个或多个处理器运 行的软件中实施身份提供者实例发现组件。相关联的配置(安全级别、状态、 定时器)存储在相关联的数据存储中。软件还保持在一个或多个数据存储或 与一个或多个处理器相关联的存储器中,并且软件可以实施为一个或多个计 算机程序。

身份提供者实例发现功能可以实施为现有访问管理器或策略管理解决方 案的附属或扩展。

尽管上面描述了由本发明的某些实施例执行的特定顺序的操作,但是应 该理解这样的顺序是示例性的,由于替代实施例可以以不同顺序执行操作, 组合某些操作,叠加某些操作等。说明书中对于给定实施例的参照指示描述 的实施例可以包括特定特征、结构或特性,但是每个实施例可以不必包括特 定特征、结构或特性。

最后,尽管已经分别描述了系统的给定组件,但是本领域的普通技术人 员将理解一些功能可以在给定指令、程序序列、代码部分等中组合或共享。

如此在使用的,“客户端侧”应用广泛地理解为指应用、与应用相关联的 页面或者由对于应用的客户端侧请求调用的一些其他资源或功能。如在此使 用的“浏览器”不旨在指任何具体浏览器(例如,Internet Explorer、Safari、 FireFox等),而是应该广泛地理解为指可以访问和显示因特网可获得的资源 的任何客户端侧渲染引擎。此外,尽管典型地客户端侧交互使用HTTP出现, 但是这也不是限制。客户端侧交互可以格式化为符合简单对象访问协议 (SOAP),并且可以使用在HTTP上(公共因特网上)的行进、FTP、或者 任何其他可靠的传输机制(诸如技术和CORBA,用于在企 业内联网上的传输)。通过提供到另一应用的钩连(hook)、通过便于作为插 件的机制的使用,通过链接到该机制等,在此描述的任何应用或功能可以实 施为原生代码。

如在此使用的,“身份提供者实例”是也可用在一个或多个其他这样的实 例中的身份提供者的例示或实施方式。因此,通常,“实例”典型地是完全 特征化的身份提供者(IdP),其功能在至少一个其他这样的实例中镜像或复 制。

当然,在此描述的任何商业产品的标识不意在取为对于公开的主题的限 制。

已经描述了本发明,现在要求保护如下。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号