专利名称:服务提供者访问的制作方法
技术领域:
本发明涉及身份(identity)管理,并且更具体地涉及对身份管理信息的访问。
背景技术:
联合身份管理或身份的“联合”描述了用于实现身份信息跨越另外的自主安全域的可携带性的技术。身份联合的目的是在不需要冗余用户管理的情况下使得一个域的用户能够无缝地且安全地访问另一域的数据或系统。消除每当访问新应用程序或帐户时的重复登录过程的需要能够大大改善用户体验。图1是举例说明身份管理的概念的方框图。图1示出一般用附图标记2指示的系统,包括最终用户4、服务提供者(provider) 6和身份提供者8。当系统2的最终用户4想要访问服务提供者6处的安全资源且服务提供者6要求对用户的身份进行认证时,可以使用身份提供者8来向服务提供者提供所需的认证信息。图2示出一般由附图标记10指示的算法,示出如何能够使用系统2来为最终用户 4提供对由服务提供者6提供的安全服务的访问。算法10在步骤12处开始,在该步骤处,最终用户4向服务提供者6(例如使用web 浏览器)发送请求访问由服务提供者提供的特定应用程序的消息。该服务要求用户证书,在请求中未提供该证书。算法10移动至步骤13,在该步骤处,执行发现过程。发现过程13确定身份提供者 8的位置。接下来,算法10移动至步骤14,在该步骤处,服务提供者使用户重定向至身份提供者8。然后,算法10移动至步骤16,在那里,身份提供者8向服务提供者6提供用户证书数据。响应于接收到用户证书,服务提供者6允许用户访问所请求的服务(步骤18)。算法10的发现步骤(步骤13)涉及确定服务提供者的位置并以能够被传送给用户的形式来提供该信息。服务提供者通常还要求关于与该身份提供者通信所需的协议的信息,包括诸如所要求数据内容和该数据的格式之类的信息。克服对发现过程的需要的一种方法是定义必须使用以便使用服务提供者6的单个身份提供者;然而,这种方法是不灵活的,因为其要求所有用户在该身份提供者有帐户。 一种替换方法是要求用户手动地输入由该用户使用的身份提供者的地址。这对于用户而言是不方便的,并且易受用户错误的影响。
发明内容
本发明设法解决上述问题中的至少某些问题。根据本发明的一方面,提供了一种方法,包括步骤从用户接收对访问服务提供者的请求;通过添加关于能够为用户提供用户证书的身份提供者的位置的数据来修改请求; 以及将经修改的请求转送给服务提供者。位置数据可以是身份提供者的地址的形式。该位置数据可以例如是统一资源定位符(URL)、网际协议(IP)地址、可扩展资源指示符(XRI)、 OpenID身份的形式,或者使得服务提供者能够找到身份提供者的任何其它形式。可以由代理服务器来实施修改用户的请求的步骤。本发明的另一方面提供了一种设备(诸如代理服务器),包括第一输入,其适合于从用户接收服务访问请求;以及第一输出,其适合于向服务提供者发送经修改的服务访问请求,其中,所述设备适合于通过向从所述用户接收到的服务访问请求添加关于能够为用户提供用户证书的身份提供者的位置的数据(例如为诸如http报头之类的报头的形式)来生成所述经修改的服务访问请求。位置数据可以是身份提供者的地址的形式。该位置数据可以例如是统一资源定位符(URL)、网际协议(IP)地址、可扩展资源指示符(XRI)、OpenID 身份的形式,或者使得服务提供者能够发现身份提供者的任何其它形式。本发明的另一方面提供了一种包括服务提供者和代理服务器的系统,其中代理服务器适合于从用户接收服务访问请求;代理服务器适合于通过添加关于能够为用户提供用户证书的身份提供者的位置的数据(常常是地址,诸如统一资源定位符(URL)、网际协议 (IP)地址、可扩展资源指示符(XRI)、OpenlD身份,或使得服务提供者能够找到身份提供者的任何其它形式)来修改请求并将经修改的服务访问请求发送到服务提供者;以及服务提供者适合于出于用户认证的目的使用户重定向至身份提供者。可以将位置数据作为报头来提供,诸如http报头。因此,本发明的某些形式使得服务提供者能够接收关于能够为用户提供用户证书的身份提供者的位置的数据。可以在不要求来自用户的任何输入的情况下执行此步骤。特别地,不要求用户记住并输入用于其身份提供者的位置信息(诸如URL)。因此,可以将依照本发明的方面的服务提供者布置为提供更好的用户体验,因为用户的焦点不需要在服务提供者和身份提供者之间转移。此外,可以将依照本发明的方面的系统配置为使得用户不需要在访问特定服务提供者之前登录到身份提供者,从而进一步改善用户体验。另一优点是根据本发明的方面,不需要在用户的前端处安装任何附加软件或硬件以便使用本发明。例如,具有web浏览器的任何终端能够访问依照本发明的方面适配的代理服务器。在本发明的某些形式中,用户不需要在服务提供者或身份提供者处输入用户证书。这不仅对用户方便,而且通过防止恶意程序根据由用户进行的按键寻找用户证书(所谓的“仿冒(phishing)”攻击)来增加安全性。在本发明的某些形式中,在不要求任何特定用户介入的情况下直接生成经修改的服务访问请求,使得对用户隐藏修改访问服务访问请求的过程。可以响应于用户访问服务提供者的请求来生成经修改的请求。在此类布置中,不要求服务提供者请求用户细节,因为那些细节是被自动添加的。事实上,可以在向服务提供者发送任何信息之前添加用户细节。可替换地,可以响应于服务提供者请求用户授权来生成经修改的请求。举例来说, 可以响应于来自服务提供者的HTTP 401未授权响应来生成经修改的请求。在本发明的某些形式中,可以将被添加到该请求的关于身份提供者的位置的数据作为报头提供,诸如http报头。可以由身份提供者响应于请求来提供关于身份提供者的位置的数据。例如,代理服务器可以请求身份提供者提供适当的数据身份提供者可以返回数据(诸如统一资源定
5位符)以便插入报头中。在本发明的某些形式中,由诸如http代理服务器之类的代理服务器来执行修改步骤。还可以由代理服务器来执行接收和/或转送步骤。在本发明的使用中,用户可以经由代理服务器来配置他用来路由服务请求的浏览器。在本发明的某些形式中,响应于从用户接收到对访问服务提供者的请求的步骤来设置用户身份。可以基于由用户提供的设置(setting)来确定用户身份。例如,用户身份可以是公共身份、私有身份(private identity)或随机身份中的一个。当涉及高度可信任网站时,公共身份(诸如用户的名称)可能是适当的。当涉及不那么可信任网站时,随机身份可能是适当的。根据本发明的一方面,提供了一种方法,包括以下步骤在服务提供者处从用户接收服务请求,该请求包括报头(诸如http报头),其包含关于能够为用户提供证书的身份提供者的位置的数据;从报头获取身份提供者的位置;以及向身份提供者请求用户的证书。 位置数据可以是身份提供者的地址的形式。该位置数据可以例如是统一资源定位符(URL)、 网际协议(IP)地址、可扩展资源指示符(XRI)、0penID身份的形式,或者使得服务提供者能够找到身份提供者的任何其它形式。根据本发明的一方面,提供了一种服务提供者,包括输入,其用于从用户接收服务访问请求,该请求包括关于能够为用户提供证书的身份提供者的位置的数据(诸如地址); 用于从所述报头获取关于身份提供者的位置数据的装置;以及用于向身份提供者请求用户的证书的装置。该位置数据可以例如是统一资源定位符(URL)、网际协议(IP)地址、可扩展资源指示符(XRI)、OpenID身份的形式,或使得服务提供者能够找到身份提供者的任何其它形式。可以将位置数据作为报头提供,诸如http报头。根据本发明的一方面,提供了一种计算机程序产品,包括输入,其适合于从用户接收服务访问请求;以及输出,适合于向服务提供者发送经修改的服务请求,其中,所述计算机程序产品适合于向从所述用户接收到的服务访问请求添加关于能够为用户提供用户证书的身份提供者的位置的数据。所述计算机程序产品可以适合于在不要求服务提供者请求用户证书的情况下响应于用户的请求来修改该请求。可替换地,所述计算机程序产品可以适合于响应于服务提供者请求用户授权来修改请求。所述计算机程序产品可以例如是代理服务器。所述计算机程序产品可以包括身份提供者。本发明的另一方面提供了一种包括为用户提供对服务提供者的访问的请求的数据结构,其中,所述请求包括报头,该报头提供关于能够为用户提供证书的身份提供者的位置的数据。关于身份提供者的位置的数据可以是地址,诸如统一资源定位符(URL)、网际协议(IP)地址、可扩展资源指示符(XRI)、0penID身份的形式,或者使得服务提供者能够找到身份提供者的任何其它形式。所述请求可以采取http请求的形式。
下面参考以下编号附图仅以示例的方式来描述本发明的实施例。图1是举例说明现有技术中的身份管理的使用的方框图; 图2是举例说明图1的布置的已知使用的流程图3是依照本发明的方面的系统的方框图;图4示出依照本发明的方面的消息序列;以及图5示出依照本发明的方面的消息序列。
具体实施例方式
图3是依照本发明的方面的一般用附图标记30指示的系统的方框图。系统30包括用户浏览器32、接入网络34、代理服务器36和服务提供者38。代理服务器36包括http 代理35和身份提供者37。可以在相同的位置处在物理上提供http代理35和身份提供者 37作为代理服务器36的一部分,或者可以使其在物理上分离。此外,可以由相同的公司(诸如电信运营商)或由单独的公司来控制http代理35和身份提供者。为了访问由服务提供者38提供的服务,用户将其浏览器32指向代理服务器36。 经由接入网络34来实现此连接。代理服务器36如下文详细讨论的那样与服务提供者38 通信。经由代理服务器36在服务提供者38与用户的浏览器32之间传输数据。图4示出依照本发明的方面的系统30的元件之间的一般由附图标记40指示的示例性消息序列。首先,用户浏览器32经由接入网络34来设立网际协议(IP)连接(如附图标记39 所指示的)。一旦已经建立了 IP连接,消息序列就从由用户浏览器32向代理服务器36发布的服务访问请求(消息41)开始。例如,消息41可以采取HTTP GET请求的形式,诸如“GET secure—url_on_SP,,。代理服务器36接收服务访问请求41并构造标识身份提供者37的位置的统一资源位置(URL,uniform resource location),在所述位置处能够获得用于用户的证书。URL 可以具有一般形式http://idp. operator, com。可替换地,URL可以具有用户特定形式,诸如http://idp. operator, com/user id,其中,基于由用户设定的偏好来生成用户ID。由代理服务器36生成的URL被作为报头(X-IDP =<identity_provider_ location 插入由代理服务器36从浏览器32接收到的GET请求中。由附图标记42指示的包括新报头的新GET请求被转送到服务提供者38。在接收到经修改的GET请求42时,服务提供者38在步骤44处从由代理服务器36 插入的报头字段中获取身份提供者(IDP)地址。然后可以例如以上文参考图2所述的方式来进行对用户进行认证的过程。因此,在步骤46处,服务提供者38向代理服务器36请求用于用户的认证细节。 该请求被例如依照关于重定向的HTTP标准路由到在报头中给定的URL (即到身份提供者 37)。响应于对认证细节的请求,身份提供者37例如以安全断言标记语言(SAML,Security Assertion Markup Language)断言的形式来提供用户证书(步骤48)。接下来,服务提供者允许代理服务器36访问服务(步骤50)且代理服务器将这些细节转送至浏览器32 (步骤 52)。然后,用户能够使用浏览器来访问由服务提供者38提供的服务。形成代理服务器36的http代理35和身份提供者37能够以多种方式合作。例如,http代理35可以让身份提供者37提供用于插入http报头中的URL。然后,身份提供者37可以抓住机会生成使得身份提供者能够以简单的方式查找用户的URL。另外,如果身份提供者37由多个分布式机器组成,则可以选择URL,使得其指向最小负载机器。
如上文所讨论的,代理服务器36响应于从浏览器32接收到服务访问请求41来生成用户ID。基于用户偏好来确定用户ID。例如,用户ID可以是公共身份、持久性身份或随机身份。公共身份是直接与用户相关联的身份。公共身份的示例是用户的真实姓名(例如 John Smith先生)、其通讯地址、社会保险号等。通常,用户将仅在访问诸如在线银行的高度可信任和安全网站时使用公共身份。持久性身份是与用户相关联的固定字符串(例如“CleVer_bOy_007”)。在某些情况下,用户可能希望在其每次访问特定服务时使用相同的身份。这样,可以为该用户身份积累信誉。当然,可以使用公共身份,但是如果用户不希望这样做(出于安全原因,或出于保密原因),可以替代地使用持久性身份。随机身份是每当用户访问服务时被修改的字符串。例如,当用户第一次访问特定娱乐网站时,代理36可以生成用户ID “anonymouS_1234”。当用户访问不同的网站或重新访问相同的网站时,代理36可以生成新的用户ID,诸如“anonymouS_5678”。使用随机身份更加安全,因为更加难以识别用户的真实身份。此外,使用随机ID防止网站能够跟踪单独用户的活动。在随机、持久性和公共用户ID之间进行选择的主要目的是允许用户选择适当的隐私水平。可以根据被访问的服务的名称或性质来选择要使用的ID的类型。此外,用户将能够通过访问运营商的客户服务网页来修改用户偏好。在上文参考图4所述的协议中,由代理服务器36在第一次寻求访问服务提供者38 时插入新HTTP报头X-IDP = <identity_provider_location>0这不是必不可少的。图5示出依照本发明的方面的用户浏览器32、接入网络34、代理服务器36和服务提供者38之间的一般由附图标记60指示的示例性消息序列。如前所述,消息序列从用户浏览器经由接入网络34来建立网际协议(IP)连接开始,如附图标记39所指示的。一旦已经建立了 IP连接,消息序列就从由用户浏览器32向代理服务器36发布的服务访问请求(消息41)开始。如上文参考图4所述,消息41可以采取HTTP GET请求的形式,诸如 “GET secure_url_on_SP"0代理服务器36接收服务访问请求并作为响应将GET请求转送到服务提供者38(消息62)。与在上述消息序列40中不同,消息62未被代理服务器36修改(在此阶段)。GET请求被服务提供者38接收到。由于GET请求不包括所需用户证书,所以服务提供者38返回指示该用户未被授权的消息64。在图5的示例中,消息64采取HTTP 401未授权响应的形式。响应于未授权消息64,代理服务器36基于由用户设定的偏好来生成用户ID。例如,根据由用户指定的偏好,用户ID可以是随机的、持久性的和/或公共的。在这时生成用户ID不是必不可少的;然而,由于在接收到HTTP 401未授权消息之前不要求用户ID,所以为了减少代理服务器上的负担,等待直至此时间以生成用户ID是方便的。接下来,代理服务器36为用户构造URL:例如,URL可以具有一般形式http// idp. operator, com 或个人特定形式,诸负口 http://idp. operator, com/user id。由代理月艮务器生成的URL被作为报头(X-IDP = <identity_provider_location>)插入经修改的GET请求中。包括新报头的由附图标记66指示的经修改的GET请求被转送到服务提供者38。在接收到经修改的GET请求66时,服务提供者38在步骤44处以与上文所述相同的方式从由代理服务器36在先前步骤中插入的报头字段中获取IDP地址。然后可以例如以上文参考图4所述的方式来进行对用户进行认证的过程。因此,在步骤46处,服务提供者38向身份提供者/代理服务器36请求用于用户的认证细节。该请求被路由到在报头中给定的URL。响应于认证请求,身份提供者提供用户证书(步骤48)。接下来,服务提供 者允许代理服务器36访问该服务(步骤50)且代理服务器将这些细节转送至浏览器32 (步骤52)。然后,用户能够使用浏览器来访问由服务提供者38提供的服务。在上述布置中,代理服务器36为用户构造统一资源位置(URL)并将该URL发送到服务提供者。在本发明的替换实施例中,由身份提供者37来生成URL且http代理35向身份提供者37发送询问以便获得该URL,使得其能够被转送到服务提供者38。本发明的上述实施例包括在报头中包括URL,其中,该URL标识身份提供者的位置。这不是必不可少的。该报头可以包含使得服务提供者能够对身份提供者进行定位的任何信息。示例包括但不限于IP地址、可扩展资源标识符(XRI)和OpenID标识符。在上述实施例中,用户经由接入网络34使用浏览器32来与代理服务器36通信。 接入网络的提供不是必不可少的。使得用户能够与代理服务器通信并使得代理服务器能够与服务提供者通信的任何布置是足够的。例如,可以在用户终端处提供代理服务器。上文已经使用http作为示例性协议描述了本发明。这不是必不可少的。可以由利用不同协议的代理来取代http代理35。例如,可以使用能够转送数据分组的任何协议来代替http。上文所述的本发明的实施例是说明性而不是限制性的。对于本领域的技术人员来说将显而易见的是在不脱离本发明的一般范围的情况下上述设备和方法可以结合许多修改。意图在本发明的范围内包括所有此类修改,只要其落在所附权利要求的范围内。
权利要求
1.一种方法,包括以下步骤从用户接收对访问服务提供者的请求;通过添加关于能够为用户提供用户证书的身份提供者的位置的数据来修改所述请求;以及将经修改的请求转送到服务提供者。
2.如权利要求1所述的方法,其中,响应于用户对访问服务提供者的请求来执行修改所述请求的步骤。
3.如权利要求1所述的方法,其中,响应于服务提供者请求用户授权来执行修改所述请求的步骤。
4.如权利要求1至3中的任一项所述的方法,其中,被添加到请求的关于身份提供者的位置的数据被作为报头提供。
5.如任何前述权利要求所述的方法,其中,被添加到请求的关于身份提供者的位置的数据被作为统一资源定位符提供。
6.如任何前述权利要求所述的方法,其中,由身份提供者响应于请求来提供关于身份提供者的位置的数据。
7.如任何前述权利要求所述的方法,其中,由代理服务器来执行修改步骤。
8.如任何前述权利要求所述的方法,还包括响应于从用户接收到对访问服务提供者的请求来设置用户身份的步骤。
9.如权利要求8所述的方法,其中,基于由用户提供的设置来确定用户身份。
10.一种方法,包括以下步骤在服务提供者处从用户接收服务请求,该请求包括报头,该报头包含关于能够为用户提供证书的身份提供者的位置的数据;从所述报头获取关于身份提供者的位置的数据;以及向身份提供者请求用户的证书。
11.一种设备,包括第一输入,适合于从用户接收服务访问请求;以及第一输出,适合于向服务提供者发送经修改的服务访问请求,其中,所述设备适合于通过向从所述用户接收到的服务访问请求添加关于能够为用户提供用户证书的身份提供者的位置的数据来生成所述经修改的服务访问请求。
12.如权利要求11所述的设备,其中,所述设备适合于在从所述用户接收到服务访问请求时添加关于身份提供者的位置的所述数据。
13.如权利要求11所述的设备,还包括适合于从所述服务提供者接收信号的第二输入,其中,所述设备适合于响应于服务提供者请求用户授权来添加关于身份提供者的位置的所述数据。
14.如权利要求11至13中的任一项所述的设备,其中,关于身份提供者的位置的数据被作为报头提供。
15.如权利要求11至14中的任一项所述的设备,其中,所述设备是代理服务器。
16.如权利要求11至15中的任一项所述的设备,还包括身份提供者。
17.—种包括服务提供者和代理服务器的系统,其中所述代理服务器适合于从用户接收服务访问请求;所述代理服务器适合于通过添加关于能够为用户提供用户证书的身份提供者的位置的数据来修改所述请求并将经修改的服务访问请求发送到服务提供者;所述服务提供者适合于出于用户认证的目的使用户重定向至身份提供者。
18.一种计算机程序产品,包括输入,适合于从用户接收服务访问请求;以及输出,适合于向服务提供者发送经修改的服务访问请求,其中, 所述计算机程序产品适合于向从所述用户接收到的服务访问请求添加关于能够为用户提供用户证书的身份提供者的位置的数据。
19.一种数据结构,包括为用户提供对服务提供者的访问的请求,其中,所述请求包括报头,该报头提供关于能够为用户提供证书的身份提供者的位置的数据。
20.如权利要求19所述的数据结构,其中,关于身份提供者的位置的所述数据是统一资源定位符。
全文摘要
描述了一种用于使得用户能够访问服务提供者的方法和设备。用户从浏览器向代理服务器发送请求。代理服务器通过添加关于能够为用户提供用户证书的身份提供者的位置的数据(诸如URL)来修改请求并将经修改的请求转送至服务提供者。访问请求的修改可以在请求被发送到服务提供者之前或响应于来自服务提供者的认证请求而发生。可以将关于身份提供者的位置的数据作为报头(例如http报头)来提供。
文档编号H04L29/06GK102171984SQ200880131426
公开日2011年8月31日 申请日期2008年10月6日 优先权日2008年10月6日
发明者刘进 申请人:诺基亚西门子通信公司