本申请是2014年4月3日提交的名为“BROWSER BASED IDENTITY WITH MULTIPLE LOGIN”的美国专利申请No.14/244,407的后续申请并要求其优先权,其通过引用合并于此。
技术领域
本公开一般涉及web浏览器技术,并且尤其涉及用于web浏览器的身份机制。
背景技术:
web浏览器可以保持身份并且向服务器认证身份。但是,没有一种系统提供跨不同web应用的共同身份或者用于web应用(可以经由web浏览器容易地访问)的多个用户的不同身份。每次用户访问不同的web应用、web服务、或网站,用户都可能不得不单独登录。此外,用户可以具有用于各种第三方网站的多个账户,其中每个网站都各自被单独管理。例如,银行网站、社交媒体服务网站、以及照片编辑网络都可通过单独的公司或实体来管理,每个公司或实体与浏览器无关(即,可将网站视为“第三方”)。每个第三方网站可能不希望单独信任一个浏览器来认证用户。作为替代,每个第三方网站可能有它自己的用户认证方法。但是,可以证明,对于多个用户而言很难保持不同的用户名和密码,以及必须向各种不同的网站或web应用登录很多次。此外,多个用户可能希望使用相同计算机,但是每个用户对于每个网站或web应用可以具有不同的证书。因此,对于系统和方法而言存在解决现有技术的不足以及提供其他新颖和创新的特征的需要。
技术实现要素:
一种方法包括:在浏览器中提供图形用户界面元素,其中所述浏览器提供用于所述浏览器的多个不同身份,所述多个不同身份中的每个身份与不同用户相关联,所述多个不同身份中的每个身份与多个账户相关联;在从第一用户接收对所述图形用户界面元素的选择之后,将所述第一用户与第一身份相匹配,所述第一身份由所述浏览器存储并且与所述第一用户相关联;以及在从第二用户接收对所述图形用户界面元素的第二选择之后,将所述第二用户与第二身份相匹配,所述第二身份由所述浏览器存储并且与所述第二用户相关联。
该方面的其他实施方式包括对应的系统、装置和计算机程序,所述系统、装置和计算机程序被配置为执行在计算机存储设备上编码的方法的动作。
在各种实施方式中,该方法包括在与所述第一身份相关联的多个计算设备之间,自动同步与所述第一身份相关联的数据。在一些实施方式中,该方法包括使用所述第一身份从与所述浏览器相关联的web应用获得令牌;以及使用所述令牌向所述web应用认证所述第一用户。在一些实施方式中,所述web应用是使用基于浏览器的运行时间环境直接由所述计算设备的处理器预编译和执行的。在一些实施方式中,所述web应用是使用基于浏览器的语言被编码的。账户中的至少一些可以与第三方网站服务相关联。
根据另一个一般的方面,一种方法包括:在浏览器的chrome框架中提供图形用户界面元素,其中所述浏览器提供用于所述浏览器的多个不同身份,所述多个不同身份中的每个身份与不同用户相关联;在从第一用户接收对所述图形用户界面元素的选择之后,将所述第一用户与单个身份相匹配,所述单个身份由所述浏览器存储并且与所述第一用户相关联;使用所述单个身份从与所述浏览器相关联的web应用获得令牌;以及使用所述令牌向所述web应用认证所述第一用户。该方面的其他实施方式包括对应的系统、装置和计算机程序,所述系统、装置和计算机程序被配置为执行在计算机存储设备上编码的方法的动作。
在一些实施方式中,该方法包括在与所述第一用户的身份相关联的多个计算设备之间,自动同步所述单个身份。在一些实施方式中,该方法包括存储与所述单个身份相关联的令牌。在一些实施方式中,所述图形用户界面元素为所述第一用户提供将账户与所述单个身份相关联的选项。在一些实施方式中,所述单个身份与用于所述第一用户的多个账户相关联,所述多个账户中的至少一些账户与第三方web服务相关联。在一些实施方式中,所述图形用户界面元素为所述第二用户提供访问与所述浏览器相关联的第二身份的选项。在一些实施方式中,所述第二身份包括用于所述第二用户的多个账户。
在下面的附图和描述中给出一个或多个实施方式的细节。根据描述和附图以及根据权利要求,其他特征将显而易见。
附图说明
图1是执行与web应用通信的浏览器的示例计算机系统的示意性框图。
图2是根据实施方式的用于利用有多个登录的基于浏览器的身份系统的示例过程的流程图。
图3至图13是根据实施方式可以使用的web浏览器的示例用户界面。
图14是可以执行与web应用通信的应用的系统的框图。
图15是可用于实现图1至图14所述技术的计算机设备和移动计算机设备的示例框图。
各种附图中相同的附图标记指示相同的元素。
具体实施方式
图1图示出示例计算机系统102。计算机系统102可包括web浏览器应用110,所述web浏览器应用110可以显示包括各种标签的用户界面。本文所述技术和系统的各种实施方式可用于为用户保持和提供安全的浏览器身份。例如,可通过在游戏中保持高分以及在录入高分时需要知道用户是谁的web应用(例如,web应用140)来实现所述技术和系统。作为另一个示例,可通过与购物有关的web应用来使用所述系统和方法,以避免每次用户使用web应用购买物品时要求浏览器应用的用户进行登录。作为另一个示例,博客站点的操作者可以使用所述系统和方法唯一地识别在该博客站点发帖子的人。博客站点所有者不需要存储用户名和密码来识别可能不受欢迎的发帖者,因为如果博客站点被黑,那么这些用户名和密码可被用于闯入用户所保持的其他账户,导致对博客站点所有者的反映不佳。作为另一个示例,此外可通过提供电子邮件路由的网站或web应用140来使用用户的身份。
web浏览器(诸如浏览器应用110)由客户端设备执行,并且可以从远程服务器(例如,托管网站的远程服务器)接收代码(例如,HTML代码),并且还可以为了客户端设备用户的利益,在客户端设备上执行所接收的代码。在各种实施方式中,浏览器应用可以与一个或多个web应用(例如,web应用140)相关联。web应用可以是“托管应用”或“打包应用”。如同本文使用的,托管应用可包括其本身包括网页的网站的至少一部分。此外,一些web应用可包括可能特别相关于web应用或者特别相关于web应用用户的元数据,以允许web应用针对用户执行一些特定功能。打包应用可以被认为是将其代码被捆绑的web应用,因此用户可以下载web应用的所有内容,用于通过浏览器执行。打包web应用可能不需要具有网络访问来针对用户执行它的功能,而是在没有对网络的访问的情况下可以在计算设备上本地地通过浏览器成功地执行。打包web应用具有使用扩展API的选项,允许打包应用改变浏览器表现或看起来的方式。在各种实施方式中,web浏览器可包括或者被配置为与一个或多个浏览器扩展互动。在这个场境下,“浏览器扩展”可包括作为可定义的整体打包或聚组在一起,并且被配置为向web浏览器扩展功能的一个或多个网页。浏览器扩展可以是网页,并且可以使用浏览器应用提供给网页的所有应用编程接口(API)。浏览器扩展可包括HTML、CSS、JAVASCRIPT、图像、其他类型的文件、以及与web相关的计算机语言和代码。因此,浏览器扩展还向浏览器提供额外功能,但是一般而言,与web应用不同,浏览器扩展几乎不为功能提供用户界面组件。作为替代,浏览器扩展将浏览器的功能扩展并且在其中查看网站。例如,浏览器扩展可通过向地址条添加新按钮来扩展浏览器的功能,诸如始终存在的货币转换器。像这样的按钮也可以应用于当前正在查看的网站——例如,点击货币转换器按钮可将向用户呈现的网站上的所有价格转换为用户选择的货币。在另一个示例中,可以安装扩展,使得在通过,当用户将光标在浏览器所执行的网页上的缩略图上盘旋时,显示图像的更大尺寸版本,直到用户将光标从图像上移开。在另一个示例中,可以安装扩展,以将紧接着每个链接的“mail this”按钮嵌入在每个页面中。与web应用相比,扩展穿过网站和web应用。扩展可以有效地跨所有网站(虽然有一些是站点专用的)。web应用不一定通过这样的方式与其他应用组合。相反,web应用通常独立运行,就像任何正规网站。可以使用基于浏览器的语言对web应用进行编码。作为示例,例如,可以使用HTML、CSS、或JAVASCRIPT对web应用进行编码。
可以经由web浏览器(诸如浏览器应用110)从市场服务器下载平台应用(诸如图1中所示的平台应用150),并且可以将其安装在计算机系统102上。平台应用150可以使用运行时间160来操作。例如,使用运行时间160,可将平台应用150配置为由计算机系统102的处理器170(例如,微处理器)直接执行。因为是利用web技术对平台应用150进行编码的,所以不要求汇编步骤。作为替代,例如,可将平台应用150简单地打包(例如,按照CRX格式,或者压缩,例如,利用某种签名或验证),并向计算机系统102提供来自数字市场或其他远程服务器的浏览器应用。运行时间160可以接受平台应用150作为打包文件(例如,CRX文件),并且然后执行平台应用150。平台应用150可以本地加载,因此与web应用(例如,web应用140)相比,它不太依赖网络。运行时间160可以是在本地O/S 180上操作并使用多过程架构的环境。因此,如果一个平台应用150崩溃,用户不会丢失经由运行时间160也同时运行的其他平台应用。每个应用作为运行时间160上的新过程操作。运行时间160可以充当中介环境,所述中介环境允许平台应用150使用操作系统在任何计算设备上运行,只要运行时间160被安装在计算设备(诸如计算机系统102)上。运行时间160可以允许平台应用150就像它是本地应用那样出现,而平台应用150实际上不是通过O/S 180执行(但是仍然能够访问O/S 180的部分)。此外在一些实施方式中,运行时间160可用于执行浏览器应用。
web应用的示例包括电子邮件应用、日历、照片编辑应用、游戏、或银行应用。一个或多个web应用可能要求某些形式的认证,以将web应用用于个人用途。例如,访问银行web应用的用户可能需要登录或者认证自己,以访问他的个人银行账户信息。
用户可能希望避免每一次打开应用或访问网站的情况下都不得不向网站web应用重新登录或者重新认证自己。每个单个用户可具有对应的单个身份,诸如身份122、126或128。每个身份可以对于单个个人是唯一的,并且可以与由系统(例如,服务器)自动生成或存储的表格或其他数据结构相对应。身份可以对于单个个人是唯一的,并且可以表示串或其他唯一标识符,诸如“ABCSMITH18”,作为示例。每个真实个人只有一个身份,虽然每个个人可以具有多个账户或“简档”(诸如用于不同个人使用、业务、或副业的账户)。每个不同账户可以与不同网站或网站上可获取的信息相关联。例如,如果John在登录john@work.com时访问文档编辑web服务,与John在登录john@mail.com时(其中他会看到他所有的个人文档,诸如购物清单)访问相同的文档编辑web服务相比,他可能会接收不同的信息,诸如包括备忘录在内的不同工作文档。
在各种实施方式中,每个单个身份可以与多个“账户”或“人员”相关联。账户可以是包括至少一个标识符以及与特定web应用或网站相关联的数据的个人记录。账户的示例包括银行账户、电子邮件账户、或照片编辑账户。作为示例,电子邮件web应用账户可包括至少一个标识符(诸如用户名和/或密码)以及与电子邮件web应用相关联的数据(诸如消息)。作为另一个示例,银行web应用账户可包括至少一个标识符(诸如用户名和/或密码)以及与银行web应用相关联的数据(诸如检查账户余额、保存账户余额、交易、消费者与银行之间的消息、以及存款)。作为再一个示例,照片编辑web应用账户可包括至少一个标识符(诸如用户名和/或密码)以及与照片编辑web应用相关联的数据(例如,照片以及用于每个照片的元数据)。
在一些实施方式中,每个身份可包括每个网站的多个账户(例如,用于电子邮件服务或购物网站的个人、企业和家庭账户)。例如,身份122与账户123、124以及125相关联。身份126与账户127相关联。身份128与账户129相关联。每个账户可包括与单独的电子邮件地址(例如,用于某个电子邮件供应商或网站)相对应的电子邮件账户,或者每个账户可与单独的第三方账户相对应。例如,用户Anne可具有身份122,作为示例,所述身份122可以是串“Anne-Smith”。Anne的账户可包括用于Anne的电子邮件账户的第一账户123,所述第一账户123与由域example.com所托管的电子邮件web应用相对应并具有示例电子邮件地址anne@example.com。Anne的账户还可包括用于Anne的额外电子邮件账户的第二账户124,所述第二账户124与相同的示例电子邮件web应用example.com相对应并具有电子邮件地址happy@example.com。Anne的账户还可包括第三账户125,所述第三账户125与社交媒体web应用social.com相对应并具有登录电子邮件地址anne@social.com。
在各种实施方式中,web应用140(诸如由example.com所托管的电子邮件web应用)例如在由浏览器应用110请求之后可以生成至少一个令牌130,如下更详细所述。系统可以使用令牌130,所述令牌130可以是由web应用所创建的字母数字串。浏览器应用110可以存储令牌130。当用户第二次或者在将来访问web应用(或网站)时,网站向浏览器应用110发送对令牌130的请求。在接收令牌130之后,网站确定令牌130有效。如果令牌130有效,则网站生成cookie132。在一些实施方式中,仅当网站请求浏览器应用110提示用户(例如,经由图形用户界面元素(诸如弹窗)或其他请求)确定用户是否需要保存账户,并且如果用户响应于提示同意保存账户时,网站可以生成令牌130或者提供令牌130。这样的实施方式可以避免网站在没有来自用户的先前许可的情况下设置可用于识别用户的其他设备的永久证书。
浏览器应用110不一定需要解析令牌130、解释令牌130、或者与令牌130交互。浏览器应用110可以存储与适当身份相关联的令牌130以及用户账户(诸如账户123)。当用户再次访问web应用140时,浏览器应用110可以向web应用140公开令牌130。web应用140可以辨识和解释令牌130,因为web应用140先前生成了令牌130。在一些实施方式中,令牌130可以在计算机系统102与至少一个其他设备之间被同步,并且令牌可用于在至少一个其他设备上生成cookie。
在各种实施方式中,系统(诸如浏览器应用110)可以请求用户证书,以登录到浏览器应用110上的单个身份。如果两个用户共享一个设备(诸如计算机系统102),一个用户就不能在没有授权的情况下访问另一个用户的账户。因此,用户可以登录到浏览器应用110,以访问他们的身份122。
每个账户可以与一个或多个令牌130相关联。令牌130可由web应用生成并被提供给浏览器应用110。令牌可以操作为由web应用140或平台应用150使用的认证证书。例如,令牌可以是随机生成的字母数字字符串。令牌的示例是cookie和OAuth令牌。在一个示例中,浏览器应用可以允许网站将身份保存为令牌130,并指定令牌130中的字段(可以是cookie),所述字段将令牌130指定为账户等级的cookie,账户等级的cookie比常规cookie更加受信。令牌130可以生存更久,并且可以在多个用户设备之间同步。在这样的示例中,网站可以对现有的逻辑进行最小的改变,并具有这样的账户等级的字段的cookie视作长期生存的cookie。在其他实施方式中,浏览器应用可以允许网站将令牌130保存为独立于浏览器应用的cookie码。在一些情况下,令牌130本身足以访问web服务。在其他情况下,令牌130可以是刷新令牌,刷新令牌可用于产生或“铸造”其他短期生存的令牌或cookie。短期生存的令牌或cookie可以与用户更广泛使用的不太有价值的证书相对应。在这样的示例中,网站可以令浏览器应用保存单独的令牌130。当用户返回网站时,如果浏览器应用呈现令牌130,则网站可以产生短期生存的cookie。在这样的实施方式中,网站可以在要求用户登入网站之前从浏览器应用请求或检查令牌130。如果旧的cookie过期,网站可以发布新的cookie。
web应用的开发者可以轻松地跨多个设备共享令牌。web应用可利用浏览器应用110存储令牌。例如,web应用可以基于与身份122相关联的账户123生成令牌。浏览器应用110从web应用140或平台应用150接收令牌。浏览器应用110或计算机系统102可以本地存储令牌,也可以远程存储令牌。在不要求用户在每次访问尝试中都重新录入登录证书(例如,用户名或密码)的情况下,系统可以使用令牌向用户提供对web应用或平台应用的自动访问。甚至,不再要求用户录入或提供用于web应用的任何用户名或密码,并且作为替代,浏览器可以向web应用公开令牌,web应用认证令牌,并且在认证令牌时向web应用认证用户。例如,令牌可以是用于以电子方式证实身份的安全特征,例如在不需要在每次用户访问银行账户web应用时输入安全证书的情况下,通过希望访问银行账户web应用的用户来证实。对于web应用,令牌可以充当用户身份的证明。在一些实施方式中,令牌可以存储数字签名,可由被授权制作签名的web应用来利用私钥制作所述数字签名。
当在线维持用户身份的安全时,方法和系统为用户提供了方便。例如,用户可以在客户端设备上所存储的用户专用账户信息缓存中包括某些支付信息,因此如果用户选择使用受信web应用订阅针对在线电视的包月订阅,浏览器可以向web应用公开令牌或者使用令牌所生成的cookie,该令牌已经由web应用生成。令牌可以自动授权web应用(经用户同意)经由浏览器向用户的账户收取包月费,不要求用户例如向复杂的信用卡授权表或银行路由表重新录入复杂的支付信息。例如,用户可以向web应用录入账户细节一次,web应用可以相应地存储账户细节。web应用可将令牌提供给用户所使用的浏览器应用,并且浏览器应用在下一次用户试图访问web应用时可以向web应用公开令牌。然后,在不要求用户将信息或其他密码或证书信息重新录入浏览器或录入web应用的情况下,web应用可以被许可使用所存储的账户信息。
此外,本文所述方法和系统为多个用户提供了对一个或多个计算机系统上操作的浏览器应用具有多个登录的方法。每个用户可具有单个身份,但是单个身份可以与用户任意数量的账户相关联,作为示例,每个账户与电子邮件地址、第三方应用、或web服务有关。
图2是根据各种实施方式,用于利用有多个登录的基于浏览器的身份系统的示例过程的流程图。图2所示过程200至少可部分地由图1所示的计算机系统102来实现,更具体而言,例如由图1的计算机系统102中所示的处理器170来实现。如图2所示,系统可以在浏览器中提供图形用户界面元素(202)。图形用户界面元素可以在浏览器的chrome框架中显示,如下参照图3至图13更详细所述。浏览器可以提供多个不同身份,多个不同身份中中的每个身份与不同的用户相关联。例如,再参照图1,三个不同的用户可以各自与三个不同的身份(例如,身份122、身份126、以及身份128)相关联。再参照图2,在从第一用户接收对图形用户界面元素的选择之后,系统可将第一用户与由浏览器所存储并且与第一用户相关联的单个身份相匹配(204)。例如,在提供用户名以及密码或其他证书之后,用户可以点击GUI按钮或其他图形元素来选择特定身份,以登录到这个身份,例如,以下参照图3至图13更详细所述。系统可以使用单个身份从执行浏览器的本地计算设备上所安装的web应用获得令牌(206)。例如,再参照图1,系统可以使用身份122(例如,使用账户123)从与计算机系统102中所安装的浏览器应用110相关联的web应用140获得至少一个令牌130。系统可以使用令牌向web应用140认证第一用户(208)。例如,令牌130可以是由web应用140所生成的串。在一些情况下,web应用140可以使用令牌130生成cookie。浏览器应用110不需要解释令牌130(或cookie),但是相反,浏览器应用110存储令牌130,然后在需要的时候向web应用140公开令牌130,例如,每次用户打开或访问web应用140的时候。
图3是图示出有登录元素的示例浏览器应用的示例用户界面。如图3所示,用户界面310包括至少一个区域312,它在网站或网页314的区域外部。可将区域312称为浏览器应用的“chrome”。“chrome”可包括web浏览器窗口(诸如用户界面310)的边界,作为示例,它可以包括窗口框架、菜单、工具条以及滚动条。
区域312可包括图形用户界面元素320,在本示例中它包括“登入”下拉菜单选项。其他实施方式可在用户界面310的其他区域中(作为示例,例如在网页314中)包括图形用户界面元素(诸如元素320)。
图4是图示出有登录元素的示例浏览器应用的另一个示例用户界面。如图4所示,用户界面310可包括具有下拉菜单412的另一个图形用户界面元素410“Guest”。作为示例,菜单412可以为用户提供作为匿名访客使用浏览器应用、或者结束访客会话的选项。
图5是图示出有登录元素的示例浏览器应用的另一个示例用户界面。如图5所示,用户界面310可包括具有下拉菜单512的另一个图形用户界面元素,例如当用户选择元素320之后,浏览器应用可以显示下拉菜单512。菜单512可包括用于“人员1”来“登入身份”的选项或者“作为访客浏览”的选项以及“添加人员”的选项。
图6是图示出有登录元素的示例浏览器应用的另一个示例用户界面。如图6所示,用户界面310可包括窗口610,窗口610可以是用户选择另一个图形用户界面元素(诸如图5所示菜单512中的元素)之后出现的弹窗,以“登入身份”。窗口610可以向用户提供“向身份添加账户”的选项612,以允许用户向与用户相关联的身份添加电子邮件或其他账户。用户可以选择“现在跳过”或“向身份添加账户”。
在各种实施方式中,用户可以在不必提供用户名和密码的情况下在网站上打开新的账户。在这样的情况下,网站可以提示用户打开账户。网站可以通知用户,用户不必录入密码来进入网站,只要用户在访问网站的时候登录到他的身份(例如,经由浏览器应用)。
图7是图示出有登录元素的示例浏览器应用的另一个示例用户界面。如图7所示,用户界面310可包括窗口710,窗口710可以是用户选择另一个图形用户界面元素(诸如图6所示选项612)之后出现的弹窗。如图7所示,可以向用户身份添加账户。
图8是图示出有登录元素的示例浏览器应用的另一个示例用户界面。如图8所示,除了其他用户界面元素之外,用户界面310还可包括窗口810。窗口810可以显示与登入用户身份相关联的各种账户。在本示例中,用户“John Doe”具有与其单个身份相关联的两个账户:johndoe@gmail.com(可以表示个人电子邮件账户)以及johndoe@google.com(可以表示公司账户)。此外,窗口810可包括选项820,以“管理John的账户”。此外,每个账户可以与唯一的图标、照片、头像相关联,如窗口810所示。如果用户选择选项820,则另一个窗口会出现,如图9所示。
图9是另一个示例用户界面。图9包括窗口910,它显示与用户相关联的各种账户,包括用于每个账户的可选择的图形用户界面元素(诸如元素912),以及管理账户的各种选项。
图10是另一个示例用户界面。图10包括窗口1010,窗口1010可包括下拉菜单,下拉菜单包括与浏览器应用相关联的各种用户身份。在本示例中,如窗口1010所示,用户“John”登入浏览器应用,并且作为用于另一个用户登入到与具有适当证书(诸如登录名和密码)的浏览器应用相关联的“Jane”身份的选项,用户“Jane”也有效。图10所示的用户界面可以允许至少一个用户在不必每次用户访问网站时都登录到账户或者登录到网站的情况下在账户之间容易地切换。作为用户登录到各种账户的替代,用户登录到身份,身份可以与多个个人账户(诸如电子邮件账户)相关联。此外,如果使用账户“A”登录到网站,与使用账户“B”访问网站相比,用户可能得到通过网络提供给他的不同信息,同时用户仍然登录到单个身份。一旦用户登录到身份,在一些情况下,用户可以在不必重新认证自己的情况下在账户之间切换。例如,Jane可以管理jane@123.com、jane2@456.com、以及jane@here.com。Jane可以登录与知道她的不同账户的浏览器相关联的身份一次,然后Jane可以在不必重新输入用于账户的任何登录证书的情况下通过简单地点击用户界面按钮在账户之间切换(例如,从jane@123.com切换到jane2@456.com)。
图11是另一个示例用户界面。图11包括窗口1110,作为示例,窗口1110可包括用于用户锁定浏览器、作为访客浏览、或者添加新用户的选项。在用户锁定浏览器的示例中,用户可以暂停浏览器会话,从而在离开浏览器之前(例如,在恢复会话之前),在浏览器上有效地放置隐私屏障。窗口1110可以是弹出脚本或HTML窗口,所述弹出脚本或HTML窗口包括与用于用户管理账户或者与浏览器应用相关联的身份的选项有关的各种信息。在各种其他实施方式中,用户还可以登出浏览器。
图12是另一个示例用户界面1210,用户界面1210可以表示web浏览器窗口。该窗口可包括图形用户界面元素1220和1230。元素1220可以与第一身份“Sarah”相关联,且元素1230可以与第二身份“John”相关联,每个身份与单个用户相对应。元素1220和1230可以是可选择的图标、头像、照片、文本、或者它们的组合,并且在选择元素1220或1230之后,可以要求用户提供登录证书(诸如用户名和密码),以访问身份,以及与身份相关联的账户。此外,用户界面1210可包括图形用户界面元素选项,包括“作为访客浏览”的选项1240和“添加人员”的选项1250。替选地或附加性地,在选择元素1220之后,可以提示用户只输入密码,如图13通过元素1310所示。
在某些实施方式中,浏览器应用可以提供身份服务,从而可将用户专用账户信息(诸如电子邮件地址、登录、银行路由信息、游戏证书)或其他信息与用户的身份相结合并且与浏览器相关联地存储,然后自动提供具有访问用户专用信息的许可的web应用。通过这种方式,当用户将来从相同的浏览器应用使用web应用时,用户可以向web应用授予许可一次,以访问这样的用户专用账户信息,然后可以不需要手动提供或者授权这样的账户信息(诸如银行路由信息)的提供。此外,访问相同浏览器的多个用户可以登录到他们的身份,以经由相同的浏览器利用他们的账户信息。因此,用户可以存储用户专用的身份(包括账户信息),然后可以允许通过已经被授予访问信息的许可的某些web应用所使用信息,但是不允许通过没有明确许可访问用户专用账户信息的其他网站或web应用使用信息。通过这样的方式,可以对用户有利地利用web应用,因为用户不一定想要与他访问的任何随机网站共享其用户专用账户信息,但是可以发现,有利的是能够容易地向web应用提供这样的信息,所述web应用安装在执行存储用户身份的浏览器的一个或多个本地客户端计算设备上。
在一些实施方式中,用户可通过登录到与不同服务相关联的多个不同账户来访问各种服务。例如,用户可以登录到与用户的在线电子邮件账户、用户的在线社交网络账户、用户的在线照片账户、或者内容网站上的账户(例如,新闻网站、游戏网站、娱乐网站等等)等等相关联的账户。同步服务器可以保证来自计算设备(例如,图1所示的计算机系统102)的本地数据跨所有用户设备或者用于将用户登录到单个身份的所有设备同步。例如,同步服务器可将至少一个令牌(诸如图1中的令牌130)与另一个用户设备同步。进一步地,同步服务器可以跨不同设备同步,所述不同设备都安装了web应用、浏览器扩展、浏览器书签、设置、简档、浏览器历史、主题、插入程序、本地许可、用户专用账户信息、令牌、以及针对用户的与web应用和浏览器扩展相关联的数据。例如,如果计算机系统102的用户通过计算机系统102访问身份122(例如,经由浏览器应用110),那么同步服务器可将设置以及与web应用相关联的数据(例如,用户选择同步的web应用)从用户账户拷贝到另一个设备(诸如电话)。在一个计算设备上对设置的改变可以从其他计算机自动拷贝(例如,经由同步服务器)(例如,如果用户启用了同步特征)。当同步数据在计算设备与同步服务器之间传送时可将其加密,以保持信息安全。
在各种实施方式中,可通过安全的方式将包括账户123、124和125的身份122、126和128以及关联数据(诸如与账户相关联的登录证书或令牌)永久存储在非易失性存储器(例如,存储器190)内,然后在用户成功登录到浏览器应用110时被加载。
在另一个实施方式中,可将用户专用身份信息永久存储于在线服务器的存储器设备中。然后,当用户登录到与由在线服务器所提供的服务相关联的账户时,可将用户专用身份从在线服务器下载到计算机系统102的缓存,经用户许可,用于由浏览器应用110使用。可以使用安全加密技术来下载身份,从而在下载时保护信息。
浏览器应用110可以与用于不同用户的身份信息相关联。例如,不同用户可通过由浏览器所提供的用户界面提供登录信息,如下参照图3至图13更详细所述,因此浏览器可以检索和缓存用于不同用户的不同用户专用身份。替选地或附加性地,相同客户端设备的各种用户(例如,使用相同台式电脑的丈夫和妻子)可以创建和保持具有独立身份信息的独立身份简档,但是可以允许使用他们身份中的每个其他许可。
web应用可通过各种方式使用用户专用身份信息。例如,web应用可通过web应用将用户专用内容提供给用户,其中用户专用内容是基于由浏览器提供给web应用的用户专用身份信息。用户专用内容可以是基于用户兴趣、人口统计学、位置、或者其他这样的用户专用身份信息来特别选择的内容。
浏览器可以由多个用户共享,并且每个用户可以具有与单个身份相关联的不同账户。因此,当不同用户登录到浏览器并在浏览器中启动电子邮件web应用的时候,该应用可以基于为了每个不同用户由web应用从浏览器拉取的账户信息,将不同的用户专用内容提供给每个不同用户,除了启动web应用之外,用户不必在登录到浏览器之后采取任何附加步骤(例如,登录、输入密码等等)。
图14是在应用与web应用之间令牌交换的示例的框图。图14包括应用1420,应用1420至少包括一个身份1422。可以是web浏览器的应用1420与至少一个web应用1440通信。身份1422“John”可包括至少两个账户1424和1426。多个用户身份可以与应用1420相关联,但是一般而言,一次只有一个用户可以登录到应用1420。
身份1422没有被提供给web应用1440或者提供给其他网站,从而在线为用户身份提供安全。但是经用户同意,利用用户账户信息加密的消息(诸如关于账户1424的消息)可以被提供给web应用1440或者提供给其他网站,从而消除每次用户希望使用应用1420访问不同web应用的时候重新录入个人身份信息(诸如姓名、登录、甚至金融信息)的需要。例如,系统可将cookie1430提供给web应用。
web应用1440可以响应于提供账户信息(例如,web应用1440第一次接收账户信息的时候),从web应用1440接收令牌1428。令牌1428可以是安全、唯一的密钥或者字母数字串。web应用1440可以使用令牌1428自动向web应用1440认证用户,消除每次用户希望使用应用1420访问web应用的时候连续向不同的web应用重新认证自己的需要。在一些情况下,系统可以使用令牌1428生成cookie1430。在各种实施方式中,每个web应用可以向应用1420提供单独的令牌1428至少一次。令牌1428例如可以本地地被存储在执行应用1420的计算设备的存储器中,或者在一些实施方式中例如可以远程地被存储在服务器处。在一些实施方式中,令牌1428可以独立于机器,并且可以在与身份1422相关联的多个计算设备之间同步。例如,当用户登录到单独的计算机系统中并访问网站时,系统可以基于用户的身份经由第二设备向网站公开令牌,并且在一些情况下,用户可以自动登录到网站。
在各种实施方式中,如果cookie1430过期,则应用1420可以使用令牌1428生成新的cookie1430。在一些情况下,应用1420可以返回web应用1440并且向web应用1440公开对应的令牌1428,以从web应用1440检索新的令牌1428。应用1420可以使用新令牌生成新cookie。
因此,应用1420可以利用用户身份向至少一个web服务(诸如web应用,可以是平台应用)公开身份,获得令牌,并使用令牌向web应用认证用户。因此,账户管理可以在应用等级(例如,浏览器等级)发生。
图15示出通用计算机设备1500和通用移动计算机设备1550的示例,它们可利用本文所述的技术来被使用。计算设备1500旨在表示各种形式的数字计算机,诸如膝上型、台式、工作站、个人数字助理、服务器、刀片服务器、主机、以及其他适当的计算机。计算设备1550旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话、以及其他类似的计算设备。本文所示的组件、它们的连接和关系、以及它们的功能只是为了示例,并非要限制本文档所述和/或所要求保护的发明的实施方式。
计算设备1500包括处理器1502、存储器1504、储存器设备1506、连接到存储器1504和高速扩展端口1510的高速接口1508、以及连接到低速总线1514和储存器设备1506的低速接口1512。每个组件1502、1504、1506、1508、1510和1512都使用各种总线互连,并且可以安装在公共主板上或者视情况通过其他方式安装。处理器1502可以处理指令,所述指令用于在计算设备1500内执行,包括存储器1504中或者储存器设备1506上所存储的指令,以在外部输入/输出设备(诸如被耦合到高速接口1508的显示器1516)上显示用于GUI的图形信息。在其他实施方式中,可以视情况连同多个存储器和多种类型的存储器一起使用多个处理器和/或多个总线。此外,可将多个计算设备1500与提供必要操作的一部分中的每个设备(例如,服务器群、刀片服务器组、或者多处理器系统)相连接。
存储器1504存储计算设备1500内的信息。在一个实施方式中,存储器1504是易失性存储器单元。在另一个实施方式中,存储器1504是非易失性存储器单元。存储器1504也可以是其他形式的计算机可读介质,诸如磁盘或光盘。
储存器设备1506能够为计算设备1500提供大容量存储。在一个实施方式中,储存器设备1506可以是计算机可读介质或者包含计算机可读介质,例如软盘设备、硬盘设备、光盘设备、磁带设备、闪存设备或者其他类似的固态存储器设备、或者设备的阵列,包括存储区域网络或其他配置中的设备。计算机程序产品可以在信息载体中以有形的方式具体体现。此外,计算机程序产品也可包含在执行的时候进行诸如上述方法的一个或多个方法的指令。信息载体是计算机或机器可读介质,诸如存储器1504、储存器设备1506、或处理器1502上的存储器。
高速控制器1508为计算设备1500管理带宽密集型操作,而低速控制器1512管理较低的带宽密集型操作。这样的功能分配仅是示例性的。在一个实施方式中,高速控制器1508被耦合到存储器1504、显示器1516(例如,通过图形处理器或加速器),并被耦合到高速扩展端口1510,高速扩展端口1510可以接受各种扩展卡(未示出)。在实施方式中,低速控制器1512被耦合到储存器设备1506和低速扩展端口1514。可包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以被耦合到一个或多个输入/输出设备,诸如键盘、指针设备、扫描仪、或网络设备(诸如交换机或路由器),例如通过网络适配器。
计算设备1500可以按照多种不同的形式实现,如图所示。例如,可将其实现为标准服务器,或者在这样的服务器组中实现多次。此外,可将其实现为机架式服务器系统1524的一部分。此外,可以在个人计算机(例如,膝上型计算机1522)中实现。替选地,可将来自计算设备1500的组件与移动设备(未示出)中的其他组件组合,诸如设备1550。这些设备中的每个设备都可包括一个或多个计算设备1500、1550,并且整个系统可由相互通信的多个计算设备1500、1550组成。
除了其他组件之外,计算设备1550还包括处理器1552、存储器1564、输入/输出设备(例如,显示器1554)、通信接口1566、以及收发器1568。此外,可以为计算设备1550提供储存器设备,诸如微型驱动或其他设备,以提供附加存储。组件1550、1552、1564、1554、1566和1568中的每个都使用各种总线互连,并且若干组件可以安装在公共主板上或者视情况通过其他方式安装。
处理器1552可以执行计算设备1550内的指令,包括存储器1564中所存储的指令。可将处理器实现为芯片的芯片组,包括独立的多个模拟和数字处理器。例如,处理器可以提供设备1550其他组件的协同,诸如用户界面的控制、由设备1550运行的应用、以及设备1550的无线通信。
处理器1552可通过被耦合到显示器1554的控制接口1558以及显示器接口1556与用户通信。例如,显示器1554可以是TFT LCD(薄膜晶体管液晶显示器)或者OLED(有机发光二极管)显示器,或者其他适当的显示器技术。显示器接口1556可包括用于驱动显示器1554的适当电路,以向用户呈现图形信息和其他信息。控制接口1558可以接收来自用户的命令并将其转换,用于提交给处理器1552。此外,可以提供外部接口1562与处理器1552通信,从而实现设备1550与其他设备的近场通信。例如,外部接口1562在一些实施方式中提供有线通信,或在其他实施方式中提供无线通信,并且还可以使用多个接口。
存储器1564在计算设备1550内存储信息。可将存储器1564实现为计算机可读介质或介质、易失性存储器单元、或者非易失性存储器单元中的一个或多个。此外,可提供扩展存储器1574并通过扩展接口1572被耦合到设备1550,例如,扩展接口1572可包括SIMM(单列直插式存储器模块)卡接口。这样的扩展存储器1574可以为设备1550提供额外的存储空间,也可以为设备1550存储应用或其他信息。具体而言,扩展存储器1574可包括执行或补充上述过程的指令,并且还包括安全信息。因此,例如,可以提供扩展存储器1574作为用于设备1550的安全模块,并且可利用许可安全使用设备1550的指令来编程。此外,可以连同附加信息一起经由SIMM卡提供安全应用,诸如以不可破解的方式在SIMM卡上放置识别信息。
例如,存储器可包括闪存和/或NVRAM存储器,如下所述。在一个实施方式中,计算机程序产品可以在信息载体中以有形的方式具体体现。此外,计算机程序产品包含在执行的时候进行诸如上述方法的一个或多个方法的指令。信息载体是计算机或机器可读介质,诸如存储器1564、扩展存储器1574、或处理器1552上的存储器,例如可通过收发器1568或外部接口1562来接收。
设备1550可通过通信接口1556以无线方式通信,必要时通信接口1556可包括数字信号处理电路。除了其他之外,通信接口1556可以在各种模式或协议下提供通信,诸如GSM语音呼叫、SMS、EMS、或MMS消息、CDMA、TDMA、PDC、WCDMA、CDMA2000、或GPRS。例如,这样的通信可通过射频收发器1568发生。此外,短距通信诸如可使用蓝牙、WiFi、或其他这样的收发器(未示出)发生。此外,GPS(全球定位系统)接收器模块1570可以向设备1550提供附加的导航和位置相关的无线数据,可以视情况通过设备1550上运行的应用来使用。
此外,设备1550可以使用音频编译码器1560以听得见的方式通信,音频编译码器1560可以从用户接收语音信息并将其转换为可以使用的数字信息。音频编译码器1560同样可以为用户生成听得见的声音,诸如通过扬声器,例如在设备1550的耳机中。这样的声音可包括来自语音电话呼叫的声音,可包括所记录的声音(例如,语音消息、音乐文件等等),并且可包括通过设备1550上操作的应用所生成的声音。
计算设备1550可以按照多种不同的形式被实现,如图所示。例如,可将其实现为蜂窝电话D80。此外,可将其实现为智能电话D82、个人数字助理、或其他类似移动设备的一部分。
本文所述系统和技术的各种实施方式可以在数字电子电路、集成电路、特别设计的ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些不同的实施方式可包括一个或多个计算机程序中的实施方式,计算机程序在包括至少一个可编程处理器的可编程系统中可执行和/或可解释,可编程处理器可以是专用的,也可以是通用的,被耦合以从存储系统、至少一个输入设备以及至少一个输出设备接收数据和指令,以及向存储系统、至少一个输入设备、至少一个输出设备传送数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以在高级程序性编程语言和/或面向对象的编程语言,和/或在汇编/机器语言中实现。如同本文使用的,术语“机器可读介质”、“计算机可读介质”表示用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”表示用于向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的互动,本文所述系统和技术可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户由其向计算机提供输入的键盘和指针设备(例如,鼠标或轨迹球)的计算机上实现。也可以使用其他类型的设备来提供与用户的互动;例如,向用户提供的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈、或触觉反馈);并且可以按照任何形式接收来自用户的输入,包括声音、语音、或触觉输入。
本文所述系统和技术可以在包括后端组件(例如,作为数据服务器)的计算系统中实现,或者在包括中间件组件(例如,应用服务器)的计算系统中实现,或者在包括前端组件(例如,具有图形用户界面或web浏览器的客户端计算机,用户通过其与本文所述系统和技术的实施方式互动)的计算系统中实现,或者在这些后端组件、中间组件、或前端组件的任何组合的计算系统中实现。系统的组件可通过数字数据通信(例如,通信网络)的任何形式或介质互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和互联网。
计算系统可包括客户端和服务器。客户端和服务器一般相互远离并通过通信网络交互。客户端与服务器的关系由于在各个计算机上运行并且相互具有客户端-服务器关系的计算机程序而出现。
已经描述了多个实施例。但是应当理解,在不脱离本发明精神和范围的情况下,可以进行各种修改。
此外,附图所示的流程图并不要求所示的特定顺序或连续顺序来获得期望的结果。此外,可以向所述流程提供其他步骤,或者从所述流程消除步骤,并且可以向所述系统添加其他组件,或者从所述系统移除其他组件。因此,其他实施例均落入后附权利要求的范围。