安全的统一云存储的制作方法

文档序号:11142249阅读:459来源:国知局
安全的统一云存储的制造方法与工艺

本申请总体上涉及到数据存储系统,尤其涉及到用于实施安全的统一云存储的技术。



背景技术:

这部分对可能有助于促成更好地理解本发明的方面进行介绍。因此,这部分的叙述要基于这一认识来阅读而并不应当被理解为关于什么属于现有技术或者什么不属于现有技术的认可。

术语“云”通常是指实施云计算范例的集合式计算设施。例如,依据国家技术与标准研究院(NIST特种出版物No.800-145),云计算可以被视为用于支持对能够利用最低程度的管理工作或服务提供方交互而被快速提供和发布的可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池进行普遍、便捷、按需的网络访问的模型。

基于云的计算系统通常还能够通过使用监管程序来实施“虚拟化”功能。监管程序是在物理计算系统上面执行,并且创建并管理诸如虚拟机和逻辑(存储)单元的虚拟资产的软件程序。该监管程序以动态且透明的方式将物理计算系统的硬件资源分配至虚拟资产。

因此,“云存储”被认为是联网的在线存储,其中数据被存储在虚拟化的存储池中。例如,服务提供方可以运营包括这样的云存储的数据中心,并且想要他/她的数据由服务提供商进行托管的客户可以从服务提供方购买或租赁存储容量。服务提供方以动态且透明的方式对所需要的资源进行虚拟化并且将它们展现为存储池,客户随后能够使用该存储池来存储数据。已知许多服务提供方提供了云存储服务(也被称作存储即服务或SaaS),诸如但并不局限于企业级云数据存储服务和客户级文件托管服务。然而,已经意识到的是,针对服务提供方所提供的每个不同云存储服务而言,通常存在这不同的SaaS应用编程接口(API)。这种关于API的异质性导致需要庞大数量的API来访问这些不同的云存储服务。

为了尝试解决以上问题,开放移动联盟(OMA)已经提出了一种例如在日期为2012-09-04的题为“Unified Cloud Disk V1.0,W0273”的OMA工作项目文档中所概述的统一云盘(Unified Cloud Disk,UCD)方法。该UCD架构为移动运营商(即,该移动运营商在这里是服务提供方)提供了一种移动云计算环境中的统一云存储系统。在该UCD架构中,移动用户或应用能够使用标准SaaS应用编程接口(API)跨多个移动运营商而在联合的(统一的)云存储中存储数据。



技术实现要素:

本发明的说明性实施例提供了用于安全的统一云存储的技术和装置。虽然实施例能够应用于各种类型的数据存储系统,但是一个或多个实施例尤其适用于在UCD架构中使用。

例如,在一个实施例中,一种方法包括以下步骤。由客户端作出请求,以被可以与第一服务提供方相关联的第一云存储服务器认证。身份联合请求从该客户端被发送至该第一云存储服务器,其中该身份联合请求寻求将该客户端在该第一云存储服务器上的用户账户与该客户端在可以与第二服务提供方相关联的第二云存储服务器上的用户账户联合。该客户端从该第一云存储服务器被重定向到该第二云存储服务器。由该客户端作出请求,以被该第二云存储服务器认证,以使得该第二云存储服务器在该客户端被认证后将该第一云存储服务器上的用户账户与该第二云存储服务器上的用户账户映射并且在它们之间建立身份联合。该客户端从该第二云存储服务器被重定向到该第一云存储服务器,并且可以接收该身份联合的确认。其它实施例包括单点登录方法,单点登出方法,以及身份解除联合方法。

在另一实施例中,提供了一种制造品,其包括具有已被编码于其中的一个或多个软件程序的可执行代码的处理器可读存储介质。该一个或多个软件程序在被至少一个处理设备执行时实施以上所描述方法的步骤。

在又一实施例中,一种装置包括存储器和处理器,该处理器被配置为执行以上所描述方法的步骤。

在一个UCD示例中,该客户端包括UDC客户端,该第一云存储服务器包括从UCD服务器,并且该第二云存储服务器包括主UCD服务器。

有利地,说明性实施例在UCD架构中整合了安全技术。

本发明的这些和其它特征及优势将由于附图和以下详细描述而变得更加明显。

附图说明

图1示出了其中本发明的一个或多个实施例在其中实施的统一数据存储系统环境。

图2示出了根据本发明一个实施例的身份联合请求方法。

图3示出了根据本发明一个实施例的单点登录方法。

图4示出了根据本发明一个实施例的单点登出方法。

图5示出了根据本发明一个实施例的身份解除联合请求方法。

图6示出了根据本发明一个或多个实施例的统一数据存储系统和方法在其上实施的处理平台。

具体实施方式

这里将参考示例性计算系统、数据存储系统、通信系统、处理平台、网络、用户设备、网络节点、网络元件、客户端、服务器和相关联的通信协议对本发明的说明性实施例进行描述。例如,说明性实施例特别适于在统一云盘(UCD)环境中使用。然而,应当理解的是,本发明的实施例并不局限于与这里所描述的特定布置一起使用,而是相反能够更为一般地被应用于想要在其中通过提供安全的统一数据存储功能而提供有所改进的性能的环境。

如这里所使用的,术语“客户端”说明性地指代被编程和/或配置为执行用于终端用户(例如,客户)执行功能或服务的软件、硬件或它们的组合。术语“服务器”说明性地指代被编程和/或配置为通常响应于来自终端用户(例如,客户)的请求而执行用于服务提供方的功能或服务的软件、硬件或它们的组合。处理设备能够被编程和/或配置为出于一种目的而作为客户端进行操作,并且针对另一种目的作为服务器进行操作,或者作为专用客户端或专用服务器进行操作。在此上下中,下文将会参考“UCD客户端”和“UCD服务器”(例如,如以下将会进一步解释的,主UCD服务器和从UCD服务器),它们是在UCD环境中进行操作的客户端和服务器元件。

如以上所提到的,UCD所提供的云存储架构已经被提出以克服客户在选择跨不同的云存储服务和提供方存储数据时必须采用许多不同的API的问题。例如,考虑希望跨不同服务提供方所维护的不同云存储服务存储文件的客户。在该UCD架构之前,客户的客户端设备将使用单独、不同的接口来访问不同服务提供方的服务器。然而,利用UCD架构,客户能够经由标准接口对多个不同的服务提供方进行访问。

图1示出了统一云存储系统100(例如,UCD系统),其中客户(例如,客户102-1,102-2,...,102-M)能够经由客户端通过标准SaaS API 106访问多个不同的云存储系统(104-1,104-2,...,104-N),云存储系统中的每一个包括一个或多个服务器。例如,假设客户102-1的客户端(UCD客户端)最初经由API 106与云存储系统104-1,104-2,...,104-N中的每一个进行了注册。客户102-1的客户端随后能够经由单个标准接口,例如,标准SaaS API 106,访问(例如,存储并获取)每个不同云存储系统中的数据。这被称作“联合的云存储”,由于客户端能够经由共用接口访问跨不同云存储系统的组合进行存储的数据,因此形成了统一的云存储系统。

然而,如在任何数据存储情形中那样,安全性是UCD架构中主要考虑问题。因此,期望安全技术,用于对寻求访问UCD架构中的联合的云存储的UCD客户端的身份加以认证。

一种安全技术被称作“身份联合”。在身份联合中,用户被允许将已经针对每个服务提供方所创建的本地“身份”(例如,用户标识符、密码、电子邮件地址、个人偏好等)进行联合(例如,链接、连接或结合)。被称之为“联合的身份”的所链接的本地身份允许用户登入一个服务提供方的网站并且点击有所关联的服务提供方。因此,身份联合在用户选择将不同服务提供方的账户与一个或多个身份提供方账户进行统一时进行。在建立允许在提供方之间进行信息交换的链接的同时,用户保留与每个提供方的个人账户信息。身份联合协议的示例是自由联盟计划(Liberty Alliance Project),其为身份联合定义了基于开放标准的规范,例如参见Cantor、Scott、Kemp、John、Champagne、Darryl等人的“Liberty ID-FF Bindings and Profiles Specification”,Version 1.2-errata-v2.0,Liberty Alliance Project,2004-09-12(这里称之为“LibertyBindProf”);以及Cantor、Scott、Kemp、John等人的“Liberty ID-FF Protocols and Schema Specification”,Version 1.2-errata-v3.0,Liberty Alliance Project,2004-09-12(这里称之为“LibertyProtSchema”)。它们的公开通过引用全文结合于此。

然而,这里所意识到的是,自由联合计划的规范将会对UCD架构施加沉重的开销负担。因此,本发明的说明性实施例提供了用于在诸如UCD架构的统一的云存储系统中使用的改进的身份联合管理方法。

如以下将要在图2到图5的上下文中进行描述的,本发明的说明性实施例提供了在UCD环境中实施的身份联合方法,其能够对自由联合计划的身份联合消息中的一些经调适方面加以利用。然而,所要意识到的是,基于这里所提供的发明性教导,本发明的可替换实施例能够在没有这样具体的经适配的自由联合计划消息的情况下以直接的方式来实施。

假设终端用户(例如,图1中的客户102-1)想要利用与第一云存储服务提供方相关联的第一云存储系统(例如,图1中的云存储系统104-1),即,在这种情况下利用主UCD服务器,来执行身份联合过程。主UCD服务器是具有身份提供方的功能(如以下进一步所解释)并且被终端用户所选择来注册主UCD账户的UCD服务器。图2中关于UCD客户端202、主UCD服务器204和从UCD服务器206而示出了根据一个实施例的用于这样的身份联合的方法200。从UCD服务器是可以具有或没有身份提供方的功能并且被终端用户选择用来注册从UCD账户的UCD服务器。注意到,从主UCD服务器204所发起的身份联合请求的过程在这里被省略从而简化描述,然而,该过程是显然的并且可以基于在这里针对图2所给出的描述以直接的方式被实现。

所要理解的是,在一个或多个说明性实施例中,如说明性示出并且以下在图2的上下文中进行描述的身份联合过程是,用于执行如说明性示出并且以下在图3的上下文中进行描述的单点登录过程、如说明性示出并且以下在图4的上下文中进行描述的单点登出过程、以及如说明性示出并且以下在图5的上下文中进行描述的身份解除联合过程的先决条件。也就是说,终端用户在他/她执行单点登录、单点登出和/或身份解除联合之前必须将其在从UCD服务器中的账户与主服务器进行联合。然而,本发明的单独的实施例被理解为包括在图2到图5中分别描绘的每个单独的方法。

在该说明性实施例中,针对执行身份联合的一些假设如下:(i)包括IdP功能的UCD服务器的服务提供方与提供UCD服务的其它服务提供方建立服务协定(注意到,也被称作身份声明提供方的身份提供方(IdP)负责为寻求与给定系统进行交互/进行服务的服务提供方发布标识信息);以及(ii)终端用户已经进行了注册并且决定了可以具有或没有IdP功能的哪个UCD服务器要作为他/她的从UCD服务器。

方法200示出了如下进行描述的从从UCD服务器204所发起的身份联合过程(注意,以下所使用的步骤的附图标记1.,1.1,1.2,2.,...,9.对应于图2中所描绘方法的步骤的编号):

1.终端用户请求登入从UCD服务器206。因此,UCD客户端202向从UCD服务器206发送包括用户身份(例如,从UCD服务器206中的用户账户标识符)的消息UserLoginRequest(用户登入请求)(HTTP请求)。如果该终端用户已经被从UCD服务器206所认证并且已经保存了登入状态,则方法200直接进行至步骤3。当该终端用户还没有如此被认证时,该方法如下继续进行:

1.1从UCD服务器206请求对该用户进行认证。该消息可以包括要被用于对该用户进行认证的挑战或随机值。

1.2UCD客户端202对从UCD服务器204作出回复。该消息包括用户认证信息,例如凭证摘要。

2.从UCD服务器206根据认证信息(例如,从UCD服务器中的用户账户标识符、用户的凭证摘要)对该用户进行认证。

从UCD服务器206利用消息UserLoginResponse(用户登入响应)对UCD客户端202进行回复,其包括成功响应的指示和具有IdP功能的UCD服务器的列表(至少包括一个UCD服务器)。注意到,如果终端用户登入他/她的主UCD服务器,则该服务器列表将是从UCD服务器的候选的列表。然而,如果用户登入他/她的从UCD服务器,则该服务器列表将是支持IdP功能的主UCD服务器的候选的列表。

3.终端用户选择一个UCD服务器作为要与之进行联合的他/她的主UCD服务器(他/她已经利用其注册了主UCD账户)。UCD客户端202向从UCD服务器206发送消息IdentityFederationRequest(身份联合请求)。该请求消息包括从UCD服务器中的用户账户标识符、主UCD服务器中的用户账户标识符以及有关主UCD服务器的信息(例如,主UCD服务器的地址)。

也就是说,UCD客户端202向从UCD服务器206发送身份联合请求以将从用户账户与主用户账户进行联合。示例的消息格式如下:IdentityFederationRequest(userIdM,userIdS,serverIdM,serverIdS),其中userIdM是主UCD服务器204中的用户标识符,userIdS是从UCD服务器206中的用户标识符,serverIdM是向从UCD服务器206请求联合时主UCD服务器204的统一资源标识符(URI),并且serverIdS是向主UCD服务器204请求联合时从UCD服务器206的URI。

4.从UCD服务器206获得主UCD服务器204的位置信息。

5.从UCD服务器206使用消息RegisterNameIdentifierRequest(注册名称标识符请求)(具有状态代码302的HTTP消息)将UCD客户端202重定向到主UCD服务器204。该消息RegisterNameIdentifierRequest包括主UCD服务器204的地址、从UCD服务器206的地址、主UCD服务器204中的用户账户标识符、从UCD服务器206中的用户账户标识符,和从UCD服务器证书。

更具体地,该请求消息的一种示例格式是RegisterNameIdentifierRequest(IDPProvidedNameIdentifier,SPProvidedNameIdentifier,ProviderID),其中IDPProvidedNameIdentifier字段是主UCD服务器中的用户标识符userIdM,SPProvidedNameIdentifier字段是从UCD服务器中的用户标识符userIdS,并且ProviderID字段是以下之一:(i)serverIdM:向从UCD服务器请求联合时主UCD服务器的URI;或者(ii)serverIdS:向主UCD服务器请求联合时的从UCD服务器的URI。该请求消息由从UCD服务器206以数字方式进行签名。从UCD服务器206将主UCD服务器204的数字签名确认有效。

在记录联合信息(例如,主UCD服务器和从UCD服务器之间的用户账户映射)之前,主UCD服务器204对用户进行认证从而保证该用户有权将主UCD服务器204中的用户账户与从UCD服务器206中的用户账户进行联合。可以采用多种认证机制。一种说明性但非限制性的认证机制如下:

5.1主UCD服务器204对UCD客户端202作出响应以对用户进行认证。该消息可以包括要用于对用户进行认证的挑战或随机值。

5.2 UCD客户端202对主UCD服务器204进行回复。该消息包括用户认证信息,例如,用户凭证的摘要。

5.3主UCD服务器204对用户进行认证。主UCD服务器204利用HTTP消息200OK对UCD客户端202作出回复。

6.主UCD服务器204记录联合信息(即,主UCD服务器204和从UCD服务器206之间的用户账户映射)。

7.主UCD服务器204使用消息RegisterNameIdentifierResponse(注册名称标识符响应)(具有状态代码302的HTTP消息)将UCD客户端202重定向到从UCD服务器206。消息RegisterNameIdentifierResponse包括单点登录令牌(SSOToken)、主UCD服务器身份、从UCD服务器中的用户账户标识符、主UCD服务器中的用户账户标识符以及主UCD服务器证书。该消息由主UCD服务器204进行数字签名。

RegisterNameIdentifierResponse消息的一种示例格式如下:RegisterNameIdentifierResponse(ProviderID,Status,Assertion)。ProviderID字段可以是以下之一:(i)serverIdM:利用从主UCD服务器至从UCD服务器的登出请求进行响应时主UCD服务器的URI;或者(ii)serverIdS:利用从从UCD服务器至主UCD服务器的登出请求进行响应时从UCD服务器的URI。状态字段包含所请求处理的结果。如果身份联合被成功执行,则包括SSOToken的认证声明被生成并且被包括在Assertion字段中。从UCD服务器206将主UCD服务器204的数字签名确认有效。

8.从UCD服务器206记录联合信息,即主UCD服务器204和从UCD服务器206之间的用户账户映射。

9.从UCD服务器206利用消息IdentityFederationResponse(身份联合响应)对UCD客户端202作出响应,其可以具有以下示例格式:IdentityFederationResponse(Result,SSOToken),其中Result字段是请求处理的结果,并且如果身份联合被成功执行,则SSOToken被生成并且在SSOToken字段中被提供至UCD客户端202。

在该说明性实施例中,客户端和服务器之间的超文本传输协议(HTTP)消息传输优选地利用传输层安全(TLS)来实施从而保持机密性和消息完整性。TLS 1.2协议在国际工程任务组(IETF)请求评论标准5246中有所描述,其公开通过引用而全文结合于此。然而,在可替换实施例中可以采用HTTP和TLS之外的消息协议和安全协议。

图3示出了根据说明性实施例的单点登录(SSO)方法300(注意到,以下所使用的步骤的附图标记1.,2.,...,6.对应于图3中所描绘方法的步骤的编号):

1.UCD客户端202向从UCD服务器206发送SSOLoginRequest(登入请求)(HTTP请求)以访问服务。该消息包括从UCD服务器206中的用户标识符。该消息还可以包括有效的SSOToken。例如,该消息可以具有以下示例格式:SSOLoginRequest(userldS,SSOToken),其中userIdS是从UCD服务器中的用户标识符,并且SSOToken字段包含SSO令牌。如果SSO令牌为空或无效,则UCD服务器将UCD客户端进行重定向以在允许访问云存储服务之前获得有效的SSO令牌。

2.从UCD服务器206获得主UCD服务器204的地址并且检查该请求是否包括主UCD服务器204所生成的有效认证声明(包括SSOToken)。如果是,则该方法直接进行至步骤6。

3.如果在步骤2中没有找到有效的认证声明,则从UCD服务器206利用具有AuthnRequest(认证请求)的消息HTTP响应(具有状态代码302的HTTP消息)将UCD客户端202重定向到主UCD服务器204。注意到,AuthnRequest可以具有示例格式:AuthnRequest(NameIdentifier,ProviderID)。其中ProviderID字段是主UCD服务器204的URI,并且NameIdentifier字段包括从UCD服务器206中的用户标识符。

在发布认证声明之前,主UCD服务器204如下对终端用户进行认证:

3.1主UCD服务器204对UCD客户端202作出响应以对用户进行认证(具有状态代码401的HTTP消息)。该消息可以包括要用于对用户进行认证的挑战或随机值。

3.2 UCD客户端202对主UCD服务器204进行回复。该消息包括用户认证信息,例如用户凭证的摘要。

3.3主UCD服务器204对用户进行认证。主UCD服务器204利用HTTP消息200OK对UCD客户端202进行回复。

4.主UCD服务器204为用户生成认证声明(包括SSOToken),并且主UCD服务器204利用具有AuthnReponse(认证响应)(包括认证声明)的消息HTTP响应将UCD客户端202重定向到从UCD服务器206。注意到,AuthnReponse可以具有以下示例格式:AuthnResponse(ProviderID,Assertion)。ProviderID字段是主UCD服务器204的URI,并且增加了包括所请求处理的结果以及认证声明的Assertion字段,上述认证声明包括在成功认证之后所生成的SSOToken。

5.仅作为示例,从UCD服务器使用在以上所提到的LibertyBindProf和LibertyProtSchema中所描述的有效性确认来将该认证声明确认有效。可以采用用来将该认证声明确认有效的其它方式。

6.从UCD服务器206利用消息SSOLoginResponse(登入响应)对UCD客户端202进行响应,该消息允许或拒绝对原始所请求资源(例如,云存储)的访问。该消息的示例格式为SSOLoginResponse(Result,SSOToken),其中Result字段是请求处理的结果,并且SSOToken字段在从UCD服务器206从主UCD服务器204得到有效的SSOToken时是可选的。UCD客户端202应当提取SSOToken并且存储SSOToken。

同样在该说明性实施例中,客户端和服务器之间的HTTP消息传输优选地利用传输层安全(TLS)来实施从而保持机密性和消息完整性。

图4示出了根据说明性实施例的在主UCD服务器204所发起的单点登出方法400(注意到,以下所使用的步骤的参考编号1.,1.1,1.2.,...,8.对应于图4中所描绘方法的步骤的编号)。还注意到,这里省略了对从UCD服务器206处所发起的单点登出的过程的描述以简化描述,然而,该过程是明显的并且可以在给定这里针对图4所给出的描述的情况下以直接的方式实现。

方法400如下进行:

1.用户请求登入主UCD服务器204。UCD客户端202发送包括用户身份(例如,主UCD服务器204中的用户账户标识符)的消息UserLoginRequest,其示例格式例如为UserLoginRequest(UserId)。如果用户已经被主UCD服务器204所认证并且保持登入状态,则该方法进行至步骤3。如果否:

1.1主UCD服务器204对UCD客户端202作出响应以对用户进行认证。该消息可以包括将用于对用户进行认证的挑战或随机值。

1.2 UCD客户端202向主UCD服务器204发送请求。该消息包括用户认证信息,例如用户凭证的摘要。

2.主UCD服务器204根据认证信息(例如,主UCD服务器204中的用户账户标识符、用户凭证的摘要)对用户进行认证,并且主UCD服务器204利用如以上图2中所描述的消息UserLoginResponse对UCD202客户端作出回复。

3.UCD客户端202向主UCD服务器204发送消息SingleLogoutRequest(单点登出请求)。该请求消息包括主UCD服务器204中的用户账户标识符、从UCD服务器206中的用户账户标识符,以及有关从UCD服务器206的信息(例如,从UCD服务器地址)。SingleLogoutRequest的示例消息格式如下:SingleLogoutReqest(UserId,ServerId),其中UserId字段是以下之一:(i)UserIdM:在请求从主UCD服务器登出至从UCD服务器时的主UCD服务器中的用户标识符;或者(ii)UserIdS:在请求从从UCD服务器登出至主UCD服务器时的从UCD服务器中的用户标识符。ServerId字段是与UserIdM或UserIdS相关联的主UCD服务器的地址(当SingleLogoutRequest在从UCD服务器发起时)或者从UCD服务器的地址(当SingleLogoutRequest在主UCD服务器发起时)。

4.主UCD服务器204发现终端用户已经利用此主UCD服务器204所发出的SSOToken所登入的所有从UCD服务器(例如,获得(多个)地址)。

5.随后,主UCD服务器204单独将消息LogoutRequest(登出请求)从UCD客户端202重定向到那些从UCD服务器,在该示例中是从UCD服务器206。重定向步骤5.1、5.2和5.3与以上在图2的上下文中所描述的那些相类似。消息LogoutRequest由主UCD服务器204进行签名。该消息包括从UCD服务器206的地址、主UCD服务器204的地址、主UCD服务器204中的用户账户标识符、从UCD服务器206中的用户账户标识符以及主UCD服务器证书。注意到,LogoutRequest消息可以具有以下示例格式:LogoutRequest(NameIdentifier,ProviderID),其中NameIdentifier字段是以下之一:(i)UserIdM:在请求从主UCD服务器登出至从UCD服务器时的主UCD服务器中的用户标识符;或者(ii)UserIdS:在请求从从UCD服务器登出至主UCD服务器时的从UCD服务器中的用户标识符。ProviderID字段是以下之一:(i)ServerIdM:当请求从主UCD服务器登出至从UCD服务器时的主UCD服务器的URI;或者ServerIdS:当请求从从UCD服务器登出至主UCD服务器时的从UCD服务器的URI。

6.从UCD服务器206对该登出请求进行处理。也就是说,从UCD服务器206将主UCD服务器的数字签名确认有效。如果该签名是为首要的当前会话提供认证的主UCD服务器204的签名,则从UCD服务器206使通过<NameIdentifier>要素以及在该消息中所提供的任何SessionIndex要素所引用的(多个)用户会话进行无效。从UCD服务器206将登出请求消息应用于满足某些要求的任意声明,例如(a)声明的SessionIndex与登出请求中所指定的相匹配;和/或(b)声明以其它方式将是有效的,即使该声明是在登出请求之后到达的。

7.从UCD服务器206利用消息LogoutResponse(登出响应)将UCD客户端202重定向到主UCD服务器204。该消息由从UCD服务器206进行数字签名。LogoutResponse消息可以具有以下示例格式:LogoutResponse(ProviderID,Status),其中ProviderID字段具有以下之一:(i)ServerIdM:对从主UCD服务器至从UCD服务器的登出进行响应时的主UCD服务器的URI;或者ServerIdS:对从从UCD服务器至主UCD服务器的登出进行响应时的从UCD服务器的URI。Status字段包括请求处理的结果。

8.在接收到来自每个从UCD服务器206的消息LogoutResponse(以上在步骤4中所描述的)之后,主UCD服务器204向UCD客户端202发送SingleLogoutResponse(单点登出响应),并且确认UCD客户端202从从UCD服务器206被登出。示例消息格式为SingleLogoutResponse(Result),其中Result字段是请求处理的结果。

同样在该说明性实施例中,客户端和服务器之间的HTTP消息传输优选地利用传输层安全(TLS)来实施从而保持机密性和消息完整性。

现在假设用户想要与主UCD服务器执行身份解除联合。图5图示了这样的身份解除联合的方法。注意到,省略了对从从UCD服务器206所发起的身份解除联合的过程的描述从而简化描述,然而,该过程是显然的并且可以在给定这里针对图5所给出的描述的情况下以直接的方式实现。

方法500示出了如下进行描述的从主UCD服务器204所发起的身份解除联合的过程(注意到,以下所使用的步骤的参考编号1.,1.1,1.2.,2.,...,9.对应于图5中所描绘方法的步骤的编号):

1.用户请求登入主UCD服务器204。UCD客户端202发送(如以上所描述的)包括用户身份(例如,主UCD服务器204中的用户账户标识符)的消息UserLoginRequest。如果用户已经被主UCD服务器204所认证并且保持登入状态,则该方法直接进行至步骤3。如果否:

1.1主UCD服务器204对UCD客户端202进行响应以对用户进行认证。该消息可以包括将用于对用户进行认证的挑战或随机值。

1.2 UCD客户端202向主UCD服务器204发送请求。该消息包括用户认证信息,例如用户凭证的摘要。

2.主UCD服务器204根据认证信息(例如,主UCD服务器中的用户账户标识符、用户凭证的摘要)对用户进行认证,并且利用(如以上所描述的)包含从UCD服务器地址列表的消息UserLoginResponse对UCD客户端202进行回复。

3.用户选择所要解除联合的从UCD服务器,即这里假设解除联合请求涉及从UCD服务器206。UCD客户端202向主UCD服务器204发送消息IdentityDefederationRequest(身份解除联合请求)。该请求消息包括主UCD服务器中的用户账户标识符、从UCD服务器中的用户账户标识符,以及有关从UCD服务器的信息(例如,从UCD服务器地址)。

解除联合请求消息的示例格式如下:IdentityDefederationRequest(userIdM,userIdS,serverIdM,serverIdS),其中userIdM是主UCD服务器中的用户标识符,userIdS是从UCD服务器中的用户标识符,serverIdM是向从UCD服务器userIdS请求解除联合时的主UCD服务器的URI,并且serverIdS是向主UCD服务器userIdM请求解除联合时的从UCD服务器的URI。

4.主UCD服务器204获得从UCD服务器206的位置信息。

5.主UCD服务器204将UCD客户端202重定向到从UCD服务器206。这使用消息FederationTerminationNotification(联合终止通知)来实现,其包括从UCD服务器的地址、主UCD服务器的地址、主UCD服务器中的用户账户标识符、从UCD服务器中的用户账户标识符,以及主UCD服务器证书。该消息由主UCD服务器数字签名。

联合终止通知消息的示例格式如下:FederationTerminationNotification(NameIdentifier,ProviderID),其中NameIdentifier字段是以下之一:(i)userIdM:当从主UCD服务器向从UCD服务器请求解除联合时主UCD服务器中的用户标识符;或者(ii)userIdS:当从从UCD服务器向主UCD服务器请求解除联合时从UCD服务器中的用户标识符。ProviderID字段是以下之一:(i)serverIdM:当从主UCD服务器向从UCD服务器请求解除联合时主UCD服务器的URI;或者(ii)serverIdS:当从从UCD服务器向主UCD服务器请求解除联合时从UCD服务器的URI。

从UCD服务器206将主UCD服务器204的数字签名进行确认有效。

在使得联合的信息(例如,主UCD服务器和从UCD服务器之间的用户账户映射)无效之前,从UCD服务器206对用户进行认证从而保证该用户有权进行这样的解除联合。可以采用若干种证机制。一种说明性但非限制性的认证机制如下:

5.1从UCD服务器206对UCD客户端202作出响应以对用户进行认证。该消息可以包括将要用于对用户进行认证的挑战或随机值。

5.2UCD客户端202对从UCD服务器206作出回复。该消息包括用户认证信息,例如用户凭证的摘要。

5.3从UCD服务器206对用户进行认证。从UCD服务器206利用HTTP消息200OK对UCD客户端202进行回复。

6.从UCD服务器206使得用户账户在主UCD服务器204和从UCD服务器206之间的映射无效(并且可以将其移除/删除)。

7.从UCD服务器206将UCD客户端202重定向到主UCD服务器204。该响应消息包括主UCD服务器204处的URI。

8.主UCD服务器使用户账户在主UCD服务器204和从UCD服务器206之间的映射无效(并且可以将其移除/删除)。

9.主UCD服务器204利用消息IdentityDefederationResponse(身份解除联合响应)对UCD客户端202作出响应。该消息的示例格式为IdentityDefederationResponse(Result),其中Result字段是请求处理的结果。

同样在该说明性实施例中,客户端和服务器之间的HTTP消息传输优选地利用传输层安全(TLS)来实施从而保持机密性和消息完整性。

图6示出了根据本发明一个或多个实施例的数据存储系统和方法在其上实施的处理平台。该实施例中的处理平台600包括表示为610、620和630的多个处理设备,它们通过网络640互相通信。如所图示的,处理设备610表示UCD客户端(例如,图2到图5中的UCD客户端202),处理设备620表示主UCD服务器(例如,图2到图5中的主UCD服务器204),并且处理设备630表示从UCD服务器(例如,图2到图5中的从UCD服务器206)。另外的处理设备(并未明确示出)可以是处理平台600的一部分。所要理解的是,UCD架构中的一个或多个元件(UCD客户端和UCD服务器)均可以在一个或多个计算机或其它处理平台元件上运行,它们中的每一个都可以被视为在这里更一般地被称之为“处理设备”的示例。如图6所示,这样的设备一般包括至少一个处理器和相关联的存储器,并且实施一个或多个功能模块以便例示和/或控制这里所描述的系统和方法的特征。多个元件或模块可以由给定实施例中的单个处理设备来实施。

处理平台600中的处理设备610包括耦合至存储器616的处理器614。处理器614可以包括微处理器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它类型的处理电路,以及这样的电路元件的多个部分或组合。如这里所公开的系统的组件能够至少部分以存储在存储器中并且由诸如处理器614的处理器所执行的一个或多个软件程序的形式来实施。其中体现有这样的程序代码的存储器616(或其它存储设备)是这里更一般地被称作非瞬态处理器可读(或计算机可读)存储介质的示例。包括这样的处理器可读存储媒体的制造品被认为是本发明的实施例。给定的这样的制品例如可以包括诸如存储盘、存储阵列或包含存储器的集成电路的存储设备。如这里所使用的术语“制品”应当被理解为排除了瞬态的传播信号。

此外,存储器616可以包括电子存储器,诸如任意组合形式的随机访问存储器(RAM)、只读存储器(ROM)或其它类型的存储器。一个或多个软件程序在由诸如处理设备610的处理设备所执行时促使该设备执行与系统/方法200、300、400和/或500的一个或多个组件/步骤相关联的功能。在给出这里所提供的教导的情况下,本领域技术人员将能够容易实施这样的软件。体现本发明实施例的处理器可读存储介质的其它示例例如可以包括光盘或磁盘。

处理设备610中还包括I/O设备/网络接口电路612。I/O设备包括一个或多个用于向处理设备输入数据的输入设备(例如,键盘、小键盘、鼠标、触摸屏等)以及一个或多个用于提供与处理设备相关联的结果的输出设备(例如,计算机显示器、屏幕、图形用户界面等)。网络接口包括用来将处理设备与网络(例如,640)和其它网络组件(例如,620和630)进行对接的电路。这样的电路可以包括本领域已知类型的常规收发器。

处理平台600中的其它处理设备620(具有I/O设备/网络接口622、处理器624和存储器626)和630(具有I/O设备/网络接口632、处理器634和存储器636)被假设以类似于图中的处理设备610所示出的方式进行配置。

虽然这里以采用特定通信协议的通信网络和系统为背景对某些说明性实施例进行了描述,但是在其它实施例中能够使用其它类型的网络和系统。如以上所提到的,如这里所使用的术语“网络”或“系统”因此意在以宽泛的方式进行理解。另外,应当强调的是,以上所描述的实施例仅是出于说明的目的,而并不应当被解释为以任何方式进行限制。其它实施例可以使用不同类型的网络、系统、设备和模块配置,以及用于实施安全功能的可替换的通信协议、处理步骤和操作。用户设备和网络节点进行通信的特定方式在其它实施例中能够有所变化。而且,应当理解的是,在描述说明性实施例的上下文中所作出的特定假设并不应当被理解为本发明的要求。本发明能够在其中并不应用这些特定假设的其它实施例中实施。所附权利要求范围之内的这些和多种其它可替换实施例对于本领域技术人员将是显然的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1