用于提供认证会话共享的方法和装置的制作方法

文档序号:7848200阅读:145来源:国知局
专利名称:用于提供认证会话共享的方法和装置的制作方法
用于提供认证会话共享的方法和装置
背景技术
网络服务提供商和设备制造商面临的持续挑战是,例如通过提供有吸引力的网络服务来为客户传递价值、便利和安全。应注意的是,在用户设备上提供的应用的数量和种类持续地增长。例如,现代用户设备可包括使用户能够访问由不同应用服务器提供的网络服务的多种应用(例如,浏览器、客户端应用等)。对这些服务器的访问便利和安全是服务提供商每天面对的重要挑战。因此,在一个实施方式中,可以使用认证服务器来为访问应用服务器的这种应用提供安全。传统地,不共享浏览器应用和不同客户端应用之间的认证信息,因此,可能会浪费网络资源并且当对从同一设备访问不同应用重复认证过程时可能会降低用户体验。

发明内容
因此,存在对一种用于在不同应用(例如但不限于,浏览器和运行时环境)之间提供认证会话共享的方法的需要。根据一个实施方式,一种方法,包括在接口处接收与第一服务相关联的认证上下文。所述方法还包括至少部分促使在与接口相关联的第一缓存中存储认证上下文。所述方法进一步包括至少部分促使将认证上下文填充到第二缓存中。第二缓存与第二服务相关联并且第二缓存不直接链接到接口。第二缓存中的认证上下文认证对第二服务的访问。根据另一实施方式,一种装置,包括至少一个处理器,以及至少一个包括计算机程序代码的存储器,所述至少一个存储器和计算机程序代码被配置为,利用所述至少一个处理器至少部分促使所述装置,接收与第一服务相关联的认证上下文。还促使所述装置,至少部分促使在与所述装置相关联的第一缓存中存储认证上下文。进一步促使所述装置,至少部分促使将认证上下文填充到第二缓存。第二缓存与第二服务相关联并且第二缓存不直接链接到所述装置。第二缓存中的认证上下文认证对第二服务的访问。根据另一实施方式,一种携带一个或多个指令的一个或多个序列的计算机可读存储媒介,当由一个或多个处理器执行时,至少部分促使装置接收与第一服务相关联的认证上下文。还促使所述装置,至少部分促使在与所述装置相关联的第一缓存中存储认证上下文。进一步促使所述装置,至少部分地促使将认证上下文填充到第二缓存。第二缓存与第二服务相关联并且第二缓存不直接链接到所述装置。第二缓存中的认证上下文认证对第二服务的访问。根据另一实施方式,一种装置,包括用于与第一服务相关联的认证上下文的部件。所述装置还包括用于至少部分促使在与所述装置相关联的第一缓存中存储认证上下文。所述装置进一步包括用于至少部分促使将认证上下文填充到第二缓存的部件。第二缓存与第二服务相关联并且第二缓存不直接链接到所述装置。第二缓存中的认证上下文认证对第二服务的访问。对于本发明的各种示例实施方式,下面的内容是可应用的一种方法包括促进以下内容的处理和/或处理以下内容(I)数据和/或(2)信息和/或(3)至少一个信号;(I)数据和/或(2 )信息和/或(3 )至少一个信号至少部分基于(或至少部分从下面内容得到):与本发明的任意实施方式相关的本申请中所公开的方法(或过程)中的任意一个或任意组合。对于本发明的各种示例实施方式,下面的内容是可应用的一种方法,包括促进访问至少一个接口,所述接口被配置为允许访问至少一个服务,所述至少一个服务被配置为执行本申请中公开的网络或服务提供商方法(或过程)的任意一个或任意组合。对于本发明的各种示例实施方式,下面的内容是可应用的一种方法,包括促进创建和/或促进修改(I)至少一个设备用户接口元件和/或(2)至少一个设备用户接口功能;所述(I)至少一个设备用户接口元件和/或(2)至少一个设备用户接口功能至少部分基于以下内容从与本发明的任意实施方式相关的本申请中所公开的方法或过程中的一个
或任意组合获得的数据和/或信息,和/或从与本发明的任意实施方式相关的本申请中所公开的方法(或过程)中的一个或任意组合获得的至少一个信号。对于本发明的各种示例实施方式,下面的内容是可应用的一种方法,包括创建和/或修改(I)至少一个设备用户接口元件和/或(2)至少一个设备用户接口功能;所述(I)至少一个设备用户接口元件和/或(2)至少一个设备用户接口功能至少部分基于以下内容从与本发明的任意实施方式相关的本申请所公开的方法(或过程)中的一个或任意组合获得的数据和/或信息,和/或从与本发明的任意实施方式相关的本申请所公开的方法(或过程)中的一个或任意组合获得的至少一个信号。在各种示例实施方式中,可以在服务提供商侧或在移动设备侧或在具有在两侧执行的动作的服务提供商和移动设备之间的任意共享方式中完成所述方法(或过程)。通过下面的详细描述,简单地通过说明多个特定的实施方式和实现方式,包括用于执行本发明所预期的最佳模式,容易了解本发明的其它方面、特点和优势。在全部不偏离本发明的精神和范围的情况下,本发明还能够具有其它和不同的实施方式,并且可在各种明显的方面对其几个细节进行修改。因此,应当认为附图和说明本质上是解释性的,不是限制性的。


通过示例的方式且不是通过限制的方式,结合附图中的图来解释本发明的实施方式,其中图I是根据一个实施方式的能够提供平台以共享认证会话信息的系统的示意图;图2是根据一个实施方式的设备使能器(enabler)的组件的示意图;图3是根据一个实施方式的用于在不同应用之间共享认证会话信息(例如认证上下文)的过程的流程图;图4A和4B是示例了根据各种实施方式的用于提供平台以共享认证会话信息的消息和过程的序列的时序图;图5是根据一个实施方式的用于提供与认证证书相关的数据的示例用户接口的示意图;图6是可以用于实现本发明的实施方式的硬件示意图;图7是可以用于实现本发明的实施方式的芯片集的示意图;以及
图8是可以用于实现本发明的实施方式的移动终端(例如,手持机)的示意图。
具体实施例方式公开了用于在浏览器和运行时环境之间提供认证会话共享的方法、装置和计算机程序的实施例。在下面的说明中,出于解释的目的,详述大量具体细节以提供对本发明实施方式的完全理解。然而,所属领域技术人员容易了解的是,在没有这些具体细节或具有等价安排的情况下,可以实现本发明的实施方式。在其他情况中,在框图格式中示出已知的结构和设备,从而避免不必要地使本发明的实施方式模糊不清。如此处所使用的,术语网络资源指通过到网络的连接可使用的任意服务或数据结构或通信链路。单点登录(SSO,single sign-on)过程指在连接到网络的一个会话期间,在没有用户识别或认证信息的用户冗余条目的情况下,使用户能够访问来自单个提供商的多个网络资源的单个提供商的任意过程。通常由统一资源标识(URI)命名系统(例如,与统一资源定位符(URL)命名系统一起使用的)中的单个网络域名来识别单个提供商。然而,还可以考虑的是,SSO过程可以扩展到在多个网络域上提供的服务。示例的单点登录过程是用于芬兰埃斯波的NOKIA CORPORATION (诺基亚公司)的0VI 系统的单点登录过程。访问 提供商是准许用于用户设备(例如,下面介绍的,UE 101)的访问以访问网络(例如,下面介绍的,通信网络105)网络服务提供商。图I是根据一个实施方式的能够提供认证会话共享的系统的示意图。可以在用户设备上执行应用(例如,但不限于,在运行时环境中执行的应用(例如,Java运行时、Web运行时等)、浏览器等),从而能够访问由应用服务器提供的服务。如之前所注意的,这些客户端应用的数量和种类持续地增加;并且通过客户端应用访问移动服务器的安全和便利是服务提供商面对的重要挑战。传统地,对于访问应用服务器的每个客户端应用(例如,浏览器或客户端应用),客户端应用(和/或客户端应用的用户)需要将其自身向认证服务器进行认证,从而接收认证上下文。由客户端应用进一步使用认证上下文,以访问服务器应用。然而,传统地,这种认证上下文在不同类型的客户端应用间是不共享的。因此,每个客户端应用类型执行其自己的认证过程,以访问应用服务器,例如,甚至当访问相同的服务器或当应用服务器提供相关服务时。通过促使在参与的应用服务器和认证服务器上潜在的高业务负载,由此降低用户体验,这样会浪费网络资源。例如,历史上,认证上下文在运行时环境中运行的应用和诸如浏览器的客户端应用间是不共享的。因此,即使运行时客户端应用已经得到认证并且认证上下文存在,当用户使用浏览器来访问相同的或相关的应用服务器(例如,web服务器)时,用户和/或浏览器执行另一认证过程以获取浏览器专用的认证上下文。这种重复的认证可能导致在参与的认证服务器上潜在的高业务负载。为了解决这些问题,图I的系统100可以有利地提供平台以在不同应用(例如在运行时环境中运行的客户端应用和诸如浏览器的客户端应用)之间共享认证会话信息,例如,认证上下文。如此处使用的,术语“认证上下文”可以包括(1)与用户、客户端、客户等的初始识别机制相关的信息;(2)与认证机制或方法(例如,密码、一次性密码、cookie、有限使用密钥、秘密密钥、客户密钥、访问令牌等)相关的信息;(3)与证书(例如,密码规则、智能车)的存储和保护相关的信息等。根据图I的实施方式,用户设备(UE) 101可以通过例如通信网络105与多个网络资源进行通信,网络资源包括应用服务器103a-130n(此后统称为应用服务器103)。在一个实施例中,为了访问应用服务器103,可以使用认证服务器107来识别、认证和/或验证UE101、UE 101的用户、与UE 101相关联的客户端应用、浏览器等。UE 101可以包括诸如设备使能器(DE)109的接口,其可提供平台以在例如客户端应用Illa-Illm (此后统称为客户端应用111)和浏览器113之间共享认证会话信息,例如认证上下文。根据实施方式,当客户端应用111中的一个通过DE 109向认证服务器107进行认证时,例如,可以在DE 109处可接收认证上下文,并且然后例如可以在缓存和/或与DE 109相关联的认证数据库117处缓存和/或存储认证上下文。DE 109可以有利地促使将来自例如缓存和/或与DE 109相关联的认证数据库117的认证上下文填充到另一缓存和/或数据库,例如数据库115,其中所述数据库不直接链接到DE 109。根据一个实施方式,这种方法可以是推方法(push method),其中在没有来自数据库115或与数据库115相关联的应用(例如,浏览器113)的特定请求的情况下,将来自认证数据库117的认证上下文传送到数据库115,或促使将将来自认证数据库117的认证上下文传送到数据库115。在本实例中,浏览器113可使用来自缓存和/或 数据库115的填充的认证上下文,以在不需要进一步认证的情况下访问应用服务器103。根据特定实施方式,客户端应用111中的一个,例如客户端应用111a,想要访问应用服务器103。可以实现为如图7所示的以及下面介绍的芯片集的接口,例如DE模块109,利用或不利用一个或多个计算机程序指令,可以从客户端应用Illa接收认证请求。可以使用认证请求来认证客户端应用11 la、客户端应用Illa的用户,或其组合。在一个实施例中,DE 109确定是否已经认证了客户端应用111a、客户端应用Illa的用户或其组合,以通过通信网络105在当前会话中访问所请求的应用服务器103。如果DE109确定认证是必要的(例如,如果用户还没有通过认证),那么生成用户接口(UI)并且提示客户端应用Illa的用户进行输入,其中使用所述输入来识别和认证所述用户。在一个实施方式中,确定认证是必要的可以基于用于客户端应用Illa和/或客户端应用Illa的用户的认证上下文的缺少、过期的认证上下文等。在一个实施方式中,DE 109可发起n以提示用户进行用户认证和/或识别输入。可替换地或附加地,认证服务器107可以发起UI。接口 DE 109可以接收用户输入,可能包括但不限于用户证书。用户证书可包括用户名、密码、生物识别、一次性密码、网络地址过滤等。然而,值得考虑的是,可以使用其他认证和/或识别方案。DE 109生成用于客户端应用Illa和/或客户端应用Illa的用户的认证请求,并且将认证请求传递给认证服务器107。认证服务器107确定是否可以至少部分基于诸如用户证书的用户输入来对客户端应用Illa和/或客户端应用Illa的用户进行认证。如果认证失败,那么认证服务器107将失败的认证通知给DE109,并且DE 109将认证结果返回给客户端应用111a。然而,如果认证成功(例如,用户证书是有效的),那么认证服务器107生成有效的认证上下文并将有效的认证上下文返回给DE 109。在一个实施例中,认证服务器107通过将接收的用户证书和在与认证服务器107相关联的数据库(未示出)中存储的用户证书进行比较,来确定认证的成功。然而,可以设想的是,可以使用其他认证方案和协议来对客户端应用Illa和/或客户端应用的用户进行认证。当DE 109接收有效的认证上下文时,如果是成功的认证,DE 109通知客户端应用Illa认证已经成功。此外,DE 109可以在缓存和/或数据库中缓存和/或存储接收的认证上下文,其中数据库例如是与DE 109相关联的认证数据库117。因此,如果与DE 109相关联的其他客户端应用(例如,客户端应用111)请求来自DE 109的认证,那么DE 109可以检查所存储的认证上下文的存在和有效性,并且可以将认证响应发送到请求客户端应用,而不会进一步联系认证服务器107。此外,DE 109可有利地促使将认证数据库117中缓存的和/或存储的认证上下文填充到另一缓存和/或数据库中,其中数据库(例如,数据库115)不与DE 109直接链接和/或数据库不使用DE 109。在一个实施方式中,这种对认证上下文的填充提供用于在使用DE 109的应用和不使用DE 109的应用(例如,浏览器113)之间共享认证会话信息的平台。因此,如果浏览器113想要访问应用服务器103,浏览器113可使用例如数据库115中的填充的认证上下文将其自身(和/或其用户)向应用服务器113进行认证。通过示例的方式,数据库1115可以是浏览器113可访问的cookie存储。按这种方式,由于认证上下文在cookie存储中将已经是可获得的,浏览器113不需要执行附加的认证。此外,浏览器113(或其他相似的客户端应用)不需要知道来自DE 109的认证上下文的传输或填充。替代地,浏览器113仅需要检查cookie存储或缓存中认证上下文的存在,其中在cookie存储或缓 存中通常存储这种认证上下文。在一个实例中,在数据库115和117之间填充认证上下文可包括将认证上下文从认证数据库117拷贝到数据库115。附加地或可替换地,填充认证上下文可包括,至少部分基于与例如浏览器113相关联的认证协议将接收的用于客户端应用Illa的认证上下文转换为另一认证上下文,并且在缓存和/或数据库115中缓存和/或存储转换的认证上下文。在一个实例中,接收的用于客户端应用Illa的认证上下文可包括令牌,并且在缓存和/或数据库115中填充认证上下文可包括将认证上下文转换为与浏览器113相关联的加密cookie。cookie (例如浏览器cookie或超文本传输协议(HTTP) cookie)通常是由例如web浏览器或其他应用在用户设备上存储的一小片文本。cookie包括一个或多个名称-值对,所述名称-值对包含有限比特的信息,例如用户偏好、购物车内容、用于基于服务器的会话的标识符或网站和应用服务器103使用的其他数据。在一个实施方式中,客户端应用111可包括运行在运行时环境上的应用,所述运行时环境例如是Java运行时、Web运行时(WRT)等。同样,尽管通过参照将不直接链接到DE109的浏览器113作为客户端应用来解释各种实施方式,可以考虑的是,可以使用不直接使用DE 109的其他客户端应用(例如,其他本地客户端应用)。同样,通过实例的方式,认证服务器107可包括是单点登录(SSO)认证服务器。单点登录是使用户能够进行一次认证并且获得对多个软件、应用、服务器等资源的访问的认证过程,而不会在每个资源处提示再次对自身进行认证。因此,例如如上所述,当客户端应用(例如客户端应用111和/或浏览器113中的一个)和/或客户端应用的用户向应用服务器107进行认证以访问应用服务器103中的一个时,客户端应用(和/或用户)可以在连接到网络的一个会话期间访问其他应用服务器(其由单点登录方案来支持),例如没有用户认证或认证信息的用户的冗余条目。根据本实施例,可以将接口 DE 109实现为SSO认证使能器,从而有利地在UE 101的不同客户端应用(例如,客户端应用111和/或浏览器113)之间共享认证会话信息。如上所述,当接口 DE 109从客户端应用111中的一个(例如,客户端应用Illb)接收认证请求时,DE 109确定是否已经为客户端应用111执行了认证过程。例如,DE 109确定认证上下文是否已经存在、是否还未到期,或对用于认证其他客户端应用111是否是有效的。如果DE 109确定已经执行了认证过程,那么DE 109将认证过程的结果通知给看过的应用111b。例如,DE 109生成和发起消息到客户端应用Illb的传输,以将认证尝试的成功或失败通知给客户端应用111b。如果DE 109确定认证上下文存在(并且例如,没有过期),例如,从缓存和/或认证数据库117获取认证上下文并且将认证上下文返回给客户端应用111b。因此,接口 DE 109通过缓存和/或存储认证上下文以及为请求客户端应用获取所述认证上下文,实现单点登录功能。客户端应用Illb可以使用所获取的认证上下文来连接到例如应用服务器103a。在一个实例中,从客户端应用Illb到应用服务器103a的连接请求可以包括所获取的认证上下文。应用服务器103a可使用认证服务器107来验证认证上下文并且允许客户端应用Illb的访问(如果认证上下文得到验证)。在一个实施方式中,认证上下文的验证可以包括从应用服务器103a到认证服务器107的验证消息(例如,包括认证上下文),在认证服务器107处的认证上下文的验证(例如,通过将接收的认证上下文与存储的认证上下文进行比较),以及从认证服务器107到应用服务器103a的指示验证结果的验证消息。在一个实施方式中,在客户端应用111已经通过验证之后(例如,接收到有效认证 上下文),可以将接收到的认证上下文缓存到例如数据库117中,其具有到DE 109的直接链路。DE 109于是可以将认证上下文填充到数据库115中,其中浏览器113可以直接访问数据库115。将认证上下文从数据库117到数据库115的这种填充有利地使DE 109能够与诸如浏览器113的另一应用共享认证上下文(例如,SSO认证上下文),其中另一应用不具有经由DE 109到认证上下文的直接链路。在这种方式中,系统100通过实现用于访问之前认证的服务器(例如,应用服务器103)的不同客户端应用111之间的认证上下文的共享,还有利地降低UE 101和/或通信网络105的计算资源、网络资源(例如带宽)、功率资源等的使用。例如,浏览器113可能希望访问一个或多个应用服务器103 (例如,应用服务器103a)。在本实施例中,浏览器113生成并发起访问请求到应用服务器103a的传输。由于客户端应用111已经通过认证,已经接收和缓存和/或存储了认证上下文,并且例如在缓存和/或数据库115中存在用于浏览器113的填充的认证上下文。因此,可以在不同的客户端应用之间共享认证会话信息,并且不需要例如用于其他认证的用户证书的其他条目。如上所述,填充的认证上下文可以是认证上下文、转换了版本的认证上下文等的拷贝。通过实例的方式,接收访问请求的应用服务器103a还可以生成且发起验证请求的传输,以验证接收到的所填充的认证上下文。将验证请求发送到认证服务器107。认证服务器107例如通过将认证上下文与所存储的认证上下文进行比较来验证认证上下文的正确性。认证服务器107至少部分基于所填充的认证上下文的验证,生成并发起验证响应的传输。如果认证上下文是有效的,那么批准访问请求。根据某些实施方式,DE 109还可以确定认证上下文是否存储在与浏览器113相关联的缓存和/或数据库(例如数据库115)中或是否在与浏览器113相关联的缓存和/或数据库(例如数据库115)中可获得。如果在数据库115中可获得所述认证,那么DE 109可获取认证上下文,以在与客户端应用111相关联的缓存和/或数据库(例如,认证数据库117)中填充认证上下文。在一个实施方式中,这种过程可以被称为用于将认证上下文填充到数据库117的拉方法(pull method)。
在另一实例中,浏览器113可能希望访问一个或多个应用服务器103 (例如,应用服务器103a)。如果浏览器113、浏览器113的用户、UE 10UUE 101的用户或其组合还没有被认证对应用服务器103(例如,在与浏览器113相关联的数据库115中没有存储有效的认证上下文)进行访问,浏览器113可能被引至用于认证的认证服务器107。在一个实施方式中,浏览器113例如从认证服务器107接收对用户证书的请求,并且作为响应,将用户证书发送给认证服务器107。在本实例中,认证服务器107可通过例如所提供的证书与所存储的证书进行比较来确定用 户证书的有效性。考虑的是,可以实现任意其他认证机制,以确保仅经过授权的用户能够访问应用服务器103。如果浏览器113、浏览器113的用户、UE 101、UE 101的用户或其组合经过认证,那么认证服务器107能够生成并传送认证上下文到浏览器113。然后,浏览器113可以在浏览器113的数据库115中存储所接收的认证上下文。可以使用缓存的认证上下文为浏览器113对应用服务器103的其他访问请求进行认证。在某些实施方式中,DE 109还可以将数据库115中存储的由浏览器113能够直接访问的认证上下文填充到与客户端应用111相关联的缓存和/或数据库(例如数据库117)中。在一个实施方式中,DE 109可以确定与浏览器113相关联的认证上下文是否可以获得并且可以将认证上下文填充到认证数据库117,以由客户端应用111来使用。更具体地,浏览器113、浏览器113的用户、UE IOU UE 101的用户或其组合的认证可以通过DE 109,因此,DE 109可以确定用于浏览器113的认证上下文的存在。将认证上下文从数据库115到浏览器113的这种填充有利地使DE 109能够与其他应用共享认证上下文(例如,SSO认证上下文),其他应用例如是不具有到数据库115的直接链路的客户端应用111。如上所述,在一个实例中,在数据库115和117之间填充认证上下文可以包括将认证上下文从认证数据库115拷贝到数据库117。附加地或可替换地,填充认证上下文可以包括至少部分地基于与例如客户端应用111相关联的认证协议,将接收的用于浏览器113的认证上下文转换为另一认证上下文,并且将所转换的认证上下文缓存和/或存储在认证缓存和/或数据库117中。在一个实施方式中,为浏览器113生成的认证上下文可以是基于cookie的认证上下文(例如,但不限于,加密的cookie)。在一个实例中,将认证上下文从数据库115填充到认证数据库117可以包括将基于cookie的认证上下文转换为基于令牌的认证上下文。如之前所讨论的,实现平台从而在例如客户端应用111和浏览器113之间共享认证上下文,通过降低由客户端应用111和浏览器113生成的目的地是认证服务器107的认证请求的数量,可以有利地降低认证服务器107上的通信负载。通过示例的方式,系统100的通信网络105包括一个或多个网络,例如数据网络(没有示出)、无线网络(没有示出)、电话网络(没有示出)或其任意组合。可以预期的是,数据网络可以是任意的局域网(LAN)、城域网(MAN)、广域网(WAN)、公共数据网(例如,因特网)、短距离无线网络或任何其它合适的分组交换网络,例如商业所有的专有分组交换网络,例如专有电缆或光纤网络等,或其任意组合。此外,例如,无线网络可以是蜂窝网络,并可以使用各种技术,包括增强数据速率全球演进(EDGE)、通用分组无线服务(GPRS)、全球移动通信系统(GSM)、因特网协议多媒体子系统GMS)、通用移动通信系统(UMTS)等,以及任何其它合适的无线介质,例如全球微波互连访问(WiMAX)、长期演进(LTE)网络、码分多址(CDMA)、宽带码分多址(WCDMA)、无线保真(WiFi )、无线局域网(WLAN)、蓝牙 、因特网协议(IP)数据广播、卫星、移动ad-hoc网络(MANET)等,或其任意组合。UE 101是任意类型的移动终端、固定终端、或便携式终端,包括移动手持机、站、单元、设备、多媒体计算机、多媒体输入板、因特网节点、发报器、桌上型计算机、膝上型计算机、个人数字助理(PDA)、音频/视频播放器、数字照相机/摄像机、定点设备、电视接收机、无线电广播接收机、电子书设备、游戏设备或其任意组合。还可预期的是,UE 101可对用户支持任意类型的接口(例如,“可佩戴”电路等)。通过示例的方式,UE 101、应用服务器103a_103n以及认证服务器107使用公知的、新的或仍在开发中的协议相互通信并与通信网络105的其它组件进行通信。在该情况中,协议包括定义通信网络105中的网络节点如何基于通过通信链路发送的信息相互交互的规则集。该协议在每个节点中的不同操作层上是有效的,从产生和接收各种类型的物理 信号,到选择用于传送这些信号的链路,到由这些信号指示的信号格式,到识别计算机系统上执行的哪个软件应用发送或接收信息。在开放系统互连(OSI)参考模型中概念性地描述了用于在网络上交换信息的协议的不同层。网络节点之间的通信典型地受到交换离散数据分组的影响。每个分组典型地包括
(I)与特定协议相关的报头信息,和(2)跟随报头信息并包含可独立于该特定协议进行处理的信息的有效载荷信息。在一些协议中,分组包括(3)跟随有效载荷并指示有效载荷信息的结束的报尾(trailer)信息。报头包括诸如分组源、其目的地、有效载荷长度、由协议使用的其它属性的信息。通常,有效载荷中用于特定协议的数据包括用于与OSI参考模型的不同的、较高层相关联的不同协议的报头和有效载荷。用于特定协议的报头典型地指示在其有效载荷中包括含用于下一协议的类型。假定,较高层的协议被封装在较低层协议中。在分组中包括的报头穿过多个诸如因特网的异构网络,报头典型地包括如OSI参考模型所定义的物理(层I)报头、数据链路(层2)报头、互联网网络(层3)报头和传输(层4)报头、和各种应用报头(层5、层6和层7)。值得注意的是,尽管图I将应用服务器103和认证服务器107示例为单独的实体,可以设想的是,可以实现这些服务器的任意组合,从而可以在一个或多个组件中结合或在等价功能的其他组件中实现这些组件的功能。同样,可以设想的是,可以将客户端应用111、浏览器113和DE 109分布到不同的设备和/或装备上,并且可以使用通信网络来共享认证上下文。在一个实施方式中,客户端应用111和浏览器113根据客户端-服务器模型来与应用服务器103进行交互。注意的是,计算机过程交互的客户端-服务器模型是广泛已知和使用的。根据客户端-服务器模型,客户端过程发送包括对服务器过程的请求的消息,以及服务器过程通过提供服务来进行响应。服务器过程还可以返回具有对客户端过程的响应的消息。通常,客户端过程和服务器过程在不同的被称为主机的计算机设备上执行,并且通过网络使用用于网络通信的一个或多个协议来通信。术语“服务器”通常用于指提供服务的过程,或运行过程的主计算机。类似地,术语“客户端”通常用于指进行请求的过程,或运行操作的主计算机。如此处所使用的,术语“客户端”和“服务器”指过程,而不是主计算机,除非从上下文中清楚为另一种。此外,为了包括可靠性、可扩展性和冗余性等的原因,可以将服务器所执行的过程分开为在多个主机上运行的多个过程(有时称为层)。图2是根据一个实施方式的用户使能器的组件的示意图。通过实例的方式,设备使能器(DE) 109可以包括一个或多个组件,所述组件用于提供平台以在不同应用之间共享认证会话信息(例如,认证上下文),所述应用例如是运行在运行时环境和诸如浏览器的客户端应用。可以设想的是,可以在一个或多个组件中结合或在等价功能的其他组件中实现这些组件的功能。在本实施方式中,DE 109可以包括处理器201或其他逻辑,执行用于实现DE 109的功能的至少一个算法。例如,当图I的客户端应用111中的一个访问DE 109以进行认证时,与获取模块203进行通信的处理器201确定是否已经为客户端应用(和/或相关的客户端应用)处理了认证过程。例如,获取模块203可以确定是否存在用于请求认证的客户端应用的认证上下文。在一个实施例中,获取模块203可以查询认证数据库117以确定认证上下文是否可用。附加地,获取模块203可以进一步确定认证上下文是否仍然有效,例如,其是否还未到期。如果与获取模块203进行通信的处理器201确定有效的认证上下文可用于请求客户端应用,那么获取模块203从缓存和/或诸如认证数据库117的数据库获取认证上下文,并且发起认证上下文到请求认证的客户端应用111的传输。然而,如果获取模块203确定DE 109已经处理了用于客户端应用的导致失败认证的认证过程,将失败的认证结果进一步提供给客户端应用。 可替换地,根据某些实施方式,如果获取模块203确定不存在用于请求认证的客户端应用的有效认证上下文,那么调用用户接口模块205以启动用户接口(UI)从而提示客户端应用111的用户提供认证和/或识别信息,例如用户证书。数据收集模块207可以收集用户认证信息,并且准备要被发送到认证服务器的认证请求消息,所述认证服务器例如是图I的认证服务器107。认证服务器107能够验证用户信息并且如果用户和/或客户端应用经过授权或通过验证,则生成认证上下文。在一个实例中,用户信息可以包括用户证书,例如用户名和密码,并且认证服务器107可以将用户证书与存储的证书进行比较,以认证用户和/或客户端应用。数据收集模块207可以从认证服务器107接收认证上下文。此夕卜,数据收集模块207可以从认证服务器107接收失败的认证消息(如果用户信息是无效的)。将认证请求的结果(认证上下文或失败的认证消息)传递给客户端应用。根据某些实施方式,如果认证成功并且数据收集模块207例如接收到认证上下文,那么缓存/存储/填充模块209能够例如在认证数据库117中缓存和/或存储认证上下文。因此,例如,获取模块203可以使用认证上下文,用于对来自相同客户端应用和/或与DE 109相关联的其他客户端应用的随后请求进行认证。此外,缓存/存储/填充模块209可以有利地发起在另一缓存和/或数据库中对认证上下文的填充,其中所述另一缓存和/或数据库不直接链接到和/或使用DE 109。例如,缓存/存储/填充模块209可以在与图I的浏览器113相关联的图I的数据库115中填充所接收的认证上下文。因此,图I的浏览器113可以使用所填充的认证上下文来访问图I的应用服务器103,而不需要首先利用认证服务器107对其自身进行认证。如上所述,缓存/存储/填充模块209可以通过至少部分地基于例如图I的浏览器113等所支持的认证方案拷贝认证上下文、转换认证上下文,从而填充认证上下文。图3是根据一个实施方式的在不同应用(例如,运行在运行时环境上的客户端应用和诸如浏览器的客户端应用上)之间共享例如是认证上下文的认证会话信息的过程的流程图。在一个实施方式中,图I的设备使能器(DE)109执行过程300,并且在包括例如如图7所示的处理器和存储器的芯片集中实现。在步骤301,接收认证请求。在一个实施方式中,从直接链接到和/或使用DE 109的客户端应用(例如,图I的客户端应用llla-lllm)接收认证请求。认证请求可以包括与客户端应用、客户端应用的用户等相关联的信息。在步骤303,做出关于是否已经存在用于请求认证的客户端应用的认证上下文的确定。在一个实例中,所述确定可以基于生成对诸如认证数据库117的数据库的查询,以确定是否之前接收到并且在数据库117中存储了与客户端应用相关联的认证上下文。附加地,根据某些实施方式,如果认证上下文存在,那么在步骤303,可以做出认证是否有效(例如,其是否还没到期)的确定。如果(有效的)认证上下文可用,在步骤305,从例如缓存和/或诸如图I的认证数据库117的数据库获取认证上下文。在步骤307,将获取的认证上下文传送到请求认证的客户端应用。客户端应用可以使用认证上下文来访问网络访问,例如图I的应用服务器103。然而,如果在步骤303确定了有效的认证上下文不可用,那么在步骤309生成接收与请求认证的客户端应用的用户相关联的认证证书的请求。在一个实例中,发起用户接口以提示用户输入认证证书,例如用户名、密码、一次性密码、生物识别等。在步骤311,至少部 分基于请求,从客户端应用接收认证证书。在步骤313,至少部分基于接收的认证证书,生成认证消息并且将认证消息传送到认证服务器,例如,图I的认证服务器107。认证服务器验证认证证书(例如,通过将其与存储的证书进行比较),以确定用户和/或客户端应用是否得到授权。在步骤315,接收用户和/或客户端认证的结果。更具体地,如果用户和/或客户端应用得到授权,那么在步骤315,接收认证上下文。在步骤317,在与DE 109相关联的数据库和/或缓存中存储和/或缓存认证上下文,其中数据库例如是图I的认证数据库117。例如直接链接到和/或使用DE 109的其他客户端应用也可以使用所缓存和/或存储的认证上下文。在步骤319,在第二缓存和/或数据库中进一步填充认证上下文,其不直接链接到和/或使用DE 109,其中数据库例如是图I的数据库115。在一个实例中,数据库115可以是与图I的浏览器113相关联的cookie存储。如上所述,在一个实施方式中,在步骤319,认证上下文的填充可以包括至少部分基于与客户端应用相关联的认证方案来转换认证上下文,其中客户端应用与第二缓存和/或数据库相关联。例如,认证上下文可以包括令牌,并且在步骤319,将认证上下文转换为包括使用用户的用户名和密码加密的cookie的经转换的认证上下文。图4A和4B是根据各种实施方式的示出了用于提供平台以共享认证会话信息的消息和过程的序列的时序图。垂直线标识网络过程。由水平箭头表示从一个过程到另一个过程的消息。由文本来指示过程所执行的步骤。在图4A和4B中表示的过程是应用服务器
103、认证服务器107、设备使能器(DE)109、客户端应用111、浏览器113、数据库115以及认证数据库117。图4A的实例讨论过程400 :对客户端应用和/或客户端应用的用户进行认证、接收认证上下文、在第一缓存和/或数据库中存储认证上下文、并且在第二缓存和/或数据库中填充认证上下文。同样,图4B的实例讨论过程420 :客户端应用请求认证并且浏览器访问应用服务器。在过程400的401,图I的客户端应用111中的一个,例如客户端应用11 Ia发起对设备使能器(DE) 109的认证请求。在一个实例中,认证请求可以包括与客户端应用111a、客户端应用的用户、应用服务器相关的信息等,其中客户端应用Illa想要访问应用服务器等。在403,如果DE 109确定客户端应用11还没有被认证,那么设备使能器109发起对话,例如用户接口(UI),以提示用户输入认证证书。在一个实例中,所述确定至少部分基于在与DE 109相关联的缓存和/或数据库(例如,认证数据库117)上的搜索,以确定是否存在与客户端应用Illa相关联的认证上下文。在对话403期间,DE 109可以收集例如客户端应用Illa的用户(和/或UE 101的用户)的认证证书。在405,DE 109生成并且传送认证请求道认证服务器107,以验证由DE 109收集的认证证书。在一个实例中,认证请求可以包括认证证书和/或与证书相关的信息。通过实例的方式,证书可以包括用户名、密码、一次性密码、客户密钥、秘密密钥、生物识别等。在407,认证服务器107验证认证证书,以确定客户端应用和/或用户是否得到授权。在一个实例中,将接收的认证证书(或与他们相关联的信息)与所存储的证书进行比较。如果得到授权, 在409,将认证上下文传递给DE 109。根据一个实施方式,认证上下文可以包括cookie或令牌。在411,DE 109发起在缓存和/或诸如认证数据库117的数据库中对认证上下文的缓存和/或存储,其中缓存和/或数据库直接链接到和/或使用DE109。直接链接到和/或使用认证数据库117和/或DE 109的客户端应用可进一步使用所缓存和/或存储的认证上下文。在413,DE 109将从认证服务器107接收的认证上下文传递到请求认证的客户端应用111a。此外,在415,在不直接链接到和/或使用DE 109的缓存和/或数据库中填充认证上下文。在一个实例中,从认证数据库117将认证上下文填充到数据库115。如上所述,根据某些实施方式,在415,至少部分基于与使用数据库115的客户端应用(例如,浏览器113)相关联的认证协议来转换认证上下文。可以设想的是,可以将所示例的消息和/或过程结合到一个或多个消息和/或过程中,或按其他顺序来执行。图4B示出了请求认证的客户端应用(例如,客户端应用Illb)和请求访问应用服务器的浏览器的示例性过程。在421,客户端应用Illb发送认证请求到DE 109。在一个实例中,认证请求可以包括与客户端应用111b、客户端应用Illb的用户等相关联的信息。在423,获取与客户端应用Illb相关联的认证上下文,并且在425,将获取认证上下文传递到客户端应用425。根据某些实施方式中,在423,DE 109确定是否已经为客户端应用Illb和/或与客户端应用Illb相关的客户端应用(例如,客户端应用111)执行了认证过程。在一个实例中,所述确定可至少部分基于对图I的认证数据库117的查询,以确定是否可获得有效的认证上下文。如果不可获得有效的认证上下文,那么可以执行图4A的过程400。如果可以获得有效的认证上下文,那么获取认证上下文并且将其传递到客户端应用111b。客户端应用Illb可以使用认证上下文例如访问图I的应用服务器103。图4B进一步示例了描述了使用在图4A的415处填充的认证上下文访问应用服务器103的浏览器113的示例性过程的步骤427到435。在427,浏览器113将数据请求发送到应用服务器103。数据请求可以包括与浏览器113、应用服务器103、填充的认证上下文等相关的信息。在一个实施方式中,已经在诸如图4A的过程400的过程中,将认证上下文填充在例如与浏览器113相关联的缓存和/或数据库中。在一个实例中,所填充的认证上下文可能是存储在浏览器cookie存储中的cookie。浏览器113可以访问浏览器cookie存储,以获取cookie并且将其包括在数据请求427中。
在429到433,应用服务器103利用认证服务器107来验证所填充的认证上下文的有效性。在429,应用服务器103生成认证验证消息并且将所述消息传递给认证服务器107。认证验证消息可以包括所填充的认证上下文和/或与其相关联的信息。在431,认证服务器107验证所填充的认证上下文是否是有效的。在一个实施例中,认证上下文431将认证上下文(和/或与其相关联的信息)与例如在图4A的过程400的407处生成的认证上下文(与其相关联的信息,和/或用户或客户端应用的认证证书)进行比较。在433,认证服务器107至少部分基于431将验证响应发送给应用服务器103。如果所填充的认证上下文是有效的,那么在435,应用服务器103将所请求的数据返回给浏览器113。尽管所讨论的实施方式涉及以下过程首先为运行在运行时环境上的客户端应用生成认证上下文并且为其他应用填充认证上下文,其他应用例如是浏览器(例如,通过用于共享认证上下文的推方法),然而还可以设想所设想的相反过程(例如,通过用于共享认证的拉方法)。例如,可以相对于认证服务器(例如,图I的认证服务器107)来认证诸如浏览器的客户端应用,可以生成认证上下文,并且在与客户端应用相关联的第一缓存和/或数据库中缓存和/或存储认证上下文,并且可进一步在用于其他客户端应用的第二缓存和/或数据库中填充认证上下文,其中所述其他客户端应用不与第一缓存和/或数据库直接链 接,和/或不使用第一缓存和/或数据库。图5是根据一个实施方式的用于提供与认证证书相关联的数据的示例用户接口的示意图。如之前所述的,当图I的DE 109从客户端应用111中的一个接收认证请求并且确定所述有效的认证上下文不可获得时,DE可以发起用户接口(UI)以提示客户端应用的用户输入认证证书。图5是请求这种信息的样本用户接口 500。在本实例中,用户和/或UE 101可以输入用于认证目的的用户ID和密码。可以预期的是,DE 109可以请求任意信息,用于确保仅得到授权的用户能够访问所请求的访问和/或信息。可以有利地经由软件、硬件(例如,通用处理器、数字信号处理器(DSP)芯片、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等)、固件或其组合,来实现此处介绍的用于提供平台以在不同应用之间共享认证会话信息(例如认证上下文)的过程。下面会详述用于执行所介绍的功能的这种示例性硬件。图6描述了可以实现本发明的实施方式的计算机系统600。尽管关于特定设备或装备描述了计算机系统600,但是可以预期的是,图6中的其它设备或装备(例如,网络元件、服务器等)可利用所描述的系统600的硬件和元件。计算机系统600被编程(例如,通过计算机程序代码或指令)以提供这里描述的认证会话共享,并且计算机系统600包括例如总线610的通信机制,用于在计算机系统600的其它内部和外部组件之间传递信息。将信息(也称为数据)表示为可测量的现象的物理表达,典型的是电压,但是在其它实施方式中可包括诸如磁、电磁、压力、化学、生物、分子、原子、亚原子(subatomic)和量子交互的现象。例如,北极和南极磁场、或零和非零电压,表示二进制数字(比特)的两个状态(0,I)。其它现象可表示更高基数的数字。在测量前多个同时发生的量子状态的叠加表示一个量子比特(量子位)。一个或多个数字的序列构成用于表示数字或字符代码的数字数据。在一些实施例中,被称为模拟数据的信息由特定范围内的可测量值的近似闭联集表示。计算机系统600,或其一部分,构成用于执行提供认证会话共享的一个或多个步骤的部件。总线610包括一个或多个并行的信息导线,从而在与总线610耦合的设备间可快速地传送信息。用于处理信息的一个或多个处理器602与总线610耦合。处理器602对由与提供认证会话共享相关的计算机程序代码指定的信息执行一系列操作。计算机程序代码是为处理器和/或计算机系统执行特定功能的操作提供指令的指令或声明的集合。例如,代码可用被编译成处理器的本地指令集的计算机编程语言进行编写。代码还可直接使用原始指令集(例如,机器指令)进行编写。操作集包括从总线610获取信息并将信息放在总线610上。操作集还典型地包括比较两个或多个信息单元,对信息单元的位置进行移位,以及将两个或多个信息单元合并,例如通过加、乘、或诸如或、异或(XOR)和与的逻辑操作。通过被称为指令的信息,将可由处理器执行的操作集的每个操作描述给处理器,例如一个或多个数字的操作代码。操作序列可由处理器602执行,例如操作代码序列构成处理器指令,也被称为计算机系统指令、或简单地称为计算机指令。以独立方式或结合方式,处理器可实现为机械、电、磁、光、化学或量子组件。计算机系统600还包括与总线610耦合的存储器604。诸如随机存取存储器(RAM)或其它动态存储设备的存储器604,存储包括用于提供认证会话共享的处理器指令的信息。动态存储器允许通过计算机系统600交换在动态存储器中存储的信息。RAM允许独立于相 邻地址的信息,对存储在被称为存储地址的位置上的信息单元进行存储和检索。在处理器指令执行过程中,处理器602还使用存储器604存储临时值。计算机系统600还包括与总线610耦合的只读存储器(ROM) 606或其它静态存储设备,用于存储包括不被计算机系统600改变的指令的静态信息。一些存储器包括当失去电力时丢失存储在其上的信息的易失性存储器。与总线610耦合的还有用于存储包括指令的信息的非易失性(持久)存储器607,例如磁盘、光盘或闪存卡,其即使在计算机系统600关闭或丢失电力时也会保持信息。从诸如包含由人类用户操作的字符键的键盘或传感器的外部输入设备612,将包括用于提供认证会话共享的指令的信息提供给总线610以由处理器使用。传感器检测其附近的条件,并将这些检测转换为与用于在计算机系统600表示信息的可测量现象相兼容的物理表达。与总线610耦合、主要用于与人类交互的其它外部设备包括用于呈现文本或图像的诸如阴极射线管(CRT)、液晶显示器(IXD)、等离子体屏幕或打印机的显示设备614;或用于控制呈现在显示器614上的小光标图像的位置、并发出与呈现在显示器614上图形元素相关的命令的诸如鼠标、轨迹球、光标方向键、或移动传感器的定点(pointing)设备616。在一些实施方式中,例如,在计算机系统600在没有人类输入的情况下自动执行各种功能的实施方式中,可省略外部输入设备612、显不设备614和定点设备616中的一个或多个。在所示出的实施方式中,诸如专用集成电路(ASIC) 620的专用目的硬件与总线610耦合。为了专用目的,将专用目的硬件配置为足够快地执行不由处理器602执行的操作。应用专用IC的实例包括用于为显示器614产生图像的图形加速卡,用于对通过网络发送的消息进行加密和解密的加密板、语音识别、专用外部设备的接口,例如用硬件实现更有效地重复执行一些复杂的操作序列的机械臂和医疗扫描设备。计算机系统600还包括与总线610耦合的通信接口 670的一个或多个示例。通信接口 670提供与利用它们自己的处理器进行操作的多个外部设备的单向或双向通信耦合,外部设备例如打印机、扫描仪和外部磁盘。通常,耦合是利用与本地网络680连接的网络链路678,其中多个具有它们自己处理器的外部设备与本地网络680连接。例如,通信接口670可以是个人计算机上的并口、串口或通用串行总线(USB)端口。在一些实施方式中,通信接口 670是综合业务数字网络(ISDN)卡、数字用户线路(DSL)卡或提供与相应类型的电话线的信息通信连接的电话调制解调器。在一些实施方式中,通信接口 670是将总线610上的信号转换为用于通过同轴电缆进行通信连接的信号或用于通过光纤电缆进行通信连接的光信号的电缆调制解调器。如另一实施例,通信接口 670可以是为诸如以太网的可兼容局域网提供数据通信连接的局域网(LAN)卡。还可实现无线链路。对于无线链路,通信接口 670发送、接收、或发送和接收携带诸如数字数据的信息流的电、声、或电磁信号,包括红外和光信号。例如,在无线手持设备中,例如诸如蜂窝电话的移动电话,通信接口 670包括被称为无线电收发器的无线电波段电磁发射机和接收机。在特定实施方式中,通信接口670能够实现到用于提供认证会话共享给UE 101的通信网络105的连接。这里使用的术语“计算机可读介质”涉及参与给处理器602提供信息(包括用于执行的指令)的任何介质。这样的介质可采用许多形式,包括但不局限于,计算机可读存储介质(例如,非易失性媒体、易失性媒体)和传输媒体。诸如非易失性媒体的非暂态媒体,例如包括诸如存储设备608的光盘或磁盘。易失性媒体例如包括动态存储器604。传输媒体例如包括同轴电缆、铜线、光纤电缆、通过空中传播不需要线路或电缆的载波,例如声波和包·括无线电、光波和红外波的电磁波。信号包括在幅度、频率、相位、极性或通过传输媒体传输的其它物理属性上的人工瞬时变化。计算机可读媒体的通常形式例如包括软盘、软碟、硬盘、磁带、任何其它磁介质、CD-ROM、CDRff, DVD、任何其它光介质、穿孔卡、纸带、光学测标页(optical mark sheet)、具有孔或其它光学可识别标记的任何其它物理介质、RAM、PR0M、EPROM、FLASH-EPR0M、任何其它存储器芯片或卡式磁带机、载波、或计算机可读的任何其它介质。这里使用的术语计算机可读存储介质涉及除传输媒体之外的任何计算机可读介质。在一个或多个有形的媒体中进行编码的逻辑包括在计算机可读存储媒体和诸如ASIC 620的专用目的硬件上的处理器指令中的一个或两个。网络链路678典型地通过一个或多个网络使用传输媒体将信息通信提供给使用或处理该信息的其它设备。例如,网络链路678可通过本地网络680提供到主机计算机682或到由因特网服务提供商(ISP)运营的设备684的连接。ISP装备684从而通过现在通常被称为因特网690的网络中的公共的、全球分组交换通信网络提供数据通信服务。与因特网连接的被称为服务器主机692的计算机驻留响应于通过因特网接收的信息而提供服务的过程。例如,服务主机692驻留这样的过程,所述过程提供用于在显示器614上呈现表示视频数据的信息。可以预期的是,可在诸如主机682和服务器692的其他计算机系统中以各种配置方式来部署系统600的组件。本发明的至少一些实施例与用于实现这里描述的一些或全部技术的计算机系统600的使用相关。根据本发明的一个实施例,响应于处理器602执行包含在存储器604中的一个或多个处理器指令的一个或多个序列,由计算机系统600执行这些技术。也被称为计算机指令、软件和程序代码的这种指令可从诸如存储设备608或网络链路678的另一计算机可读介质读入到存储器604。包含在存储器604中的指令序列的执行促使处理器602执行这里描述的方法步骤中的一个或多个。在可替换的实施例中,诸如ASIC 620的硬件可用于替换实现本发明的软件或与实现本发明的软件结合。从而,本发明的实施方式不局限于硬件和软件的任何特定组合,除非在这里明确声明。
通过网络链路678和通过通信接口 670的其它网络传输的信号携带去往和来自计算机系统600的信息。计算机系统600可通过网络680、690 (其中通过网络链路678和通信接口 670)发送和接收包括程序代码的信息。在使用因特网690的实施例中,服务器主机692通过因特网690、ISP设备684、本地网络680和通信接口 670,传输用于由计算机600发送的消息所请求的特定应用的程序代码。所接收的代码可由处理器602在接收时执行,或可存储在存储器604或存储设备608或其它非易失性存储器中以用于稍后的执行,或者两者。在该方式下,计算机系统600可以按载波上信号的形式获得应用程序代码。计算机可读媒体的各种形式可涉及在将一个或多个指令序列或数据或两者携带给处理器602以用于执行。例如,指令和数据初始可由诸如主机682的远程计算机的磁盘携带。远程计算机将指令和数据装载入其动态存储器中,并使用调制解调器通过电话线发送指令和数据。位于计算机系统600本地的调制解调器在电话线上接收指令和数据,并使用红外发射机将指令和数据转换为用作网络链路678的红外载波上的信号。用作通信接口670的红外检测器接收在红外信号中携带的指令和数据,并将表示指令和数据的信息放置在总线610上。总线610将信息携带到存储器604,处理器602从存储器604获取指令并且通过使用随指令发送的一些数据执行指令。在存储器604中接收的指令和数据可任选的存 储在存储设备608上,可在处理器602执行之前或之后。图7描述了在其上可以实现本发明实施方式的芯片集700。芯片集700被编程为提供这里描述的提供认证会话共享,并且例如包括相对于图6所描述的被结合一个或多个物理封装(例如,芯片)的处理器和存储组件。通过示例的方式,物理封装包括在结构组装(例如,基板)上的一个或多个材料、组件、和/或导线的安排,从而提供诸如物理强度、大小恒定和/或电子交互限制的一个或多个特性。可以预期的是,在特定的实施方式中,芯片集可在单一的芯片上实现。芯片集700,或者其一部分,构成用于执行提供认证会话共享的一个或多个步骤的部件。在一个实施例中,芯片集700包括诸如用于在芯片集700的组件之间传递信息的总线701的通信机制。处理器703具有与总线701的连通性以执行例如存储在存储器705中的指令和过程信息。处理器703可包括一个或多个处理核心,其中将每个核心配置为独立地执行。多核心处理器能够在单一物理封装中进行多处理。多核心处理器的实施例包括两个、四个、八个或更多个处理核心。可替换地或另外地,处理器703可包括一个或多个通过总线701串联配置的微处理器,以便能够独立地执行指令、流水线和多线程。处理器703还可与一个或多个专用组件结合以执行特定的处理功能和任务,例如一个或多个数字信号处理器(DSP)707、或一个或多个专用集成电路(ASIC)709。典型地,将DSP 707配置为与处理器703独立地实时处理真实世界的信号(例如,声音)。相似地,可将ASIC 709配置为执行不能由通用处理器容易地执行的专用功能。这里描述的有助于执行本发明功能的其它专用组件包括一个或多个现场可编程门阵列(FPGA)(没有示出)、一个或多个控制器(没有示出)、或一个或多个其它专用目的计算机芯片。处理器703和附带的组件具有经由总线701的与存储器705的连通性。存储器705包括用于存储可执行指令的动态存储器(例如,RAM、磁盘、可写光盘等)和静态存储器(例如,ROM、⑶-ROM等),其中在执行可执行指令时执行这里描述的创造性步骤以提供认证会话共享。存储器705还存储与创造性步骤的执行相关的数据或由创造性步骤的执行所产生的数据。图8是根据一个实施例的能够在图I的系统中进行操作的用于通信的移动终端(例如,手持机)的示例性组件的示意图。在一些实施例中,移动终端800或其一部分,构成用于执行提供认证会话共享的一个或多个步骤的部件。一般地,通常按照前端和后端特性对无线电接收机进行限定。接收机的前端包括全部的射频(RF)电路,而后端包括全部的基带处理电路。如在本申请中所使用的,术语“电路”涉及(I)仅为硬件实现方式(例如仅在模拟和/或数字电路中的实现方式),和(2)电路和软件(和/或固件)的结合(例如,如果应用于特定上下文,将共同工作的包括数字信号处理器的处理器、软件和存储器结合在一起以促使诸如移动电话或服务器的装置执行各种功能)。该“电路”的定义应用于在该申请中对该术语的全部使用,包括任何权利要求。如另一实施例,如在该申请中使用的并且如果可应用于特定的上下文,则术语“电路”还可覆盖仅由处理器(或多个处理器)和其(或它们的)相应的软件/固件的实现方式。术语“电路”还可覆盖可应用于特定上下文的情况,例如蜂窝网络设备或其它网络设备中的移动电话或相似集成电路中的基带集成电路或应用处理器集成电路。 电话的相关内部组件包括主控制单元(MCU) 803、数字信号处理器(DSP) 805、和包括麦克风增益控制单元和扬声器增益控制单元的接收机/发射机单元。主显示器单元807给用户提供显示以支持执行或支持提供认证会话共享的步骤的各种应用和移动终端功能。显示器807包括配置为在移动终端(例如,移动电话)的用户接口的至少一部分上进行显示的显示器电路。此外,将显示器807和显示器电路配置为便于移动终端的至少一些功能的用户控制。音频功能电路809包括麦克风811和将从麦克风811输出的语音信号进行放大的麦克风放大器。将从麦克风811输出的经放大的语音信号馈送给编码器/解码器(CODEC)813。无线电部分815对功率进行放大,并对频率进行转换,以便通过天线817与包括在移动通信系统中的基站进行通信。功率放大器(PA) 819和发射机/调制电路可操作地对MCU 803进行响应,将来自PA 819的输出耦合至双工器821或循环器(circulator)或天线开关,这是现有技术公知的。PA 819还与电池接口和功率控制单元820耦合。在使用中,移动终端801的用户对麦克风811说话,且他或她的语音连同任何检测到的背景噪声被转换为模拟电压。从而通过模拟数字转换器(ADC) 823将模拟电压转换为数字信号。控制单元803将数字信号路由到DSP 805中以在DSP 805中进行处理,例如语音编码、信道编码、加密和交织。在一个实施方式中,通过没有单独示出的单元,使用诸如全球演进(EDGE )、通用分组无线服务(GPRS )、全球移动通信系统(GSM)、因特网多媒体子系统(IMS)、通用移动通信系统(UMTS)等蜂窝传输协议,以及诸如微波接入(WiMAX)、长期演进(LTE)网络、码分多址(CDMA)、宽带码分多址(WCDMA)、无线保真(WiFi)、卫星等的其它合适的无线介质,对处理的语音信号进行编码。随后,将编码的信号路由到均衡器825,以便对在通过空中传输过程中发生的诸如相位和幅度失真的任何频率相关损耗进行补偿。在对比特流进行均衡后,调制器827将信号与在RF接口 829中产生的RF信号结合。调制器827通过频率或相位调制产生正弦波。为了准备用于传输的信号,上变频器831将从调制器827输出的正弦波与由合成器833产生的另一正弦波组合,以获得期望的传输频率。从而将信号通过PA 819进行发送,以使信号增加到合适的功率水平。在实际的系统中,PA 819作为可变增益放大器,由DSP 805通过网络基站接收的信息来控制PA 819的增益。从而在双工器821中信号进行滤波,并可选择性地发送给天线耦合器835以进行阻抗匹配,从而提供最大功率的传送。最后,经由天线817将信号发送给本地基站。可供应自动增益控制(AGC)以控制接收机最后阶段的增益。可将信号由这里转发到远端电话,其可以是另一蜂窝电话、其它移动电话或与公共交换电话网络(PSTN )或其它电话网络连接的固定电话。通过天线811接收被传输给移动终端801的语音信号,并立即由低噪声放大器(LNA) 837放大。下变频器839降低载波频率,且解调器841去除RF,只留下数字比特流。随后信号通过均衡器825,并由DSP 805进行处理。数模转换器(DAC)843对信号进行转换,并将相应的输出通过扬声器845传输给用户,所有的操作都在主控制单元(MCU)803的控制下,其中主控制单元可实现为中央处理单元(CPU)(在图中没有示出)。MCU 803从键盘847接收包括输入信号的各种信号。与其它用户输入组件(例如,麦克风811)结合的键盘847和/或MCU 803包括用于管理用户输入的用户接口电路。MCU803运行用户接口软件,便于对移动终端的至少一些功能的用户控制,以执行提供认证会话共享。MCU 803还分别将显示命令和切换命令递送给显示器807和语音输出切换控制器。此外,MCU 803与DSP 805交换信息,并可选择地访问所结合的SM卡849和存储器851。此外,MCU 803执行终端要求的各种控制功能。DSP 805可根据实现方式在语音信号上执行任何种类的传统数字处理功能。此外,DSP805从麦克风811检测的信号确定本地环境的背景噪声水平,并为将麦克风811的增益设置为所选的水平,以补偿移动终端801的用户的自然倾向(tendency)。CODEC 813包括ADC 823和DAC 843。存储器851存储包括呼叫进入语音数据的各种数据,并能够存储包括从全球因特网接收的音乐数据的其它数据。软件模块可驻留在RAM存储器、闪存存储器、寄存器、或现有技术中已知的其它任何形式的可写入存储介质。存储设备851可以是,但不局限于,单一存储器、CD、DVD、ROM、RAM、EEPR0M、光学存储器、或能够存储数字数据的其它任何非易失性存储介质。例如,可选择地结合的SM卡849携带重要的信息,例如蜂窝电话号码、支持服务的载波、订阅细节和安全信息。SM卡849主要用于在无线电网络上识别移动终端801。卡849还包含用于存储个人电话号码注册、文本消息和用户专用移动终端设置的存储器。尽管结合多个实施方式和实现方式介绍了本发明,但是本发明不局限于此,而是可覆盖落入所附权利要求范围的各种明显修改和等价安排。尽管本发明的特征在权利要求中以特定的组合进行表达,但可以预期的是,这些特征可以按任意的组合和顺序进行安排。
权利要求
1.一种方法,包括 促进以下内容的处理和/或处理以下内容(I)数据和/或(2)信息和/或(3)至少一个信号;所述(I)数据和/或(2)信息和/或(3)至少一个信号至少部分基于以下内容在接口处接收的与第一服务相关联的认证上下文; 至少部分地促使在与接口相关联的第一缓存中对认证上下文进行存储的确定;以及至少部分地促使将认证上下文填充到与第二服务相关联的第二缓存中的确定,所述第二缓存不直接链接到所述接口, 其中第二缓存中的认证上下文认证对第二服务的访问。
2.根据权利要求I所述的方法,其中将认证上下文填充到第二缓存包括 至少部分地基于与第二服务相关联的认证协议来转换认证上下文; 其中第二缓存中的认证上下文是经转换的认证上下文。
3.根据权利要求I至2中任一项所述的方法,所述(I)数据和/或(2)信息和/或(3)至少一个信号进一步至少部分基于以下内容 从第一服务接收的对用户进行认证的请求; 与用户相关联的认证证书的请求; 基于所述请求接收的认证证书; 至少部分地促使将认证证书传输到认证服务器的确定; 其中至少部分地基于认证证书,从认证服务器接收认证上下文。
4.根据权利要求I至3中任一项所述的方法,其中认证上下文是能够应用于第一服务和第二服务两者的单点登录认证上下文。
5.根据权利要求I至4中任一项所述的方法,其中第一服务和第二服务是在公共设备上执行的运行时应用。
6.根据权利要求I至5中任一项所述的方法,其中第一服务和第二服务包括应用、浏览器会话。
7.一种装置,包括 至少一个处理器;以及 至少一个包括计算机程序代码的存储器; 所述至少一个存储器和所述计算机程序代码被配置为,通过至少一个处理器促使所述装置执行以下内容 接收与至少第一服务相关联的认证上下文; 至少部分地促使在与所述装置相关联的第一缓存中对认证上下文的存储;以及至少部分地促使将认证上下文填充到与至少第二服务相关联的第二缓存中,第二缓存不直接链接到所述装置; 其中,第二缓存中的认证上下文认证对第二服务的访问。
8.根据权利要求7所述的装置,其中将认证上下文填充到第二缓存中包括 至少部分基于与第二访问相关联的认证协议来转换认证上下文; 其中在第二缓存中的认证上下文是经转换的认证上下文。
9.根据权利要求7至8中任一项所述的装置,其中进一步促使所述装置 从第一服务接收对用户进行认证的请求;请求与用户相关联的认证证书; 基于所述请求,接收认证证书; 至少部分地促使将认证证书传输到认证服务器; 其中至少部分地基于认证证书,从认证服务器接收认证上下文。
10.根据权利要求7至9中任一项所述的装置,其中认证上下文是能够应用于第一服务和第二服务两者的单点登录认证上下文。
11.根据权利要求7至10中任一项所述的装置,其中第一服务和第二服务是在公共设备 上执行的运行时应用。
12.根据权利要求7至11中任一项所述的装置,其中第一服务和第二服务包括应用、浏览器会话。
13.根据权利要求7至12中任一项所述的装置,其中所述装置是移动电话,进一步包括 用户接口电路和用户接口软件,被配置为促进通过使用显示器对移动电话的至少一些功能的用户控制,并且被配置为对用户输入进行响应;以及 显示器和显示器电路,被配置为显示移动电话的用户接口的至少一部分,所述显示器和显示器电路被配置为促进移动电话的至少一些功能的用户控制。
14.一种携带一个或多个指令的一个或多个序列的计算机可读存储媒介,当由一个或多个处理器执行时,促使装置至少执行下列步骤 接收与第一服务相关联的认证上下文; 至少部分地促使在与所述装置相关联的第一缓存中对认证上下文的存储;以及至少部分地促使将认证上下文填充到与第二服务相关联的第二缓存中,第二缓存不直接链接到所述装置; 其中,第二缓存中的认证上下文认证对第二服务的访问。
15.根据权利要求14所述的计算机可读存储媒介,其中将认证上下文填充到第二缓存包括 至少部分基于与第二服务相关联的认证协议来转换认证上下文; 其中在第二缓存中的认证上下文是经转换的认证上下文。
16.根据权利要求14至15中任一项所述的计算机可读存储媒介,其中促使所述装置进一步执行 从第一服务接收对用户进行认证的请求; 请求与用户相关联的认证证书; 基于所述请求,接收认证证书; 至少部分地促使将认证证书传输到认证服务器; 其中至少部分地基于认证证书,从认证服务器接收认证上下文。
17.根据权利要求14至16中任一项所述的计算机可读存储媒介,其中认证上下文是在能够应用于第一服务和第二服务两者的单点登录认证上下文。
18.根据权利要求14至17中任一项所述的计算机可读存储媒介,其中第一服务和第二服务是在公共设备上执行的运行时应用。
19.根据权利要求14至18中任一项所述的计算机可读存储媒介,其中第一服务和第二服务包括应用、浏览器会话。
20.一种包括用于执行权利要求I至6中任一项所述的方法的部件的装置。
21.一种方法,包括促进访问至少一个被配置为允许访问至少一个服务的接口,所述至少一个服务被配置为执行权利要求I至6中任一项的方法。
22.一种方法,包括促进创建和/或促进修改至少一个设备用户接口元件和/或功能,所述至少一个设备用户接口元件和/或功能至少部分基于下列内容 从权利要求I至6中任一项的方法得到的数据和/或信息,和/或从权利要求I至6中任一项的方法得到的至少一个信号。
23.一种包括一个或多个指令的一个或多个序列的计算机程序产品,当由一个或多个处理器执行时,促使装置至少执行权利要求I至6中任一项的方法。
24.一种方法,包括创建和/或修改至少一个设备用户接口元件和/或功能,所述至少一个设备用户接口元件和/或功能至少部分基于下列内容 从权利要求I至6中任一项的方法得到的数据和/或信息,和/或从权利要求I至6中任一项的方法得到的至少一个信号。
全文摘要
本发明提供一种方法,所述方法用于在浏览器和网络通信中的运行时环境之间提供认证会话共享。接口(109)接收与第一服务相关联的认证上下文。接口(109)至少部分地促使在与接口(109)相关联的第一缓存(117)中对认证上下文的存储。接口(109)至少部分地促使将认证上下文填充到与第二服务相关联的第二缓存(115)中。所述第二缓存(115)不直接链接到所述接口(109)。第二缓存(115)中的认证上下文认证对第二服务的访问。
文档编号H04W12/06GK102763397SQ201180010202
公开日2012年10月31日 申请日期2011年2月3日 优先权日2010年2月18日
发明者A·卡尔希宁, J·奥特拉宁 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1