应用程序单点登录的系统和方法与流程

文档序号:28681762发布日期:2022-01-29 06:45阅读:135来源:国知局
应用程序单点登录的系统和方法与流程
应用程序单点登录的系统和方法
1.本技术要求于2019年6月1日提交的美国临时专利申请号62/856,059的优先权的权益,该申请全文以引用方式并入本文以提供公开的连续性。
技术领域
2.本发明总体上涉及应用程序登录,并且更具体地涉及应用程序单点登录。


背景技术:

3.单点登录服务是允许用户使用单组凭据跨一个或多个授权域登录多个服务的服务。例如,用户可使用单个用户名和密码的组合(或另一组用户凭据)登录一家公司的媒体流服务和另一家公司的社交媒体帐户,即使这两个公司处于不同的授权域中。在该实施方案中,具有针对多个授权域上的多个服务的单点登录服务,针对来自各种源的各种服务,该单点登录服务允许用户仅记住单组凭据。通常,当用户希望登录第一服务时(例如,第一次启动应用程序,重新登录应用程序,通过web界面访问服务,通过数字媒体播放器访问服务,并且/或者向用户呈现用于服务认证的界面的另一场景),向用户呈现用户界面,该用户界面显示应用程序的本地登录用户界面和单点登录用户界面(例如,“与xyz连接”)。
4.单点登录服务的问题在于提供单点登录用户服务的实体将与各个服务提供商共享用户的私人信息。通常,私人信息的共享是在用户不知道该私人信息共享如何工作的情况下完成的。例如,用户可经由单点登录服务不经意地与服务提供商共享用户使用一个或多个应用程序的频率、用户的真实姓名、用户的真实电子邮件地址和/或其他私人信息,该服务提供商允许通过单点登录服务对其服务进行授权。


技术实现要素:

5.描述了一种授权设备使用服务的设备的方法和装置。在一个示例性实施方案中,设备拦截来自在设备上执行的web浏览器的对网页的请求,其中请求包括与对服务的授权请求相关联的指示,并且该网页提供该服务。另外,设备在设备上呈现授权用户界面。设备还使用经由授权用户界面输入的一组用户凭据来进行本地授权。设备还对服务器进行服务器授权。此外,设备将web浏览器重定向到所请求的网页,其中web浏览器被授权使用由网页提供的服务。
6.描述了一种具有可执行指令的机器可读介质,该可执行指令使一个或多个处理单元执行授权设备使用服务的方法。在示例性实施方案中,机器可读介质方法拦截来自在机器可读介质方法上执行的web浏览器的对网页的请求,其中该请求包括与服务的授权请求相关联的指示,并且该网页提供该服务。另外,机器可读介质方法在机器可读介质方法上呈现授权用户界面。机器可读介质方法还使用经由授权用户界面输入的一组用户凭据来进行本地授权。机器可读介质方法还对服务器进行服务器授权。此外,机器可读介质方法将web浏览器重定向到所请求的网页,其中该web浏览器被授权使用由该网页提供的服务。
7.在另一个实施方案中,web请求是超文本传输协议请求。另外,机器可读介质方法
通过向服务器发送服务器授权请求并从服务器接收授权响应来进行服务器授权。此外,服务器授权请求是安全远程协议请求,并且使用与执行web浏览器的过程不同的过程来呈现授权用户界面。
8.在另一个实施方案中,机器可读介质方法通过以下方式拦截网页请求:接收网页的位置,确定可对网页进行的授权,以及加载授权扩展以处理对网页的授权。另外,授权用户界面包括用于从用户接收用户凭据的部件,其中该用户凭据选自由生物特征用户凭据或用户名和密码组成的组。
9.描述了一种授权设备使用服务的方法。在一个示例性实施方案中,方法拦截来自在该方法上执行的web浏览器的对网页的请求,其中该请求包括与服务的授权请求相关联的指示,并且该网页提供该服务。另外,方法在机器可读介质方法上呈现授权用户界面。方法还使用经由授权用户界面输入的一组用户凭据来进行本地授权。还对服务器进行服务器授权。此外,方法将web浏览器重定向到所请求的网页,其中该web浏览器被授权使用由该网页提供的服务。
10.在另一个实施方案中,描述了一种授权设备使用由应用程序提供的服务的设备的方法和装置。在一个示例性实施方案中,设备通过在设备上执行的应用程序来检测服务的授权请求,该服务由应用程序提供。另外,设备确定与应用程序相关联的身份提供商。设备还加载与所确定的身份提供商相关联的授权扩展。设备另外呈现了对应于授权扩展的授权用户界面,并且至少基于由授权用户界面接收的数据来接收对设备的本地授权。此外,设备与服务器协商授权令牌并将授权令牌返回到应用程序,其中应用程序使用该授权令牌来授权由应用程序提供的服务。
11.在另一个实施方案中,描述了一种机器可读介质,该机器可读介质具有可执行指令,该可执行指令用于使一个或多个处理单元执行授权设备使用由应用程序提供的服务的方法。在一个示例性实施方案中,机器可读介质方法通过在机器可读介质方法上执行的应用程序来检测针对服务的授权请求,该服务由应用程序提供。另外,机器可读介质方法确定与应用程序相关联的身份提供商。机器可读介质方法还加载与所确定的身份提供商相关联的授权扩展。机器可读介质方法另外呈现了对应于授权扩展的授权用户界面,并且至少基于由授权用户界面接收的数据来接收对机器可读介质方法的本地授权。此外,机器可读介质方法与服务器协商授权令牌并将授权令牌返回到应用程序,其中应用程序使用该授权令牌来授权应用程序所提供的服务。
12.在另一个实施方案中,机器可读介质方法通过接收网页请求来检测授权请求,其中该网页请求包括与对服务的授权请求相关联的指示,并且至少基于该指示来确定可授权应用程序使用该服务。另外,使用与执行应用程序的过程不同的过程来呈现授权用户界面。此外,机器可读介质方法通过从应用程序接收请求以授权服务来检测授权请求。
13.在另一个实施方案中,机器可读介质方法通过以下方式确定身份提供商:从服务器请求身份提供商列表,从服务器接收身份提供商列表,以及从身份提供商列表中选择身份提供商。另外,服务器是移动设备管理服务器,身份提供商是可验证身份的服务,并且授权扩展是用于输入一组用户凭据进行本地授权的用户界面部件。此外,授权用户界面包括用于从用户接收用户凭据的部件,其中该用户凭据选自由生物特征用户凭据或用户名和密码组成的组。
14.在另一个实施方案中,描述了一种授权设备使用由应用程序提供的服务的方法。在一个示例性实施方案中,方法通过在方法上执行的应用程序来检测对服务的授权请求,该服务由应用程序提供。另外,确定与应用程序相关联的身份提供商。方法还加载与所确定的身份提供商相关联的授权扩展。方法另外呈现了对应于授权扩展的授权用户界面,并且至少基于由授权用户界面接收的数据来接收对方法的本地授权。此外,方法与服务器协商授权令牌并将授权令牌返回到应用程序,其中应用程序使用该授权令牌来授权应用程序所提供的服务。
15.还描述了其他方法和装置。
附图说明
16.本发明以举例的方式进行说明,并且不仅限于各个附图的图形,在附图中类似的标号指示类似的元件。
17.图1是经由浏览器处理应用程序单点登录的系统的一个实施方案的图示。
18.图2是经由浏览器进行应用程序单点登录的流程的一个实施方案的图示。
19.图3是经由浏览器进行应用程序单点登录的过程的一个实施方案的图示。
20.图4a至图4d是用于经由浏览器进行应用程序单点登录的用户界面的实施方案的图示。
21.图5是通过拦截授权请求来处理对应用程序的应用程序单点登录的系统的一个实施方案的图示。
22.图6是通过拦截授权请求来处理对应用程序的应用程序单点登录的流程的一个实施方案的图示。
23.图7是通过拦截授权请求来处理对应用程序的应用程序单点登录的过程的一个实施方案的流程图。
24.图8a至图8d是对应用程序的应用程序单点登录的用户界面的实施方案的图示。
25.图9是使用授权过程处理对应用程序的应用程序单点登录的系统的一个实施方案的图示。
26.图10是使用授权过程处理对应用程序的应用程序单点登录的流程的一个实施方案的图示。
27.图11是使用授权过程处理对应用程序的应用程序单点登录的过程的一个实施方案的流程图。
28.图12是用于高速缓存应用程序信息的系统的一个实施方案的图示。
29.图13是注册开发者的过程的一个实施方案的流程图。
30.图14是处理用户登录的过程的一个实施方案的流程图。
31.图15示出了可与本文所述的实施方案一起使用的典型计算机系统的一个示例。
32.图16示出了可与本发明的一个实施方案一起使用的数据处理系统的示例。
具体实施方式
33.描述了一种授权设备使用服务的设备的方法和装置。在以下说明中,阐述了许多具体细节,以提供对本发明的实施方案的彻底解释。然而,对于本领域的技术人员显而易见
的是,本发明的实施方案可在不具有这些具体细节的情况下被实施。在其他情况下,尚未详细示出熟知的组件、结构和技术,以免模糊对本说明的理解。
34.在本说明书中提及“一个实施方案”或“实施方案”是指结合该实施方案描述的特定特征、结构或特性可被包括在本发明的至少一个实施方案中。在本说明书中的各个位置出现短语“在一个实施方案中”不一定都是指同一个实施方案。
35.在以下描述和权利要求中,可以使用术语“耦接”和“连接”及其派生词。应当理解,这些术语并非意在彼此同义。“耦接”被用于表示可能或可能不彼此直接物理或电接触的两个或更多个元件彼此合作或交互。“连接”被用于表示彼此耦接的两个或更多元件之间通信的建立。
36.以下附图中所示的过程由处理逻辑执行,该处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(诸如在通用计算机系统或专用机器上运行的软件)或两者的组合。虽然下文按照某些顺序操作来描述这些过程,但应当理解,所述的某些操作可以不同的顺序来执行。此外,某些操作也可并行执行而非按顺序执行。
37.术语“服务器”、“客户端”和“设备”旨在一般性地指代数据处理系统,而不是具体地指代服务器、客户端和/或设备的特定形状要素。
38.描述了一种授权设备使用服务的设备的方法和装置。在一个实施方案中,单点登录服务是允许用户使用单组凭据跨一个或多个授权域登录多个服务的服务。例如,用户可使用单个用户名和密码的组合(或另一组用户凭据)登录一家公司的媒体流服务和另一家公司的社交媒体帐户,即使这两个公司处于不同的授权域中。在该实施方案中,具有对多个授权域上的多个服务的单点登录服务,对来自各种源的各种服务,该单点登录服务允许用户仅记住单组凭据。通常,当用户希望登录第一服务时(例如,第一次启动应用程序,重新登录应用程序,通过web界面访问服务,通过数字媒体播放器访问服务,和/或向用户呈现用于服务认证的界面的另一场景),向用户呈现用户界面,该用户界面显示应用程序的本地登录用户界面和单点登录用户界面(例如,“与xyz连接”)。
39.单点登录服务的问题在于提供单点登录用户服务的实体将与各个服务提供商共享用户的私人信息。通常,私人信息的共享是在用户不知道该私人信息共享如何工作的情况下完成的。例如,用户可经由单点登录服务不经意地与服务提供商共享用户使用一个或多个应用程序的频率、用户的真实姓名、用户的真实电子邮件地址和/或其他私人信息,该服务提供商允许通过单点登录服务对其服务进行授权。
40.在一个实施方案中,新的单点登录服务允许用户使用单组凭据跨不同授权域上登录不同服务,而无需共享私人信息,除非用户明确地授权私人信息的共享。在该实施方案中,对于新的单点登录服务,用户与用户标识符相关联,该用户标识符可用于认证用户并授权用户和/或用户的设备跨多个授权域使用一个或多个服务。另外,用户可控制与这些服务提供商共享哪些信息。在一个实施方案中,用户的设备组(例如,智能电话、平板电脑、膝上型电脑、数字媒体播放器和/或另一设备)中的每个设备都是可信设备。在另一个实施方案中,用户设备是可信的,因为每个设备都已使用高信任机制(诸如双因素验证)登录。例如,在一个实施方案中,可信设备是授权域知道是用户的用户设备并且可用于验证用户身份的设备。
41.在一个实施方案中,授权域为一个或多个服务和/或一个或多个授权机制的集合,
该一个或多个服务和/或一个或多个授权机制允许通过使用该授权域的授权机制来授权用户使用由该授权域提供的一个或多个服务。另外,可使用这些授权机制来授权与用户相关联的一个或多个用户设备使用一个或多个授权服务。在一个实施方案中,每个用户与可跨授权域使用的唯一标识符(例如,用户标识符)相关联。例如,在一个实施方案中,用户和/或用户的设备可使用授权域购买应用程序、和/或购买流媒体、将内容存储在云存储器中、访问社交媒体和/或其他类型的服务。
42.在一个实施方案中,新的单点登录服务为由用户设备上的本地应用程序提供的或通过跨多个授权域的web浏览器提供的多个服务提供单点登录。这允许用户使用用户的标识符来登录不同应用程序和/或服务,而不会将用户标识符(和/或其他私人信息)暴露给不同应用程序和/或服务的开发者或提供商。
43.另外,新的单点登录服务提供第一设备上的临近单点登录,其中第二用户设备允许用户输入识别用户的一组凭据以便在该第一设备上授权服务。该单点登录服务的一个示例在于2020年5月29日提交的名称为“临近单点登录的系统和方法(systems and methods for proximity single sign on)”的美国专利申请号16/888,482中示出,该专利申请以引用方式并入本文。
44.此外,新的单点登录服务可通过提供匿名电子邮件中继来保护用户的真实电子邮件地址。该匿名电子邮件中继用于在用户与服务提供商中的一个服务提供商(例如,用户使用新单点登录服务登录的应用程序的开发者)之间隐藏用户的真实电子邮件地址。在一个实施方案中,单点登录服务允许用户在许多不同应用程序上仅记住用户标识符,并且用户可从第三方开发者获取电子邮件,而无需通过为用户和该开发者设置的电子邮件账户暴露用户的标识符信息。
45.此外,新的单点登录服务使用隐私保护机器学习风险评估系统向服务提供商提供真实的用户指示符,该隐私保护机器学习风险评估系统允许该服务提供商放弃使用用于指示真实用户正在使用其服务的其他机制(例如,允许服务提供商放弃使用额外的用户验证步骤,诸如全自动区分计算机和人类的图灵测试(captcha)机制)。匿名电子邮件中继的一个示例在于2020年5月29日提交的名称为“匿名电子邮件中继的系统和方法(systems and methods of an anonymous email relay)”的美国专利申请号16/888,461中示出,该专利申请以引用方式并入本文。
46.另外,新的单点登录服务允许用户使用与一个授权域相关联的用户标识符用于登录其他授权域的应用程序和/或服务,其中该用户标识符和/或用户设备不是其他授权域的一部分。在一个实施方案中,用户可使用作为授权域b的一部分的用户标识符来登录一个或多个应用程序,该一个或多个应用程序是授权域a1、...、an的一部分。该登录服务使得能够在一个或多个用户设备上使用应用程序,而不会向那些应用程序的开发者或提供商透露用户标识符或其他私人信息。另外,用户标识符可用于登录作为授权域b的一部分的一个或多个应用程序。
47.图1是经由浏览器处理应用程序单点登录的系统100的一个实施方案的图示。在图1中,系统100包括耦接到web服务器110、身份提供商108和移动设备管理(mdm)服务器118的授权请求设备102。在一个实施方案中,授权请求设备102是可执行应用程序的任何类型的设备(例如,智能电话、膝上型电脑、个人计算机、服务器、平板电脑、可穿戴设备、车辆部件
和/或可处理应用程序的指令的任何类型设备)。此外,在一个实施方案中,web服务器110是这样一种设备,该设备可接收对数据(网页、文档、视频、图像、音频、对象和/或任何其他类型的数据)的请求并将该数据返回到请求设备。另外,身份提供商是可以验证用户的身份的提供商。
48.在一个实施方案中,授权请求设备102包括耦接到授权请求过程106和授权过程110的浏览器104。在一个实施方案中,授权请求过程106处理对浏览器104的登录请求。另外,授权过程110用于处理对浏览器104的授权请求,并且检测授权请求并将其转发到授权请求过程106。另外,浏览器104包括发送web请求并接收对web请求的响应的web过程108。另外,web过程108处理接收到的数据并渲染该数据以供显示。
49.在一个实施方案中,mdm服务器是执行mdm服务的服务器,其中mdm服务是由信息技术部门用来监视、管理和保护员工的移动设备的一种安全服务,这些移动设备跨多个移动服务提供商并且跨在组织中使用的多个移动操作系统部署。在一个实施方案中,mdm服务器118包括身份提供商列表,其中设备可选择一个身份提供商与授权过程一起使用。
50.在另一个实施方案中,web过程108将web请求发送到web服务器112。web过程108检查设备102上的授权高速缓存114,以确定是否在该设备或另一设备上授权web请求,或者是否需要授权web请求。在一个实施方案中,授权高速缓存114包括允许授权过程110检查web请求是否需要授权的信息。在该实施方案中,授权高速缓存114可包括需要授权的域的列表。此外,授权高速缓存114可包括之前已被授权的域、统一资源标识符(uri)和/或统一资源定位符(url)的一个或多个授权令牌。因此,授权过程110可检查了解url是否需要授权或之前已被授权。另外,因为授权高速缓存114是在设备上,这些检查可在设备上完成,所以该检查不使用服务器完成。在一个实施方案中,因为不需要远程授权检查,这可以使得这些授权检查保持私密。在另一个实施方案中,定期(例如,每24小时)更新授权高速缓存114。在该实施方案中,利用与用户相关联的授权域信息和/或授权令牌来更新授权高速缓存114。在一个实施方案中,用户可在不同设备上进行授权,并且该授权(例如,通过推出授权令牌)被传播到用户的其他设备。在一个实施方案中,通过使用授权请求设备102本地的授权高速缓存114,将用户浏览的那些网站和/或应用程序保存在设备本地,因为检查是在本地完成的并且不是在远程服务器上完成的。
51.如果对web请求的url需要授权,则web过程108向授权过程110发送请求以执行对url的授权请求。授权过程110继而向授权请求过程106发送请求以加载该url的授权扩展120。在一个实施方案中,授权扩展是包括授权用户界面部件和/或资源从而与和该授权扩展相关联的身份提供商进行通信的扩展。在一个实施方案中,url与特定身份提供商(诸如身份提供商116)相关联。例如,在一个实施方案中,如果url用于流媒体服务,则对应的身份提供商可以是支持该流媒体服务的身份提供商。该身份提供商可以是为各种服务和/或url(例如,大媒体公司、技术提供商等)进行身份验证的提供商,或者为一小部分url和/或服务(例如,公司、政府、教育组织等)进行身份验证的专业身份提供商。作为响应,授权过程110接收授权扩展并使用这些扩展在设备102上加载授权用户界面。在一个实施方案中,授权用户界面由授权过程110处理,并且不是浏览器104的过程的一部分。在一个实施方案中,授权用户界面位于浏览器用户界面上方。在下面的图4a至图4d中讨论了授权用户界面的一个实施方案。
52.在一个实施方案中,授权用户界面请求用户登录所请求的url。响应于在授权过程110上呈现授权用户界面,用户选择单点登录并输入用户凭据。在接收到用户凭据的情况下,授权过程110可使用作为授权过程110的一部分的认证部件和安全硬件116来进行本地认证。例如,在一个实施方案中,授权过程110传感器捕获生物特征数据并且使用安全硬件116中的传感器数据来进行本地认证。例如,在一个实施方案中,生物特征传感器用于面部识别以采集数据,用于与安全硬件中的模板进行比较。在一个实施方案中,授权过程110通过进行本地认证来确定与授权过程110交互的用户是授权请求设备102已知的。在一个实施方案中,授权请求设备102不需要双因素认证,因为授权请求设备102是具有有效访问延续参数的可信设备。
53.如果授权过程110成功进行本地认证,则授权过程110向身份提供商116发送服务器授权请求。在一个实施方案中,服务器授权用于认证用户并授权设备102使用所请求的url。在该实施方案中,授权过程110向具有访问延续参数的身份提供商116发送安全远程协议(srp)请求。在一个实施方案中,基于设备的双因素认证,授权请求设备110是可信的。由于双因素认证,授权许可设备110接收访问延续参数,该访问延续参数可用于发送到身份提供商116的服务器授权请求中。在一个实施方案中,访问延续参数允许授权请求设备110访问与用户相关联的账户,而无需授权请求设备110提供用户的一组凭据。在一个实施方案中,访问延续参数在于2015年9月30日提交的名称为“账户访问恢复系统、方法和装置(account access recovery system,method and apparatus)”的美国专利公布号2016/0359863中有所描述,该专利公布以引用方式并入本文。响应于接收到srp请求,身份提供商116使用所接收的凭据认证用户,并且接收包括授权代码和令牌的授权响应。在一些实施方案中,身份提供商108可提供证据证明授权请求设备110是来自特定制造商的授权请求设备110,其中可提供给应用程序的设备(例如,安全硬件、生物特征认证硬件/传感器)上存在特定安全硬件。
54.在另一个实施方案中,授权过程110将授权响应返回至授权请求过程106。授权请求过程106重定向web过程108以加载web服务器112的第三方网站。web过程108使用用于uri授权的令牌来加载重定向统一资源标识符(uri)。
55.图2是经由浏览器进行应用程序单点登录的流程200的一个实施方案的图示。在图2中,流程200开始于web过程204尝试加载第三方url202(214a)。在一个实施方案中,用户经由浏览器选择url。另外,授权过程206检查url以确定是否需要授权来加载第三方url(214b)。在一个实施方案中,授权过程206通过使用如上文图1所述的设备上的高速缓存来确定第三方网站是否需要授权。如果授权过程206检测到该第三方url是需要授权的一个域的一部分,则web过程204向授权请求过程210发送请求以加载对应的授权扩展(214c)。在一个实施方案中,如上文图1所述,web过程204加载授权扩展。
56.在加载授权扩展之后,流程200开始退出过程流程216。在一个实施方案中,授权同意在过程流程外,其中这些动作(214d-214i)由与web过程204或web过程204的子过程不同的过程执行。响应于授权扩展的加载,该授权过程206向设备的用户请求授权同意(214d)。在一个实施方案中,授权进程206通过在设备上呈现授权用户界面来请求授权同意。作为响应,授权进程206通过用户202经由授权用户界面输入用户凭据而接收用户同意(214e),其中用户凭据可以是面部标识符、触摸标识符、用户个人识别码和/或另一类型的用户凭据。
在一个实施方案中,如上文图1所述,授权进程206呈现授权用户界面并接收用户同意。在该实施方案中,通过请求用户同意并接收用户同意,授权进程206进行本地认证以将用户认证对第三方网页202的授权的一部分。
57.在另一个实施方案中,在授权进程206进行本地认证的情况下,授权进程206向身份提供商208发送服务器授权请求(214f)。在一个实施方案中,服务器授权请求包括访问延续参数和url。在该实施方案中,服务器授权请求用于检查访问延续参数仍然有效,以生成网站用于授权的令牌,并且检查第三方网站被允许用于该操作(例如,与该网站的有效注册开发者相关联)。如果授权成功,则身份提供商208将授权响应返回到授权过程206(214g)。在一个实施方案中,授权响应包括访问延续参数和身份令牌。在一个实施方案中,如上文图1所述,身份提供商208将授权响应返回到授权请求过程210(214h)。授权许可过程210将web过程204重定向到第三方站点(214j)。继而,如图1所述,web过程204利用令牌加载重定向uri,其中登录流程已经完成。
58.在一个实施方案中,授权响应包括授权代码和令牌。在一个实施方案中,如于2020年5月29日提交的名称为“匿名电子邮件中继的系统和方法(systems and methods of an anonymous email relay)”的美国专利申请号16/888,461中所述,授权代码和令牌可与匿名用户标识符相关联,该专利申请以引用方式并入。
59.图3是经由浏览器进行应用程序单点登录的过程300的一个实施方案的图示。在一个实施方案中,如上文图1所述,设备经由浏览器(诸如上文图1所述的授权请求设备102)进行应用程序登录。在图3中,过程300开始于接收加载网页的请求(在框302处)。在一个实施方案中,经由浏览器接收网页请求。过程300确定过程300是否可以拦截对授权的网页请求(在框304处)。在一个实施方案中,如上文图1所述,过程300通过将网页请求的url与需要授权的已知域、uri和/或url的高速缓存进行比较,确定过程300是否可以拦截网页请求。如果网页请求不需要授权,则执行前进至框306,其中过程300正常处理网页。
60.如果所请求的网页确实需要授权,则过程300加载授权扩展(在框308处)。在一个实施方案中,过程300发送请求以加载对该url的授权扩展,接收授权扩展,并使用这些扩展在设备上加载授权用户界面。在授权扩展已加载的情况下,过程300向用户呈现授权用户界面(在框310处)。在一个实施方案中,如上文图1所述,过程300呈现授权用户界面。过程300接收用户凭据,其中用户凭据可以是面部标识符、触摸标识符、用户个人识别码和/或另一类型的用户凭据(在框312处)。在接收到用户凭据的情况下,过程300进行本地认证(在框314处)。在一个实施方案中,如上文图1所述,过程300使用作为授权过程110的一部分的认证部件和授权请求设备102的安全硬件116来进行本地认证。如果本地认证成功,则过程300向身份提供商发送服务器授权请求(在框316处)。在一个实施方案中,服务器授权请求包括访问延续参数。在该实施方案中,服务器授权请求用于检查访问延续参数仍然有效,以生成网站用于授权的令牌,并且检查第三方网站被允许用于该操作(例如,与该网站的有效注册开发者相关联)。在一个实施方案中,过程300发送srp请求,其中该请求用于识别用户和将服务器请求发送到身份提供商的设备,并且为用户授权应用程序。例如,在一个实施方案中,如上文图1所述,过程发送服务器授权请求。
61.过程300从身份提供商接收授权响应(在框318处)。在一个实施方案中,授权响应指示对应用程序的授权是否成功。例如,在一个实施方案中,如上文图1所述,过程300接收
授权响应。过程300返回将web过程重定向到uri(在框320处)。在一个实施方案中,如上文图1所述,过程300重定向web过程。在一个实施方案中,该序列可建立与网站或与网站相关联的域一起使用的匿名用户标识符。对于后续请求,匿名身份令牌和授权代码存储在授权请求设备上的应用程序授权高速缓存中,并且在用户退出应用程序之前,不需要单点登录(或应用程序的另一种类型的登录)。
62.图4a至图4d是用于经由浏览器进行应用程序单点登录的用户界面的实施方案的图示。在图4a中,浏览器400呈现web服务登录402,其包括指示点击此处登录的超链接。如果用户点击该链接404,则设备拦截请求并呈现所拦截的用户界面420,如图4b所示。在图4b中,浏览器420具有重叠在浏览器420上的叠层授权用户界面422,其中叠层授权用户界面422包括写明“提供商授权登录”的文本并且包括允许用户输入其用户凭据424的用户界面部件。如果这些用户输入的凭据成功进行授权,则可以呈现指示成功的消息,如图4c所示。在图4c中,在用户界面440上呈现“成功”消息442。在成功授权的情况下,浏览器460被重定向到第三方网页462。
63.在图1至图4中,正在为浏览器处理授权,其中拦截web请求并使用浏览器过程之外的过程提供授权。在另一个实施方案中,设备可拦截来自本地应用程序的web请求并执行过程外的授权过程。图5是通过拦截授权请求拦截来处理对应用程序的应用程序单点登录的系统500的一个实施方案的图示。在图5中,设备502包括耦接到身份提供商514和移动设备管理(mdm)服务器516的应用程序504。在一个实施方案中,设备502是执行应用程序的设备,如图1所述的设备102。此外,身份提供商116是如上文图1所述的身份提供商116。在一个实施方案中,mdm服务器是执行mdm服务的服务器,其中mdm服务是由信息技术部门用来监视、管理和保护员工的移动设备的一种安全服务,这些移动设备跨多个移动服务提供商并且跨在组织中使用的多个移动操作系统部署。在一个实施方案中,mdm服务器516包括身份提供商列表,其中设备可选择一个身份提供商与授权过程一起使用。
64.在一个实施方案中,设备502包括耦接到超文本传输协议(http)请求过程508的应用程序504,该超文本传输协议请求过程继而连接到授权过程510和单点登录(sso)过程506。在一个实施方案中,应用程序504是在由设备502执行时提供功能的软件。此外,http请求过程508是用于发送和接收对应用程序504的http请求的过程,特别是用于经由http协议发送授权请求的过程。http请求过程508使用授权过程510进行授权检查。另外,授权过程510耦接到sso过程506。在一个实施方案中,授权过程510执行对http请求过程508的授权请求。在一个实施方案中,应用程序504经由http请求发送授权请求。
65.在另一个实施方案中,应用程序504向http请求过程508发送授权请求。http请求过程508检查设备502上的授权高速缓存518,以确定是否需要处理授权请求或是否已同意授权。在该实施方案中,授权高速缓存518包括关于哪个域需要授权和/或该应用程序之前是否已被授权的信息。此外,该授权高速缓存518可包括之前已被授权的域、统一资源标识符(uri)和/或统一资源定位符(url)的一个或多个授权令牌。在一个实施方案中,通过使用设备102本地的授权高速缓存518,将用户启动或使用的那些应用程序保存在设备本地,因为这些检查是在本地完成的而不是在远程服务器上完成的。
66.如果http请求过程508确定授权请求需要授权,则该http请求过程508向授权过程510发送请求以执行授权请求。授权过程510继而向sso过程506发送请求以加载对该应用程
序504的授权扩展520。在一个实施方案中,应用程序504与特定身份提供商(如身份提供商514)相关联。例如,在一个实施方案中,如果应用程序用于流媒体服务,则对应的身份提供商可以是支持该流媒体服务的身份提供商。身份提供商可以是验证各种各样的服务和/或应用程序(例如,大媒体公司、技术提供商等)的身份的身份提供商,或者验证一小部分应用程序和/或服务(例如,公司、政府、教育组织等)的身份的专业身份提供商。作为响应,授权过程510接收授权扩展并使用这些扩展在设备502上加载授权用户界面。在一个实施方案中,授权用户界面由授权过程510处理,并且不是应用程序504的过程的一部分。在一个实施方案中,授权用户界面位于应用程序用户界面上方。在下面的图8a至图8d中讨论了授权用户界面的一个实施方案。
67.在一个实施方案中,授权用户界面请求用户登录应用程序。响应于在授权过程510上呈现授权用户界面,用户输入凭据。在接收到用户凭据的情况下,该授权过程510可使用作为授权过程510的一部分的认证部件和安全硬件522来进行本地认证。在一个实施方案中,授权过程510通过进行本地认证来确定与授权过程510交互的用户是设备502已知的。在一个实施方案中,设备502不需要双因素认证,因为设备502是具有有效访问延续参数的可信设备。
68.如果授权过程510成功通过本地认证,则授权过程510向身份提供商514发送服务器授权请求。在一个实施方案中,服务器授权用于认证用户并授权设备502使用所请求的url。在该实施方案中,授权过程510向具有用户凭据的身份提供商514发送安全远程协议(srp)请求。响应于接收到srp请求,身份提供商514使用所接收的凭据认证用户,并且接收包括授权代码和令牌的授权响应。在一个实施方案中,基于设备的双因素认证,设备502是可信的。由于双因素认证,设备502接收访问延续参数,该访问延续参数可用于发送到身份提供商514的srp请求中。在一个实施方案中,访问延续参数允许授权许可设备502访问与用户相关联的账户,而无需设备502提供用户的一组凭据。当用户改变其凭据以生成新令牌(例如,改变与一个或多个用户设备相关联的账户的密码)时,可以使用访问延续参数。在一个实施方案中,访问延续参数和令牌在于2015年9月30日提交的名称为“账户访问恢复系统、方法和装置(account access recovery system,method and apparatus)”的美国专利公布号2016/0359863中有所描述,该专利公布以引用方式并入。
69.在另一个实施方案中,授权过程510协商授权令牌并将该授权令牌返回到http请求过程508。http请求过程508将授权令牌返回到应用程序504,其中应用程序504使用该授权令牌为用户授权应用程序504。
70.图6是通过拦截授权请求来处理对应用程序的应用程序单点登录的流程的一个实施方案的图示。在图6中,流程600开始于http请求过程604检测到来自应用程序602的授权请求(614a)。此外,http请求过程604检查授权请求,以确定应用程序602是否需要授权(614b)。在一个实施方案中,http请求过程604通过使用设备上的高速缓存来确定应用程序是否需要授权,其中高速缓存包括需要授权的域的列表,如上文图5所述。如果http请求过程604检测到应用程序是需要授权的一个域的一部分,则http请求过程604向授权请求过程606发送请求以加载对应的授权扩展(614c),其中该授权过程606将该请求中继到sso过程610。在一个实施方案中,如上文图5所述,http请求过程604加载授权扩展。
71.在加载授权扩展之后,流程600开始退出过程流程616。在一个实施方案中,授权同
意在过程流程外,其中这些动作(614e-614i)由与http请求过程604或http请求过程604的子过程不同的过程执行。响应于授权扩展的加载,授权过程606向设备的用户请求授权同意(614e)。在一个实施方案中,授权同意在过程流程外,其中这些动作(614e-614i)由与应用程序602的过程不同的过程执行。在一个实施方案中,授权过程606通过在设备上呈现授权用户界面来请求授权同意。作为响应,授权过程606通过用户612经由授权用户界面输入用户凭据而接收用户同意(614f),其中这些用户凭据可以是面部标识符、触摸标识符、用户个人识别码和/或另一类型的用户凭据。在一个实施方案中,如上文图5所述,授权过程606呈现授权用户界面并接收用户同意。在该实施方案中,通过请求用户同意并接收用户同意,授权过程606进行本地认证以将用户认证为应用程序602的授权的一部分。
72.在另一个实施方案中,在授权过程606进行本地认证的情况下,sso过程610与身份提供商608协商授权令牌(614g)。在一个实施方案中,服务器授权请求包括访问延续参数和url。在该实施方案中,服务器授权请求用于检查访问延续参数仍然有效,以生成网站用于授权的令牌,并且检查应用程序被允许用于该操作(例如,与该应用程序的有效注册开发者相关联)。如果授权成功,则身份提供商608将授权令牌返回到sso过程610(614h)。在一个实施方案中,授权令牌包括访问延续参数和令牌。在一个实施方案中,如上文图5所述,sso过程610将授权响应返回到http请求过程604(614h)。http过程604将授权令牌返回到应用程序602,因此应用程序602可使用授权令牌进行授权。
73.图7是通过拦截授权请求来处理对应用程序的应用程序单点登录的过程700的一个实施方案的流程图。在一个实施方案中,设备(如上文图5所述的设备502)经由拦截来进行应用程序登录。在图7中,过程700开始于拦截来自应用程序的授权请求。在一个实施方案中,过程700接收包括授权请求的http请求。在该实施方案中,过程700检查设备上的高速缓存,其包括需要授权的域的列表。如果授权请求包括需要授权的域并且用户尚未登录,则过程700确定身份提供商(在框704处)。在一个实施方案中,过程700从服务器请求身份提供商列表并接收该列表。然后过程700对授权请求选择一个身份提供商。在一个实施方案中,服务器是如上文图5所述的mdm服务器。在一个实施方案中,过程700基于与授权请求相关联的域来选择身份提供商。
74.过程700加载与所确定的身份提供商相关联的授权扩展(在框706处)。在一个实施方案中,授权过程向sso过程发送请求以加载对该http请求的授权扩展,并且授权过程接收授权扩展并使用该扩展在设备上加载授权用户界面。在授权扩展已加载的情况下,过程700向用户呈现授权用户界面(在框708处)。在一个实施方案中,如上文图5所述,过程700使用授权用户界面向用户呈现用户授权请求。过程700接收用户凭据,其中用户凭据可以是面部标识符、触摸标识符、用户个人识别码和/或另一类型的用户凭据(在框710处)。在接收到用户凭据的情况下,过程700进行本地认证(在框712处)。在一个实施方案中,如上文图5所述,过程700使用作为授权过程510的一部分的认证部件和设备502的安全硬件522来进行本地认证。如果本地认证成功,则过程700与身份提供商协商授权令牌(步骤714)。在一个实施方案中,服务器授权请求包括访问延续参数和应用程序标识符。在该实施方案中,服务器授权请求用于检查访问延续参数仍然有效,以生成应用程序用于授权的令牌,并且检查应用程序被允许用于该操作(例如,与该应用程序的有效注册开发者相关联)。在一个实施方案中,过程700向身份提供商发送srp请求,其中该请求用于识别用户和将服务器请求发送到身份
提供商的设备,并且用于为用户授权应用程序。例如,在一个实施方案中,如上文图5所述,过程发送服务器授权请求。此外,过程700从身份提供商接收授权令牌。过程700还将授权令牌转发到请求应用程序。在一个实施方案中,应用程序使用授权令牌来授权使用应用程序。在一个实施方案中,该序列可建立与网站或与应用程序相关联的域一起使用的匿名用户标识符。对于后续请求,匿名身份令牌和授权代码存储在授权请求设备上的应用程序授权高速缓存中,并且在用户退出应用程序之前,不需要单点登录(或应用程序的另一种类型的登录)。
75.图8a至图8d是对应用程序的应用程序单点登录的用户界面的实施方案的图示。在图8a中,应用程序800呈现应用程序服务登录802,其包括指示点击此处登录的超链接。如果用户点击该链接804,则设备拦截请求并在应用程序820上呈现所拦截的用户界面,如图8b所示。在图8b中,应用程序820具有重叠在应用程序820上的叠层授权用户界面822,其中叠层授权用户界面822包括表明“提供商授权登录”的文本并且包括允许用户输入用户凭据824的用户界面部件。如果这些用户输入的凭据成功进行授权,则可以呈现指示成功的消息,如图8c所示。在图8c中,在应用程序840上呈现“成功”消息842。在成功进行授权的情况下,应用程序860呈现应用程序服务用户界面862。
76.并且如上文图5至图8所述,在一个实施方案中,http过程拦截应用程序授权。这可用于执行对应用程序的单点登录而不对该应用程序做出任何改变。在另一个实施方案中,应用程序本身可作出授权请求。图9是使用授权过程处理对应用程序的应用程序单点登录的系统的一个实施方案的图示。在图9中,过程900包括耦接到身份提供商910和mdm服务器912的应用程序904。在一个实施方案中,设备902是执行应用程序的设备,如图1所述的设备102。另外,身份提供商910是如上文图1所述的身份提供商116。此外,mdm服务器912是提供mdm服务的如上文图5所述的服务器。
77.在一个实施方案中,设备902包括应用程序904和sso过程906。另外,应用程序904包括授权过程908。在一个实施方案中,应用程序904是在由设备902执行时提供功能的软件。授权过程908是当应用程序904需要授权应用程序904的功能时应用程序902调用的过程。另外,该授权过程908耦接到sso过程506。
78.在另一个实施方案中,应用程序504调用授权过程908来授权使用应用程序。在一个实施方案中,授权过程908检查授权高速缓存914以确定应用程序904是否已被授权。在该实施方案中,授权高速缓存914包括关于哪些应用程序需要授权和/或应用程序之前是否已被授权的信息。此外,授权高速缓存914可包括之前已被授权的应用程序的一个或多个授权令牌。在一个实施方案中,通过使用设备102本地的授权高速缓存908,将用户启动或使用的那些应用程序保存在设备本地,因为这些检查是在本地完成的并且不是在远程服务器上完成的。
79.如果应用程序904尚未被授权,则应用程序过程908向sso过程发送请求以加载对该应用程序904的授权扩展916。在一个实施方案中,应用程序904与特定身份提供商(诸如身份提供商910)相关联。例如,在一个实施方案中,如果应用程序用于流媒体服务,则对应的身份提供商可以是支持该流媒体服务的身份提供商。身份提供商可以是验证各种各样的服务和/或应用程序(例如,大媒体公司、技术提供商等)的身份的身份提供商,或者验证一小部分应用程序和/或服务(例如,公司、政府、教育组织等)的身份的专业身份提供商。作为
响应,授权过程908接收授权扩展并使用这些扩展在设备902上加载授权用户界面。在一个实施方案中,授权用户界面由授权过程908处理并且是应用程序904的过程的一部分。在一个实施方案中,授权用户界面位于应用程序用户界面上方。在下面的图8a至图8d中讨论了授权用户界面的一个实施方案。
80.在一个实施方案中,授权用户界面请求用户登录应用程序。响应于在授权过程908上呈现授权用户界面,用户输入凭据。在接收到用户凭据的情况下,授权过程908可使用作为授权过程908的一部分的认证部件和安全硬件918来进行本地认证。在一个实施方案中,授权过程908通过进行本地认证来确定与授权过程908交互的用户是设备902已知的。在一个实施方案中,授权请求设备902不需要双因素认证,因为该授权请求设备902是具有有效访问延续参数的可信设备。
81.如果授权过程908成功通过本地认证,则该授权过程908向身份提供商910发送服务器授权请求。在一个实施方案中,服务器授权用于认证用户并授权设备902使用应用程序。在该实施方案中,授权过程908向具有用户凭据的身份提供商910发送安全远程协议(srp)请求。响应于接收到srp请求,身份提供商910使用所接收的凭据认证用户,并且接收包括授权代码和令牌的授权响应。在一个实施方案中,基于对设备的双因素认证,设备902是可信的。由于双因素认证,设备902接收访问延续参数,该访问延续参数可以用于发送到身份提供商910的srp请求中。在一个实施方案中,访问延续参数允许设备902访问与用户相关联的账户,而无需设备902提供用户的一组凭据。当用户改变其凭据以生成新令牌(例如,改变与一个或多个用户设备相关联的账户的密码)时,可以使用访问延续参数。在一个实施方案中,访问延续参数和令牌在于2015年9月30日提交的名称为“账户访问恢复系统、方法和装置(account access recovery system,method and apparatus)”的美国专利公布号2016/0359863中有所描述,该专利公布以引用方式并入。
82.在另一个实施方案中,sso过程906协商授权令牌并将该授权令牌返回到授权过程908。授权过程908将授权令牌返回到应用程序904,其中应用程序904使用该授权令牌为用户授权应用程序904。
83.图10是使用授权过程处理对应用程序的应用程序单点登录的流程的一个实施方案的图示。在图10中,流程1000开始于授权过程1004从应用程序1002接收授权请求(1012a)。此外,授权过程1004检查授权请求1012a以确定应用程序1002是否需要授权。在一个实施方案中,授权过程1004通过使用设备上的高速缓存来确定应用程序是否需要授权,其中高速缓存包括需要授权的域的列表。如果授权过程1004检测到应用程序是需要授权的一个域的一部分,则授权过程1004向sso过程1006发送请求以加载对应的授权扩展(1012b),其中授权过程1004将该请求中继到sso过程1010。在一个实施方案中,如上文图9所述,授权过程1004加载授权扩展。
84.响应于授权扩展的加载,授权过程1004向设备的用户请求授权同意(1012c)。在一个实施方案中,授权过程1004通过在设备上呈现授权用户界面来请求授权同意。作为响应,授权过程1004通过用户1010经由授权用户界面输入用户凭据而接收用户同意(1012d),其中用户凭据可以是面部标识符、触摸标识符、用户个人识别码和/或另一类型的用户凭据。在一个实施方案中,如上文图9所述,授权过程1004呈现授权用户界面并接收用户同意。在该实施方案中,通过请求用户同意并接收用户同意,授权过程1004进行本地认证以将用户
认证为应用程序1002的授权的一部分。
85.在另一个实施方案中,在授权过程1004进行本地认证的情况下,授权过程1004与身份提供商1006协商授权令牌。在一个实施方案中,服务器授权请求包括访问延续参数和url。在该实施方案中,服务器授权请求用于检查访问延续参数仍然有效,以生成网站用于授权的令牌,并且检查应用程序被允许用于该操作(例如,与该应用程序的有效注册开发者相关联)。如果授权成功,则身份提供商1006将授权令牌返回到授权过程1004(1012f)。在一个实施方案中,授权令牌包括访问延续参数和令牌。在一个实施方案中,如上文图9所述,授权过程1004将授权令牌返回到授权过程1004(1012g)。授权过程1004将授权令牌返回到应用程序1002,因此应用程序1002可使用授权令牌进行授权。
86.图11是使用授权过程处理对应用程序的应用程序单点登录的过程的一个实施方案的流程图。在一个实施方案中,设备(如上文图9所述的设备902)进行应用程序登录。在图11中,过程1100开始于请求身份提供商列表(在框1102处)。在一个实施方案中,如上文图9所述,过程1100从mdm服务器请求身份提供商列表。过程1100接收身份提供商的列表(在框1104处)。过程1100确定身份提供商(在框1106处)。在一个实施方案中,哪个身份提供商的过程1100取决于请求授权的应用程序。
87.过程1100加载与所确定的身份提供商相关联的授权扩展(在框1108处)。在一个实施方案中,授权过程向sso过程发送请求以加载该应用程序的授权扩展,授权过程接收授权扩展并使用该扩展在设备上加载授权用户界面。在授权扩展已加载的情况下,过程1100向用户呈现授权用户界面(步骤1110)。在一个实施方案中,如上文图9所述,过程1100使用授权用户界面向用户呈现用户授权请求。过程1100接收用户凭据,其中用户凭据可以是面部标识符、触摸标识符、用户个人识别码和/或另一类型的用户凭据(在框1112处)。在接收到用户凭据的情况下,过程1100进行本地认证(在框1114处)。在一个实施方案中,如上文图9所述,过程1100使用作为授权过程908的一部分的认证部件和设备902的安全硬件918来进行本地认证。如果本地认证成功,则过程1100与身份提供商协商授权令牌(在框1116处)。在一个实施方案中,服务器授权请求包括访问延续参数和应用程序标识符。在该实施方案中,服务器授权请求用于检查访问延续参数仍然有效,以生成应用程序用于授权的令牌,并且检查应用程序被允许用于该操作(例如,与该应用程序的有效注册开发者相关联)。在一个实施方案中,过程1100向身份提供商发送srp请求,其中该请求用于识别用户和向身份提供商发送服务器请求的设备,并授权用户使用应用程序。例如,在一个实施方案中,如上文图9所述,过程发送服务器授权请求。另外,过程1100从身份提供商接收授权令牌。过程1100还将授权令牌转发到请求应用程序。在一个实施方案中,应用程序使用授权令牌来授权使用应用程序。在一个实施方案中,该序列可建立与网站或与应用程序相关联的域一起使用的匿名用户标识符。对于后续请求,匿名身份令牌和授权代码存储在授权请求设备上的应用程序授权高速缓存中,并且在用户退出应用程序之前,不需要单点登录(或应用程序的另一种类型的登录)。
88.图12是用于高速缓存应用程序信息的系统的一个实施方案的图示。在图12中,设备1206耦接到身份提供商1202。在一个实施方案中,身份提供商1202是如上文图1所述的身份提供商102。此外,设备1206可以是授权请求设备116和/或如上文图1所述的授权许可设备102。另外,设备1206受身份提供商1202信任,因为设备1206和身份提供商1202之间建立
的信任关系是通过双因素认证建立的。在该实施方案中,设备1206可以是可执行应用程序的任何类型的设备(例如,智能电话、膝上型电脑、个人计算机、数字媒体设备、电视、服务器、平板电脑、可穿戴设备、车辆部件和/或可处理应用程序指令的任何类型的设备)。设备1206还包括一个或多个应用程序1212、浏览器1214、授权过程1208、应用程序授权高速缓存1210和安全硬件1228。在一个实施方案中,一个或多个应用程序1212中的各应用程序是软件的一个实施方案,该软件在设备1206上运行并且可执行各种功能。此外,在该实施方案中,浏览器1214可以是可通过耦接到设备1206的网络请求数据并且接收对数据的请求的web浏览器。在该实施方案中,授权过程1208不是应用程序1212或浏览器1214的过程或子过程。
89.设备1206另外包括与一个或多个应用程序1212或浏览器1214的身份提供商1202进行通信的授权过程1208。具体地讲,授权过程1208使用应用程序授权高速缓存1210和/或身份提供商1202来确定是否授权用户1216使用一个或多个应用程序1212或浏览器1214。在一个实施方案中,用户启动应用程序1212(1218)。授权过程1208检测到应用程序1212的启动并且检查应用程序授权高速缓存1210以确定用户1216之前是否已经由身份提供商1202登录应用程序1212(1220)。如果应用程序1212在应用程序授权高速缓存1210中,则应用程序1212继续启动,其中应用程序1212被配置为与私密中继和匿名用户电子邮件地址一起使用。
90.如果应用程序1212不在应用程序授权高速缓存1210中,则授权过程1208发送对应用程序1212的授权请求(1222)。在一个实施方案中,授权请求(1222)包括用于请求的数据,如全局用户标识符、应用程序1212的开发者标识符、在设备1206上生成的一个或多个令牌和/或用于授权请求的其他信息。身份管理服务器1202包括用户表,该用户表关联全局用户标识符、开发者标识符、匿名用户标识符和/或身份提供商1202为用户和开发者的该组合使用的其他信息。在该实施方案中,当与应用程序1212中的一个应用程序相关联的开发者利用身份提供商1202注册应用程序1212时,生成应用程序的开发者标识符。此外,当用户登录应用程序时生成匿名用户标识符,其中该匿名用户标识符绑定到全局用户标识符和开发者标识符。
91.响应于接收到授权请求,身份管理服务器1202将本地数据(例如,匿名用户标识符、应用程序令牌和/或由设备上的授权过程使用的其他信息)返回到设备1206的授权过程1208(1224)。在一个实施方案中,本地数据中的一些或全部数据可存储在应用程序授权高速缓存1210中。授权过程1208继而将数据返回至应用程序1212。在一个实施方案中,身份提供商1202根据来自应用程序的需求、来自用户的请求、基于其他设备上的用户活动(例如,用户登录或退出不同设备)推送、动态调度和/或另一类型的调度,为每个时间段(例如,每24小时)刷新应用程序授权高速缓存1210。在另一个实施方案中,如果用户1216在一个设备上明确地退出应用程序1212,则身份提供商1202检测到该退出并将退出推送到用户1216的其他设备。例如,在一个实施方案中,如果用户1216在智能电话上退出应用程序1212,则身份提供商1202将退出推送到其他用户1216设备的该应用程序1212上(例如,用户的平板电脑或膝上型电脑)。另选地,如果用户1216登录一个设备上的应用程序,则将该登录信息推送到用户的其他设备。
92.如上所述,在图12中,如果对应用程序1212的授权信息未存储在应用程序授权高
速缓存1210中,则设备1206向身份提供商1202发送对应用程序的授权请求。在一个实施方案中,通过使用应用程序授权高速缓存1210,设备1206可通过使用本地高速缓存(例如,应用程序授权高速缓存1210)向开发者屏蔽用户的私人信息。这是因为身份管理服务器不跟踪用户登录应用程序1212或启动应用程序。在一个实施方案中,设备1206还包括安全硬件1228。在该实施方案中,该安全硬件1228用于设备1206的用户1216的本地认证(例如,经由用户个人识别码、生物特征凭据和/或其他类型的认证数据)。
93.图13是注册开发者的过程1300的一个实施方案的流程图。在图13中,过程1300开始于从开发者接收注册,该注册包括关于开发者源电子邮件地址和/或允许的电子邮件模式的信息(在框1302处)。在一个实施方案中,开发者注册信息包括应用程序url,即开发者的基础应用程序的url,其证明了域的所有权。此外,注册信息可包括用于在授权完成之后重新定向web过程的url。在成功授权之后,可将该重定向url返回到授权请求设备。在一个实施方案中,每个开发者具有在登录过程(诸如上文所述的单点登录过程)中使用的关联的标识符。过程1300生成开发者标识符,该开发者标识符可与用户登录一起使用,为开发者的应用程序中的一个应用程序创建长使用期(在框1304处)。
94.图14是处理用户登录应用程序的过程的一个实施方案的流程图。在图14中,过程1400开始于经由应用程序接收用户登录的指示(在框1402处)。在一个实施方案中,用户登入可包括用户的全局用户标识符或绑定到全局用户标识符的另一标识符(例如,用户的辅助电子邮件地址)。另选地,用户可允许访问密码管理系统,以允许针对全局用户标识符使用用户密码,而无需用户输入tis密码。过程1400生成匿名用户标识符,并且将该标识符与应用程序的开发者标识符相关联(在框1404处)。在一个实施方案中,匿名用户标识符与开发者标识符相关联,并且该匿名用户标识符在身份提供商的授权域内是唯一的。在另一个实施方案中,匿名用户标识符和开发者标识符与用于该关联关系的其他信息(例如,匿名的用户电子邮件地址、用户的真实电子邮件地址、要共享的私人信息以及用于保持该关联的其他信息)一起存储在表中。过程1400另外将用户匿名标识符、匿名的用户电子邮件地址和可能的非私有用户信息转发至开发者(在框1406处)。
95.在一个实施方案中,开发者可使用匿名用户标识符来跟踪用户在开发者的应用程序内的动作,其中用户已登录该应用程序。在该实施方案中,当用户登录应用程序时,开发者可以跟踪用户利用应用程序执行的动作(例如,订购的商品、流媒体、利用应用程序进行浏览和/或利用开发者的应用程序进行的其他类型的动作)。因此,开发者可以使用匿名的用户电子邮件地址和所跟踪的关于用户的信息来向用户发送目标电子邮件。然而,在一个实施方案中,因为应用程序授权高速缓存存储在设备上而不是远程服务器上,所以开发者不能检索关于用户如何使用不与开发者相关联的应用程序的信息。在该实施方案中,向开发者屏蔽用户对开发者的应用程序之外的应用程序的使用。
96.图15示出了可与本发明的一个实施方案一起使用的数据处理系统1500的示例。例如,系统1500可被实现为包括如上文图1所示的授权请求设备102、如图5所示的设备502和/或如图9所示的图9。需注意,虽然图15示出了计算机系统的各种部件,但是其并不旨在表示使这些部件互连的任何特定架构或方式,因此此类细节与本发明并无密切关系。还应理解,具有较少部件或可能具有较多部件的网络计算机和其他数据处理系统或其他消费电子设备也可用于本发明。
97.如图15所示,数据处理系统形式的计算机系统1500包括耦接到一个或多个微处理器1505、rom(只读存储器)1507、易失性ram 1509和非易失性存储器1511的总线1503。微处理器1505包括一个或多个cpu、专用处理器和/或它们的组合。微处理器1505可从存储器1507,1509,1511检索指令并执行该指令以执行上述操作。总线1503与这些各种部件互连在一起,并且将这些部件1505、1507、1509和1511互连至显示控制器和显示设备1519并且将这些部件互连至外围设备诸如输入/输出(i/o)设备,该输入/输出(i/o)设备可以是鼠标、键盘、调制解调器、网络接口、打印机和本领域熟知的其他设备。通常,输入/输出设备1515通过输入/输出控制器1513耦接到系统。易失性ram(随机存取存储器)1509通常被实现为需要连续供电以刷新或保持存储器中的数据的动态ram(dram)。
98.海量存储装置1511通常为即使在系统断电后也能保持数据(例如,大量数据)的磁性硬盘驱动器或磁性光驱或光驱或dvdram或闪存存储器或其他类型的存储器系统。通常,海量存储装置1511也可以是随机存取存储器,虽然这并非是必需的。虽然图15显示海量存储装置1511为直接耦接至数据处理系统中的其余部件的本地设备,但应当理解,本发明可利用远离系统的非易失性存储器,诸如通过网络接口诸如调制解调器、以太网接口或无线网络耦接至数据处理系统的网络存储设备。该总线1503可包括通过本领域熟知的各种桥接器、控制器和/或适配器相互连接的一个或多个总线。
99.图13示出了可与本发明的一个实施方案一起使用的另一个数据处理系统1600的示例。例如,系统1600可被实现为如图1所示的授权请求设备102。图13所示的数据处理系统1600包括处理系统1611,该处理系统可以是一个或多个微处理器,或者可以是片上系统集成电路,并且该数据处理系统还包括用于存储供处理系统执行的数据和程序的存储器1601。系统1600还包括音频输入/输出子系统1605,其可包括用于例如通过扬声器和麦克风播放音乐或提供电话功能的麦克风和/或扬声器。
100.显示控制器和显示设备1609为用户提供可视用户界面;这种数字界面可包括图形用户界面,当运行os x操作系统软件时,该图形用户界面与在麦金塔计算机上显示的用户界面类似,当运行ios操作系统时,该图形用户界面与在苹果iphone上显示的用户界面类似。系统1600还包括用于与另一个数据处理系统(如图13的系统1600)通信的一个或多个无线收发器1603。无线收发器可为wlan收发器、红外收发器、蓝牙收发器和/或无线蜂窝电话收发器。应当理解,在某些实施方案中,附加部件(未示出)也可以是系统1600的一部分,并且在某些实施方案中,数据处理系统还可使用比图10中示出的部件更少的部件。系统1600还包括用于与另一个数据处理系统(如图15的系统1500)进行通信的一个或多个通信端口1617。通信端口可为usb端口、火线端口、蓝牙接口等。
101.数据处理系统1600还包括一个或多个输入设备1613,提供该输入设备允许用户向系统提供输入。这些输入设备可为小键盘或键盘或触摸面板或多点触摸面板。数据处理系统1600还包括任选的输入/输出设备1615,其可以是用于接口的连接器。应当理解,如本领域所熟知的,可使用一个或多个总线(未示出)互连各种部件。图13所示的数据处理系统可以是手持式计算机或个人数字助理(pda),或具有pda类似功能的蜂窝电话,或包括蜂窝电话的手持式计算机,或媒体播放器(诸如ipod),或结合了这些设备的方面或功能的设备,诸如在一台设备中结合了pda和蜂窝电话的媒体播放器或嵌入式设备或其他消费电子设备。在其他实施方案中,数据处理系统1600可以是网络计算机或另一个设备中的嵌入式处理设
备,或具有比图13中示出的部件更少的部件或可能更多的部件的其他类型的数据处理系统。
102.本发明的至少某些实施方案可以是数字媒体播放器的一部分,例如便携式音乐和/或视频媒体播放器,数字媒体播放器可包括呈现媒体的媒体处理系统、存储媒体的存储设备,并且可以进一步包括与天线系统和媒体处理系统耦合的射频(rf)收发器(例如,用于蜂窝电话的rf收发器)。在某些实施方案中,存储在远程存储设备上的媒体可通过rf收发器发送到媒体播放器。例如,媒体可以是音乐或其他音频、静态图片或运动图片中的一个或多个。
103.便携式媒体播放器可包括媒体选择设备,例如得自apple inc.(cupertino,ca)的或ipod媒体播放器上的点击轮(click wheel)输入设备、触摸屏输入设备、按钮设备、可移动指示输入设备或其他输入设备。可以使用媒体选择设备来选择存储在存储设备和/或远程存储设备上的媒体。在至少某些实施方案中,便携式媒体播放器可包括显示设备,该显示设备耦合到媒体处理系统以显示通过输入设备选择的并且通过扬声器或耳机或者在显示设备上、或者在显示设备上且在扬声器或耳机上呈现的媒体的标题或其他指示符。在美国公布专利号7,345,671和美国公布专利号2004/0224638中描述了便携式媒体播放器的示例,所述两个专利以引用方式并入本文。
104.上文所述内容的部分可以利用诸如专用逻辑电路之类的逻辑电路或者利用微控制器或者其他形式的执行程序代码指令的处理核来实现。从而,可利用程序代码诸如机器可执行指令来执行上述讨论所教导的过程,该机器可执行指令使得机器执行这些指令以执行某些函数。在该上下文中,“机器”可为将中间形式(或“抽象”)指令转换为特定于处理器的指令(例如,抽象执行环境诸如“虚拟机”(例如,java虚拟机)、解译器、公共语言运行时、高级语言虚拟机等)的机器,和/或被设置在半导体芯片(例如,利用晶体管实现的“逻辑电路”)上的电子电路,该电子电路被设计用于执行指令,该处理器诸如通用处理器和/或专用处理器。上述讨论所教导的过程也可通过(作为机器的替代或与机器结合)电子电路来执行,该电子电路被设计用于执行过程(或其一部分)而不执行程序代码。
105.本发明还涉及一种用于执行本文所述的操作的装置。该装置可专门构造用于所需的目的,或者可包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可被存储在计算机可读存储介质中,例如但不限于任何类型的盘,包括软盘、光盘、cd-rom和磁光盘,只读存储器(rom)、ram、eprom、eeprom、磁卡或光卡、或适用于存储电子指令的任何类型的介质,并且每一者均耦接到计算机系统总线。
106.机器可读介质包括以机器(例如,计算机)可读形式存储或传输信息的任何机构。例如,机器可读介质包括只读存储器(“rom”);随机存取存储器(“ram”);磁盘存储介质;光学存储介质;闪存设备;等。
107.制品可用于存储程序代码。存储程序代码的制品可被实施为但不限于一个或多个存储器(例如,一个或多个闪存存储器、随机存取存储器(静态、动态或其他))、光盘、cd-rom、dvd rom、eprom、eeprom、磁卡或光卡、或适用于存储电子指令的其他类型的机器可读介质。也可借助被包含在传播介质(例如,经由通信链路(例如网络连接))中的数据信号来将程序代码从远程计算机(例如,服务器)下载到请求计算机(例如,客户端)。
108.已按照对计算机存储器内的数据位进行操作的算法和符号表示来呈现前面的详
细描述。这些算法描述和表示是数据处理领域的技术人员所使用的工具,而这些工具也能最有效地将其工作实质传达给该领域的其他技术人员。算法在这里并通常是指导致所希望的结果的操作的自相一致的序列。操作是需要对物理量进行物理操纵的那些操作。通常,尽管不是必须的,但这些量采用能够被存储、传送、组合、比较以及换句话讲操纵的电信号或磁信号的形式。已被证明其在主要出于通用原因而将这些信号指代为位、数值、元素、符号、字符、术语、数字等时是方便的。
109.然而,应当牢记的是,所有这些以及类似的术语都与适当的物理量相关联,并且其只是应用于这些量的方便标签。除非另外特别说明,否则从上述讨论中显而易见的是,可以理解,在整个说明书中,使用术语诸如“检测”、“确定”、“呈现”、“重定向”、“通信”、“拦截”、“发送”、“接收”、“加载”、“协商”、“返回”、“选择”等的讨论是指对计算机系统或类似的电子计算设备的动作和处理,这些设备可对计算机系统的寄存器和存储器中表示为物理(电子)量的数据进行操纵,并将其转换成在计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备中相似地表示为物理量的其他数据。
110.本文中所呈现的过程和显示并不固有地与任何特定计算机或其他装置相关。根据本文的教导内容,各种通用系统可与程序一起使用,或者可证明其便于构造用于执行所述操作的更专用的装置。根据下文的描述,用于各种这些系统的所需结构将是显而易见的。此外,本发明未参照任何特定的编程语言进行描述。应当理解,多种编程语言可用于实现如本文所述的本发明的教导内容。
111.前面的讨论仅描述了本发明的一些示例性实施方案。本领域的技术人员将易于从这些讨论、附图和权利要求书中认识到,可在不脱离本发明的实质和范围的情况下进行各种修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1