从客户端应用的实例获得设备指纹的制作方法

文档序号:11532540阅读:295来源:国知局
从客户端应用的实例获得设备指纹的制造方法与工艺



背景技术:

通过可经由至少一个计算机网络访问的计算资源实现的远程服务可以将用户的数据与相应的用户账户相关联。例如,诸如云数据存储服务的远程服务可以将用户的数据与用户在该服务中的账户相关联。在这样的示例中,用户可以登录到服务以访问与用户的账户相关联的数据。

附图说明

以下详细描述参考附图,其中:

图1是用以基于应用设备指纹将客户端应用的实例与用户账户配对的示例计算设备的框图;

图2是包括远程服务的示例计算环境的框图,所述远程服务包括用以在没有用户输入的情况下将客户端应用的实例与用户账户配对的系统;

图3是用于基于应用设备指纹且在没有用户输入的情况下将客户端应用的实例与用户账户配对的示例方法的流程图;以及

图4是用于获得由未配对的客户端应用的实例基于设备上下文信息确定的应用设备指纹的示例方法的流程图。

具体实施方式

如上所述,使用可经由(一个或多个)计算机网络访问的远程服务可以涉及到登录到用户账户中以访问远程服务中的数据。在一些示例中,远程服务(诸如基于云的数据存储服务)可以提供在诸如智能手机、平板、膝上型计算机等的移动计算设备上利用的相关联的客户端应用(或“app”)。在这样的示例中,在经由web浏览器登录到远程服务之后,用户可以下载针对该远程服务的客户端应用,并然后将与用户的账户相关联的登录凭证手动地输入到客户端应用以访问远程服务和用户在该远程服务中的数据。

然而,手动地输入这样的凭证对用户来说可能是不方便的、在小的触摸屏上完成可能是难以处理的等等。随着用于访问这样的服务的移动设备的数量大大增加,这些困难对于希望在多个不同设备上使用客户端应用实例的用户来说同样可能是大大增加的。

为了解决这些问题,本文中描述的示例可以通过将针对用来访问远程服务的客户端计算设备的设备指纹与用户账户相关联来简化客户端应用登记过程。在本文中描述的一些示例中,可以使用指纹来在未配对的客户端应用的实例处于先前经由web浏览器登录了的同一客户端计算设备上时进行确定。响应于这样的确定,本文中描述的示例可以将客户端计算设备上的客户端应用的实例与先前经由浏览器登录的用户账户进行配对,而无需通过下载的客户端应用进行的账户凭证的用户输入。

在本文中描述的示例中,远程服务可以从客户端计算设备上的web浏览器获得用于远程服务的目标用户账户的登录信息,从web浏览器获得用于客户端计算设备的设备上下文信息,以及基于所获得的设备上下文信息将目标设备指纹与远程服务中的目标用户账户相关联。在本文中描述的一些示例中,远程服务可以进一步从未配对的客户端应用的实例获得由客户端应用的实例基于用于包括客户端应用的实例的计算设备的设备上下文信息确定的应用设备指纹,并且可以响应于应用设备指纹与目标设备指纹相匹配的确定来基于所获得的应用设备指纹且在没有用户输入的情况下将客户端应用的实例与目标用户账户配对。

在本文中描述的一些示例中,目标设备指纹可以是基于从计算设备上的web浏览器得到且用于登录到目标用户账户的用于计算设备的设备上下文信息。在这样的示例中,目标设备指纹可以表示用web浏览器登录到目标用户账户中的计算设备的身份。在一些示例中,从客户端应用的实例获得的应用设备指纹也可以是基于用于在其上下载所述实例的计算设备的设备上下文信息。在这样的示例中,应用设备指纹可以表示在其上下载客户端应用的实例的计算设备的身份。在这样的示例中,应用设备指纹与目标设备指纹匹配的确定可以指示客户端应用的实例被下载在先前登录到了目标用户账户的计算设备上。在一些示例中,基于这样的匹配,本文中描述的示例可以响应于该匹配且在没有用户输入的情况下将客户端应用的实例与目标用户账户配对。以这种方式,本文中描述的示例可以简化客户端应用登记过程,使得可以将客户端应用的实例与远程服务配对,而无需用户将凭证输入到下载并安装的客户端应用实例中。

现在参考附图,图1是包括用以基于应用设备指纹将客户端应用的实例194与用户账户配对的计算设备100的示例计算环境101的框图。在图1的示例中,计算环境101包括至少部分地由包括计算设备100的至少一个计算设备实现的远程服务105。

计算设备100包括处理资源110和包括指令122-126(例如,编码有指令122-126)的机器可读存储介质120。在一些示例中,存储介质120可以包括附加的指令。在一些示例中,指令122-126以及在本文中关于存储介质120描述的任何其它指令可以是处理资源110可执行的,并且可以被存储在远离计算设备100和处理资源110但可(例如,经由计算机网络)对其进行访问的机器可读存储介质上。在本文中描述的示例中,处理资源可以包括例如包括在单个计算设备中的或者跨多个计算设备分布的一个处理器或多个处理器。如本文中所使用的,“计算设备”可以是台式计算机、笔记本计算机、工作站、平板计算机、移动电话、智能设备(例如,智能电话)、服务器、刀片机箱、打印设备或任何其它处理设备或装备。

在本文中描述的示例中,“远程服务”可以是由与可用于经由至少一个计算机网络访问(一个或多个)服务的客户端计算设备分离且不与其直接相连的(一个或多个)计算设备实现的服务或服务的集合。在图1的示例中,计算设备100可以包括至少一个网络接口设备(例如,诸如在图2中所图示的网络接口设备240)。在本文中描述的示例中,“网络接口设备”可以是用以通过至少一个计算机网络进行通信的硬件设备。在一些示例中,网络接口可以是网络接口卡(nic)等。如本文中所使用的,计算机网络可以包括例如(一个或多个)局域网(lan)、(一个或多个)无线局域网(wlan)、(一个或多个)虚拟私人网(vpn)、互联网、(一个或多个)电话网络(例如,(一个或多个)蜂窝电话网络)等,或其组合。在本文中描述的示例中,远程服务105的计算设备100可以使用至少一个网络接口设备经由(一个或多个)计算机网络与(一个或多个)客户端计算设备(例如,计算环境101的客户端计算设备190)通信。

在图1的示例中,指令122可以从客户端计算设备190上的web浏览器192获得用于远程服务的目标用户账户的登录信息180。例如,web浏览器192可以导航到用于远程服务105的登录页面,并且web浏览器192可以(例如,经由用户输入或从客户端计算设备190的存储器)得到用于目标用户账户的登录信息180并将它们提供给远程服务105。在这样的示例中,指令122可以从web浏览器192获得登录信息180(例如,凭证)(诸如用户名(例如,电子邮件地址)和密码),确定登录信息180是否是有效的(例如,对应于由远程服务存储的针对特定用户账户的登录信息)。当登录信息180是有效的时,指令122可以向客户端计算设备190的web浏览器192提供对远程服务105的访问以及与跟登录信息180相关联的目标用户账户相关联的数据。

在本文中描述的示例中,计算设备、系统、指令或其引擎等可以主动地“获得”(例如,检索等)或被动地“获得”(例如,接收等)信息。在本文中描述的示例中,“客户端计算设备”可以是如本文中描述的任何类型的计算设备,包括移动计算设备(诸如移动电话)、智能设备(例如,智能电话)、平板计算机、膝上型计算机,或包括在未连接到外部电源时能够为设备供电的便携式能源(例如,电池等)的任何其它类型的计算设备。在本文中描述的示例中,客户端计算设备上的“web浏览器”或“浏览器”可以是任何合适的计算机应用(即机器可读指令),当其被安装在客户端计算设备上时,可以被执行以例如访问并导航(例如,万维网上的)网页、在客户端计算设备上显示网页的内容以及执行(一个或多个)网页的机器可读指令(例如,javascript等)等等。

在图1的示例中,指令123可以从客户端计算设备190的web浏览器192获得用于客户端计算设备190的设备上下文信息182。例如,web浏览器192可以收集用于客户端计算设备190的设备上下文信息182并将其返回到远程服务105。在一些示例中,web浏览器192可以访问包含机器可读指令的远程服务105(例如,由其服务)的网页,当所述机器可读指令由web浏览器192执行时引起web浏览器192收集设备上下文信息182。

在一些示例中,计算设备190的用户可以通过将客户端计算设备190的web浏览器192导航到包括一个或多个网页的远程服务105的门户网站来访问远程服务105。在这样的示例中,如上所述,指令122可以从web浏览器192获得登录信息180,并且用户可以与目标用户账户相关联地登录到远程服务105中。在一些示例中,登录到目标用户账户中的用户可以选择经由远程服务105的门户网站下载客户端应用。例如,由远程服务105服务的网页中的至少一个可以提供用户可以经由web浏览器192点击或以其它方式进行选择以下载客户端应用(诸如用于远程服务105的客户端应用)(即可用于访问远程服务105的服务,诸如用于该目的的专用应用)的链接或其它元素。

在这样的示例中,响应于用以下载客户端应用的链接或其它元素的选择,指令123可以从web浏览器192获得设备上下文信息182。例如,响应于链接(或其它元素)的选择,远程服务105可以供应包括机器可读指令(例如,javascript代码等)的网页,当所述机器可读指令由web浏览器192执行时引起浏览器从客户端计算设备190收集(一条或多条)设备上下文信息并将其作为设备上下文信息182返回到远程服务105。

在本文中描述的示例中,设备上下文信息182可以包含一条或多条设备上下文信息。在本文中描述的示例中,用于计算设备的一条“设备上下文信息”可以是描述计算设备的计算上下文的至少一个方面(至少包括计算设备的硬件、软件和配置)的一条信息。用于计算设备的设备上下文信息条目的示例包括,用于计算设备的屏幕宽度(例如,以像素或任何其它合适的单位的宽度值的字符串表示,诸如“200”)、用于计算设备的屏幕高度(例如,以像素或任何其它合适的单位的高度值的字符串表示,诸如“320”)、用于计算设备的计算平台类型(例如,诸如“iphone”的字符串)、用于计算设备的(一个或多个)本地互联网协议(ip)地址(例如,诸如“192.168.0.1”等的一个或多个字符串)、用于计算设备的(一个或多个)外部ip地址(例如,诸如“16.127.74.120”等的一个或多个字符串)等等。在其它示例中,可以将其它合适的信息条目用作设备上下文信息的至少一部分。

在本文中描述的一些示例中,用于计算设备的每条设备上下文信息是web浏览器(当在计算设备上执行时)和客户端应用的实例(当在计算设备上执行时)二者都可访问的信息。在这样的示例中,每条设备上下文信息都是通过计算设备上的web浏览器和计算设备上的客户端应用的实例二者可得到的。在本文中描述的示例中,本地ip地址可以是用于在局域网(lan)内识别或连接到计算设备的ip地址和用于连接到lan的路由器的内部lanip地址。在本文中描述的示例中,外部ip地址可以是用于从计算设备连接到的lan外部识别或连接到计算设备的ip地址(例如,可以从lan外部(诸如从互联网)访问lan的路由器的ip地址)。

在一些示例中,单独的每条设备上下文信息可以用合适的字符串(其可以包括空格等)来体现。例如,在图1的示例中,web浏览器192可以返回以下设备上下文信息条目作为设备上下文信息182:屏幕宽度“200”、屏幕高度“320”、平台名称“iphone”、本地ip地址“192.168.0.1”和“16.15.14.13”以及外部ip地址“16.127.74.120”。在其它示例中,可以以任何合适的格式通过指令123获得设备上下文信息。

在图1的示例中,指令124可以基于所获得的设备上下文信息182将目标设备指纹与远程服务105中的目标用户账户相关联。在一些示例中,指令124可以基于从客户端计算设备190的web浏览器192获得的用于客户端计算设备190的设备上下文信息182来生成目标设备指纹(诸如在图2中所图示的目标设备指纹252)。在本文中描述的示例中,计算设备的“设备指纹”(其可以被称为“设备上下文指纹”)是表示计算设备的计算上下文的至少一个方面的信息。在一些示例中,设备指纹可以基于设备上下文信息来生成,或者可以另外包括基于设备上下文信息的信息的集合。

作为一个示例,指令124可以通过(以所定义的次序)连结设备上下文信息182的字符串并然后对结果应用散列函数来生成目标设备指纹。例如,指令124可以将设备上下文信息182的条目连结为管道分隔的字符串,诸如<外部ip>|<宽度>|<高度>|<平台>|<本地ip>。在这样的示例中,指令124可以从以上描述的示例设备上下文信息条目生成以下连结的字符串:“16.127.74.120|200|320|iphone|192.168.0.116.15.14.13”。在一些示例中,指令124可以将任何合适的散列函数应用于连结字符串以生成目标设备指纹。例如,继续上述示例,指令124可以将sha-1散列函数应用于连结字符串“16.127.74.120|200|320|iphone|192.168.0.116.15.14.13”以得到与目标设备指纹不同的字符串(例如,“735570ddf460c5e0a0469448987becb84befa7f9”)。在这样的示例中,目标设备指纹可以体现为单个字符串。在这样的示例中,由远程服务105利用的每个设备指纹可以体现为相应的字符串。在一些示例中,可以将散列函数应用于连结字符串以例如出于安全目的混淆字符串中的设备上下文信息、或缩短所产生指纹的长度或两者兼而有之。在这样的示例中,可以应用任何合适的技术来处理连结字符串以混淆信息、缩短字符串或两者兼而有之。可以应用的其它技术的示例包括根据合适的格式或技术对连结字符串进行加密或以其它方式对连结字符串进行编码。在其它示例中,指令124可以省略对连结字符串的散列化、加密或其它编码而将连结字符串视为设备指纹。

虽然以上描述了用于将设备上下文信息连结成单个字符串的一个示例技术,但是在本文中描述的示例中,指令124可以在目标设备指纹的生成中以任何合适的方式从设备上下文信息182条目生成单个字符串。例如,指令124可以以任何合适的方式连结设备上下文信息182条目,或者可以根据javascript对象标记(json)格式或任何其它合适的格式将信息格式化为字符串。在其它示例中,可以通过指令123从web浏览器192获得更多条设备上下文信息、更少条设备上下文信息、不同的设备上下文信息条目或其组合作为设备上下文信息182,并由指令124用来生成目标设备指纹。在一些示例中,指令124可以在基于归一化信息生成目标设备指纹之前酌情对(一条或多条)设备上下文信息182进行归一化。

在这样的示例中,在指令124生成目标设备指纹之后,指令124可以以任何合适的方式将目标设备指纹与远程服务105中的目标用户账户相关联。在一些示例中,远程服务105可以包括或以其它方式能够访问包括针对用于远程服务105的每个用户账户的用户账户信息(诸如登录信息等)的账户储存库(例如,数据库等)。在这样的示例中,指令124可以将目标设备指纹与远程服务105的账户储存库中的目标用户账户相关联(例如,如针对图2中图示出的目标设备指纹252与账户储存库230所图示的)。例如,指令124可以将目标设备指纹存储为与目标用户账户相关联地存储的信息集合的一部分。在本文中描述的示例中,账户储存库可以至少部分地由用以存储包含在账户储存库中的信息的至少一个机器可读存储介质来实现。

在图1的示例中,指令125可以从未配对的客户端应用的实例194获得由客户端应用的实例194基于用于包括客户端应用的实例194的客户端计算设备190的设备上下文信息确定的应用设备指纹186。在本文中描述的示例中,客户端应用(及其每个实例)可以是至少部分地由机器可读指令实现并且可由计算设备(例如,客户端计算设备190)执行的计算机应用。

在这样的示例中,在实例194已被下载在客户端计算设备190上之后,指令125可以从客户端应用的实例194获得应用设备指纹186。如上所述,在一些示例中,登录到目标用户账户中的用户可以选择经由远程服务105的门户网站下载客户端应用。响应于下载客户端应用的链接(或其它元素)的选择,远程服务105可以供应包括机器可读指令的网页,以引起浏览器从客户端计算设备190收集(一条或多条)设备上下文信息并将其作为设备上下文信息182返回到远程服务105。在这样的示例中,在web浏览器192提供设备上下文信息182之后,网页然后可以使得能够实现客户端计算设备190以任何合适的方式下载客户端应用的实例。

例如,例如(按照在所供应的网页中实现的那样)在web浏览器192向远程服务105提供设备上下文信息182之后或者在远程服务105向web浏览器192确认已经接收并处理了设备上下文信息182(例如,已经成功地生成了设备指纹)之后,网页可以将web浏览器192重新定向到在其处可以将客户端应用的实例下载到客户端计算设备190的另一网页。在一些示例中,所述确认也可以包含用以将web浏览器192重新定向到其以下载客户端应用的实例的统一资源定位符(url)。在其它示例中,网页本身可以包含用以触发客户端应用的实例的下载的链接(或其它元素),或者本身可以触发将客户端应用的实例到客户端计算设备190的下载。例如,在web浏览器192向远程服务105提供设备上下文信息182之后或者在远程服务105向web浏览器192确认已接收并处理了设备上下文信息182(例如,已成功地生成了设备指纹)之后,网页可以触发下载。

在一些示例中,在下载客户端应用的实例194之后,客户端计算设备190可以(例如,自动地或响应于用户输入)安装客户端应用的实例194。所下载的客户端应用的实例194可以是未配对的客户端应用的实例。在本文中描述的示例中,将客户端应用的实例“配对”是将客户端应用的实例与远程服务的给定的用户账户相关联,使得客户端应用的实例能够与给定的用户账户相关联地访问远程服务(即访问远程服务和与给定用户账户相关联的信息),而无需提示客户端应用的实例的用户输入任何登录信息或(一个或多个)凭证。在本文中描述的示例中,“未配对的”客户端应用的实例是尚未与远程服务的任何用户账户配对的实例,而“配对的”客户端应用的实例是已经与远程服务的用户账户配对的实例。

在一些示例中,或者在安装过程期间或者在安装过程之后运行客户端应用的实例194(例如,安装之后第一次运行实例)时,客户端应用的实例194可以从客户端计算设备190收集设备上下文信息182,包括由web浏览器192如上文描述的那样先前收集的相同的设备上下文信息182条目。例如,如上所述,用于计算设备190的每条设备上下文信息182可以是客户端计算设备190上的客户端应用的实例194和web浏览器192二者都可访问的信息。在这样的示例中,web浏览器192和客户端应用实例194可以从客户端计算设备190得到相同的设备上下文信息182。

在这样的示例中,在从客户端计算设备190收集设备上下文信息182之后,客户端应用的实例194可以基于设备上下文信息182向远程服务105提供应用设备指纹186。在一些示例中,客户端应用的实例194可以以与指令124从设备上下文信息确定指纹的相同的方式基于设备上下文信息182来确定应用设备指纹186,以促进应用设备指纹186与由指令124针对各种用户账户生成的其它指纹的比较。例如,在其中指令124通过(以所定义的次序)连结设备上下文信息182的字符串并然后对结果应用散列函数来生成目标设备指纹的示例中,客户端应用的实例194可以以相同的方式基于设备上下文信息182来生成应用设备指纹186,并且然后将指纹186提供给远程服务105。在一些示例中,在发起将客户端应用的实例194安装在客户端计算设备190上之后,实例194可以收集设备上下文信息182并向远程服务105提供应用设备指纹186,而无需用户输入。在其它示例中,在发起客户端应用的实例194到客户端计算设备190的下载之后,实例194可以收集设备上下文信息182并向远程服务105提供应用设备指纹186,而无需用户输入。

在图1的示例中,指令125可以获得由未配对的客户端应用的实例194如上所述地确定和提供的应用设备指纹186。在这样的示例中,指令126可以将应用设备指纹186与跟远程服务105的用户账户相关联的设备指纹进行比较,以确定应用设备指纹186是否与跟远程服务105的各用户账户相关联地存储在账户储存库中的任何设备指纹相匹配。例如,指令126可以将应用设备指纹186与跟用于远程服务105的各用户账户相关联的设备指纹(其可以被存储在以上描述的账户储存库中)进行比较,直到找到与应用设备指纹186匹配的设备指纹,或者直到确定与各用户账户相关联的所存储的设备指纹中没有一个与应用设备指纹186匹配。

在如上所述的其中每个设备指纹是单个字符串的示例中,那么当两个设备指纹相同(例如,完全相同、包含相同的字符序列等)时,指令126可以确定那两个设备指纹匹配。

在图1的示例中,基于(一次或多次)比较,指令126可以确定应用设备指纹186与如上所述基于从web浏览器192获得的设备上下文信息182确定的目标设备指纹匹配。在这样的示例中,响应于应用设备指纹186与目标设备指纹匹配的确定,指令126可以基于所获得的应用设备指纹并且在没有用户输入的情况下将客户端应用的实例194与目标用户账户配对。在这样的示例中,指令126可以基于应用设备指纹186(例如,基于应用设备指纹186与目标设备指纹之间的匹配)并且在没有到客户端计算设备190上的客户端应用的实例194的任何登录信息的用户输入的情况下将客户端应用的实例194与目标用户账户配对。

在这样的示例中,客户端计算设备190的用户可以提供用户输入以选择安装(或下载)客户端应用的实例194,并且作为响应,指令125可以从实例194获得应用设备指纹186并且确定该应用设备指纹186与目标设备指纹匹配。响应于该确定,指令126可以在选择安装(或下载)客户端应用的实例194的输入之后完全再无任何进一步的用户输入的情况下(例如,在没有登录信息或凭证到客户端应用的实例194中的用户输入的情况下)将实例194与目标用户账户配对。

在一些示例中,为了将客户端应用的实例194与目标用户账户配对,指令126可以向客户端应用的实例194提供与远程服务105中的目标用户账户相关联的至少一条信息188。例如,所述至少一条信息可以包括与目标用户账户相关联的用户名、电子邮件地址等等。在这样的示例中,一旦接收到与目标用户账户相关联的所述至少一条信息,就可以认为客户端应用的实例194与远程服务105的目标用户账户配对。在这样的示例中,配对的客户端应用的实例194可以利用与目标用户账户相关联的所述至少一条信息来向远程服务105识别配对实例194,以与目标用户账户相关联地取得对远程服务105的访问或以其它方式与其进行通信(例如,可以使用所述至少一条信息来与远程服务105进行(一次或多次)通信)。例如,配对的实例194可以在到远程服务105的(一个或多个)请求中包括所述至少一条信息,或使用与目标用户账户相关联的所述至少一条信息来建立、重新建立、维持等与远程服务105的会话,从而使得能够实现实例194与远程服务105之间的通信。

在其它示例中,应用设备指纹186可能与跟远程服务105的任何用户账户相关联地存储的任何设备指纹都不匹配。在这样的示例中,响应于指令126确定了应用设备指纹186与跟远程服务105的用户账户相关联的多个设备指纹中的任何都不匹配,指令126可以向客户端应用的实例194提供信息,以引起实例194经由客户端计算设备190显示用于针对远程服务105的登录信息的输入的提示。在这样的示例中,客户端应用的实例194可能是被先前未如上所述地用于经由web浏览器登录到远程服务105、正因如此可能不具有与远程服务105的用户账户相关联地存储的与之相关联的对应设备指纹的计算设备下载了。在这样的示例中,当没有找到匹配时,指令126可以向实例194返回实例194可以理解的错误消息或其它通信作为实例194要经由客户端计算设备190显示用于输入用于远程服务105的登录信息的提示的指示。在这样的示例中,实例194可以接收登录信息并将其提供给远程服务105,以将实例194与跟所提供的登录信息相关联的用户账户配对。在一些示例中,客户端应用的实例194可以是用于远程服务105的客户端应用的实例(即供访问远程服务105使用的专用应用)。

在以上描述的示例中,设备指纹可以是(例如,通过(一条或多条)设备上下文信息的连结和散列化生成的,或以如上所述任何其它合适的方式生成的)单个字符串。在其它示例中,设备指纹可以包括多个分离的字符串,每个都表示用于计算设备的不同的设备上下文信息条目。在这样的示例中,指令124可以不生成单个字符串作为设备指纹。替代地,在这样的示例中,指令124可以将从web浏览器192获得的每条设备上下文信息182与目标用户账户(即已经经由web浏览器192登录的用户账户)相关联,共同地作为目标设备指纹。在这样的示例中,可以以任何合适的方式将设备上下文信息182条目与目标用户账户相关联。

在这样的示例中,由指令125从实例194获得的应用设备指纹186可以包括多个分离的字符串,每个都表示用于客户端计算设备190的不同的设备上下文信息条目。在这样的示例中,当在两个设备指纹的分离的字符串中的每一个之间都存在精确匹配时,指令126可以确定这两个设备指纹匹配。在其它示例中,当它们相应的设备上下文信息条目存在至少部分匹配时,指令125可以确定这两个设备指纹匹配。

例如,指令126可以试图匹配设备指纹的设备上下文信息的单独的条目。在这样的示例中,当应用设备指纹的一条或多条设备上下文信息(但是少于所有的设备上下文信息条目)与给定设备指纹的对应的设备上下文信息条目匹配并且与用于与任何其它用户账户相关联的任何其它设备指纹的对应的设备上下文信息条目不匹配(正因如此,唯一地与给定设备指纹匹配)时,指令126可以确定在应用设备指纹与跟用户账户相关联的给定设备指纹之间存在匹配。在本文中描述的一些示例中,当设备上下文信息条目作为设备指纹的一部分被包括时(并且在比较设备指纹之前),可以酌情对设备上下文信息条目进行归一化。

如本文中所使用的,“处理器”可以是中央处理单元(cpu)、基于半导体的微处理器、图形处理单元(gpu)、被配置成检索并执行指令的现场可编程门阵列(fpga)、适于检索和执行存储在机器可读存储介质上的指令的其它电子电路或其组合中的至少一个。处理资源110可以包括一个处理器或多个处理器。处理资源110可以提取、解码并执行存储在存储介质120上的指令,以实行以上描述的功能性。在其它示例中,存储介质120的指令中的任何的功能性可以以电子电路的形式、以编码在机器可读存储介质上的可执行指令的形式或其组合来实现。

如本文中所使用的,“机器可读存储介质”可以是包含或存储诸如可执行指令、数据等的信息的任何电子、磁性、光学或其它物理存储装置。例如,本文中描述的任何机器可读存储介质可以是随机存取存储器(ram)、易失性存储器、非易失性存储器、闪速存储器、存储驱动(例如,硬驱)、固态驱动、任何类型的存储盘(例如,紧凑盘、dvd等)等等中的任何或其组合。另外,本文中描述的任何机器可读存储介质可以是非暂时性的。在本文中描述的示例中,一个或多个机器可读存储介质可以是产品(或制品)的一部分。产品或制品可以是指任何制造的单个组件或多个组件。存储介质可以位于执行机器可读指令的计算设备中,或者位于远离但(例如,经由计算机网络)可访问计算设备以用于执行。

在一些示例中,指令122-126可以是安装包的一部分,当所述安装包被安装时可以由处理资源110来执行以实现本文中关于指令122-126描述的功能性。在这样的示例中,存储介质120可以是诸如cd、dvd、或闪速驱动的便携式介质,或由可以从其下载和安装安装包的服务器维持的存储器。在其它示例中,指令122-126可以是已经安装在包括处理资源110的客户端计算设备100上的一个或多个应用或组件的一部分。在这样的示例中,存储介质120可以包括诸如硬驱、固态驱动等等的存储器。在一些示例中,本文中关于图1描述的功能性可以结合本文中关于图2-4中的任何描述的功能性来提供。

图2是包括远程服务205的示例计算环境的框图,远程服务205包括用以在没有用户输入的情况下将客户端应用的实例194与用户账户配对的系统220。在图2的示例中,计算环境201包括远程服务205以及如上面关于图1描述的包括web浏览器192的客户端计算设备190。远程服务205包括系统220、账户储存库230和网络接口设备240。在图2的示例中,系统220包括引擎221-227。远程服务205可以由一个计算设备或彼此通信的多个计算设备来实现。在图2的示例中,系统220可以至少部分地实现远程服务205。在图2的示例中,引擎221-227可以在单个计算设备上实现,或者引擎221-227的实现可以跨多个不同的计算设备散布。

在图2的示例中,客户端计算设备190远离远程服务205,并且远程服务205的系统220可以利用网络接口设备240来通过(例如,包括互联网的)(一个或多个)计算机网络与客户端计算设备190通信。在一些示例中,系统220的至少一部分可以在包括网络接口设备240的计算设备上实现。在其它示例中,系统220可以由多个计算设备来实现,每个计算设备包括诸如网络接口设备240的相应的网络接口设备。在一些示例中,账户储存库230可以至少部分地由用以存储账户储存库230的数据的至少一个机器可读存储介质来实现。在这样的示例中,实现系统220的计算设备中的至少一个可以包括账户储存库230,或者账户储存库230可以由实现系统220的多个计算设备中的每一个部分地实现,或者账户储存库230可以远离实现系统220的(一个或多个)计算设备但对其可访问。

在图2的示例中,账户储存库230可以存储与用于远程服务205的各用户账户相关联的信息,诸如用于每个用户账户的登录信息。例如,账户储存库230可以存储与目标用户账户205相关联的登录信息180。在图2的示例中,登录引擎221可以从客户端计算设备192上的web浏览器192获得登录信息180,并且可以响应于所获得的登录信息与跟账户储存库230中的目标用户账户250相关联的登录信息180匹配的确定、基于登录信息180来登录远程服务205的目标用户账户250。在这样的示例中,引擎221可以响应于该确定将web浏览器192登录到远程服务295的目标用户账户250中。

在一些示例中,计算设备190的用户可以通过将客户端计算设备190的web浏览器192导航到包括一个或多个网页的远程服务205的门户网站来访问远程服务205,并且可以经由web浏览器192将登录信息180输入到网页中的一个,如上面关于远程服务105描述的。在这样的示例中,引擎221可以从web浏览器192得到登录信息180。

在一些示例中,登录到目标用户账户250中的用户可以选择经由远程服务205的门户网站下载客户端应用。例如,由远程服务205供应的网页中的至少一个可以提供用户可以经由web浏览器192点击或以其它方式选择以下载客户端应用(诸如用于远程服务205的客户端应用)(即可用于访问远程服务205的服务,诸如用于该目的的专用应用)的链接或其它元素。在这样的示例中,响应于经由web浏览器192进行的与下载客户端应用的实例194相关联的链接(或其它元素)的选择,网页引擎222可以向web浏览器192提供至少一个网页284,以引起web浏览器192收集并向远程服务205提供用于客户端计算设备190的设备上下文信息182。例如,响应于链接(或其它元素)的选择,引擎222可以供应包括机器可读指令(例如,javascript代码等)的网页284,当所述机器可读指令由web浏览器192执行时可以引起web浏览器192从客户端计算设备190收集(一条或多条)设备上下文信息并将其作为设备上下文信息182返回到远程服务205。

在一些示例中,网页引擎222可以供应远程服务205的多个网页(诸如上面描述的网页)。在一些示例中,网页引擎222可以在与系统220的其它引擎相同的计算设备上实现,或者可以在与实现系统220的其它引擎的(一个或多个)计算设备分离的(一个或多个)计算设备上实现。

在图2的示例中,信息引擎223可以从web浏览器192获得用于客户端计算设备190的设备上下文信息182。在这样的示例中,web浏览器192可以基于执行网页284的上述机器可读指令来提供设备上下文信息182。设备上下文信息182可以是如上面关于图1所描述的。在一些示例中,从web浏览器192获得的设备上下文信息182可以是web浏览器192(当其被包括在客户端计算设备190上(例如,在客户端计算设备190上执行)时)和客户端应用的实例194(当其被包括在客户端计算设备上(例如,在客户端计算设备上执行)时)二者都可访问的用于客户端计算设备190的设备上下文信息182。

在图2的示例中,关联引擎224可以将基于所获得的设备上下文信息182的目标设备指纹252与远程服务205中登录的目标用户账户250相关联。例如,响应于设备上下文信息182的获得,引擎224可以将基于设备上下文信息182的目标设备指纹252与web浏览器192已经登录的目标用户账户250相关联。引擎224可以以任何合适的方式将目标设备指纹252与目标用户账户250相关联地存储在账户储存库230中。在图2的示例中,用于目标用户账户250的登录信息180和目标设备指纹252都可以与目标用户账户250相关联地存储在账户储存库230中。

在一些示例中,引擎224可以基于设备上下文信息182以如以上关于图1描述的任何合适的方式将目标设备指纹252与目标用户账户250相关联。例如,引擎224可以如以上关于图1描述的那样基于设备上下文信息182(例如,通过连结和散列化设备上下文信息182或如上所述的任何其它合适的方法)来生成单字符串目标设备指纹252。在其它示例中,引擎224可以将从web浏览器192获得的每条设备上下文信息182与目标用户账户250相关联,共同地作为目标设备指纹252(例如,无需连结信息)。

在web浏览器192向远程服务205提供设备上下文信息182之后,网页284然后可以使得客户端计算设备190能够以如以上关于图1描述的任何合适的方式下载客户端应用的实例194。例如,在其中引擎224生成单字符串目标设备指纹252的示例中,响应于目标设备指纹252的成功生成,网页引擎222可以引起网页284发起通过客户端计算设备190进行的客户端应用的实例194的下载。在其它示例中,网页284可以将web浏览器192重新定向到例如在其处下载客户端应用的实例194的另一网页。

在图2的示例中,刚下载了客户端应用的实例194之后,实例194可能是如上所述的未配对的客户端应用的实例。在这样的示例中,获得引擎225可以从未配对的客户端应用的实例194获得应用设备指纹186。应用设备指纹186可以由客户端应用的实例194基于用于包括客户端应用的实例194的计算设备190的设备上下文信息182来确定。在这样的示例中,应用设备指纹186可以由实例194以与引擎224确定目标设备指纹252的相同的方式来确定(例如,以促进比较)。例如,当引擎224经由连结和散列化来生成单字符串指纹时,实例194可以以相同的方式并基于相同类型的设备上下文信息来生成应用设备指纹186。在其中引擎224与目标设备指纹252分离地维持设备上下文信息条目的示例中,实例194可以对应用设备指纹186执行相同的操作。

在图2的示例中,确定引擎226可以以如以上关于图1描述的任何方式来确定应用设备指纹是否与跟远程服务205的各用户账户相关联的多个设备指纹中的任何相匹配。例如,引擎226可以将应用设备指纹186与跟用于远程服务105的各用户账户相关联的设备指纹(其可以被存储在以上描述的账户储存库中)进行比较,直到找到与应用设备指纹186匹配的设备指纹,或者直到确定了与各用户账户相关联的所存储的设备指纹中没有一个与应用设备指纹186匹配。引擎226可以以如上关于图1描述的任何合适的方式确定匹配。

在图2的示例中,计算设备190的web浏览器192用于登录到远程服务205的门户网站,并且提供设备上下文信息182以供目标设备指纹252使用。然后接下来,同一计算设备190上的客户端应用的实例194基于用于客户端计算设备190的设备上下文信息182向远程服务205提供应用设备指纹186。在这样的示例中,确定引擎226可以确定目标设备指纹252与应用设备指纹186匹配。在这样的示例中,由web浏览器192访问和返回的用于客户端计算设备190的设备上下文信息可以与由实例194访问的设备上下文信息相同,因为web浏览器192和实例194从同一计算设备(并且可能在接近的时间)确定设备上下文信息。如此,在图2的示例中目标设备指纹252和应用设备指纹186可以匹配,这在一些示例中指示可以在没有用户输入(例如,将登录信息输入到实例194)的情况下将实例194与目标用户应用配对。

在这样的示例中,响应于应用设备指纹186与跟目标用户账户250相关联的目标设备指纹252匹配的确定,引擎227可以基于所获得的应用设备指纹186并且在没有用户输入的情况下将客户端应用的实例194与目标用户账户250配对,如上面关于图1所描述的那样。在一些示例中,引擎227可以向客户端应用的实例194提供与远程服务205中的目标用户账户250相关联的至少一条信息288,以在无需经由客户端计算设备190进行的到客户端应用的实例194的任何登录信息的用户输入的情况下将客户端应用的实例194与目标用户账户250配对。在一些示例中,所提供的所述至少一条信息可以是与目标用户账户250相关联的至少一条登录信息180(例如,用户名、电子邮件地址等)。

在其中客户端应用的实例被下载在先前未用于用计算设备的浏览器登录到远程服务205的计算设备上的其它示例中,那么从客户端应用的实例获得的应用设备指纹可能与跟远程服务205的任何用户账户相关联的任何设备指纹都不匹配。在这样的示例中,引擎226可以确定应用设备指纹与跟远程服务205的各用户账户相关联的多个设备指纹中的任何都不匹配。在这样的示例中,响应于应用设备指纹与跟远程服务205的用户账户相关联的多个设备指纹中的任何都不匹配的确定,配对引擎227可以向客户端应用的实例提供信息289,以引起客户端应用的实例经由客户端计算设备显示用以接收用于远程服务205的登录信息的输入的提示,如上面关于图1所描述的。

在本文中描述的示例中,可以将多个设备指纹与用于远程服务的(例如,账户储存库中的)单个用户账户相关联,因为可以使用多个不同的计算设备来用web浏览器登录到远程服务。在这样的示例中,可以对不同计算设备上的多个客户端应用的实例中的每一个执行上面描述的功能性,以如上所述在没有用户输入的情况下将相应的实例配对。

系统220的引擎221-227中的每一个可以是用以实现相应引擎的功能性的编程和硬件的任何组合。在本文中描述的示例中,可以以许多不同的方式实现硬件和编程的这样的组合。例如,用于引擎的编程可以是存储在非暂时性机器可读存储介质上的处理器可执行指令,并且用于引擎的硬件可以包括用以执行那些指令的处理资源。在这样的示例中,所述机器可读存储介质可以存储当由处理资源执行时实现引擎221-227的指令。在这样的示例中,系统220可以包括存储所述指令的机器可读存储介质以及用以执行所述指令的处理资源,或者机器可读存储介质可以是分离的但可由系统220和处理资源访问。

在一些示例中,指令可以是安装包的一部分,其在安装时可以由处理资源执行以至少实现引擎221-227。在这样的示例中,机器可读存储介质可以是诸如cd、dvd、或闪速驱动的便携式介质,或由可以从其下载和安装安装包的服务器维持的存储器。在其它示例中,指令可以是已经安装在包括处理资源的系统220上的一个或多个应用或组件的一部分。在这样的示例中,机器可读存储介质可以包括诸如硬驱、固态驱动等等的存储器。在其它示例中,系统220的任何引擎的功能性可以以电子电路的形式来实现。在一些示例中,本文中关于图2描述的功能性可以结合本文中关于图1、3和4中的任何描述的功能性来提供。

图3是用于基于应用设备指纹且在没有用户输入的情况下将客户端应用的实例与用户账户配对的示例方法300的流程图。虽然下面参考上文描述的图2的系统220描述了方法300的执行,但可以利用用于执行方法300的其它合适的系统或设备(例如,计算设备100)。此外,方法300的实现不限于这样的示例。

在方法300的305处,登录引擎221可以基于从客户端计算设备190的web浏览器192获得的账户登录信息180来提供对远程服务205的目标用户账户250的web浏览器192访问。在310处,响应于(经由web浏览器192进行的)与下载客户端应用的实例相关联的链接的选择,网页引擎222可以向web浏览器192提供至少一个网页284,以引起web浏览器192收集并向远程服务205提供用于客户端计算设备190的设备上下文信息182,如上文所述的那样。在这样的示例中,信息引擎223可以从web浏览器192获得设备上下文信息182。

在315处,关联引擎224可以基于由web浏览器192提供给远程服务205的用于客户端计算设备190的设备上下文信息182、用远程服务205的处理资源生成目标设备指纹252。引擎224可以以如上所述的任何合适的方式来生成目标设备指纹252。在320处,引擎224可以将目标设备指纹252与远程服务205的账户储存库230中登录的目标用户账户250相关联。

在325处,获得引擎225可以从未配对的客户端应用的实例194获得由客户端应用的实例194基于用于包括客户端应用的实例194的计算设备的设备上下文信息确定的应用设备指纹186。在330处,如上面关于图1和2所描述的,确定引擎226可以基于应用设备指纹186是否与目标设备指纹252相匹配而确定是否在没有用户输入的情况下将客户端应用的实例194与目标用户账户250配对。

在本文中描述的示例中,系统220的引擎可以经由远程服务205的至少一个网络接口(例如,网络接口240)与客户端计算设备190以及远离远程服务205的其它计算设备通信。虽然图3的流程图示出了某些功能性的执行的具体次序,但是方法300并不限于该次序。例如,流程图中连续示出的功能性可以以不同的次序来实行、可以同时地或部分同时地执行或其组合。在一些示例中,本文中关于图3描述的功能性可以结合本文中关于图1、2和4中的任何描述的功能性来提供。

图4是用于获得由未配对的客户端应用的实例基于设备上下文信息确定的应用设备指纹的示例方法400的流程图。虽然下面参考(上述)图2的系统220描述了方法400的执行,但可以利用用于执行方法400的其它合适的系统或设备(例如,计算设备100)。此外,方法400的实现不限于这样的示例。

在方法400的405处,登录引擎221可以基于从客户端计算设备190的web浏览器192获得的账户登录信息180提供对远程服务205的目标用户账户250的web浏览器192访问。在410处,响应于(经由web浏览器192进行的)与下载客户端应用的实例相关联的链接的选择,网页引擎222可以向web浏览器192提供至少一个网页284,以引起web浏览器192收集并向远程服务205提供用于客户端计算设备190的设备上下文信息182,如上文所述的那样。在这样的示例中,信息引擎223可以从web浏览器192获得设备上下文信息182。

在415处,关联引擎224可以基于由web浏览器192提供给远程服务205的用于客户端计算设备190的设备上下文信息182、用远程服务205的处理资源生成目标设备指纹252。引擎224可以以如上所述的任何合适的方式来生成目标设备指纹252。在420处,引擎224可以将目标设备指纹252与远程服务205的账户储存库230中登录的目标用户账户250相关联。

在425处,获得引擎225可以从未配对的客户端应用的实例194获得由客户端应用的实例194基于用于包括客户端应用的实例194的计算设备的设备上下文信息确定的应用设备指纹186。在430处,如上面关于图1和2所描述的,确定引擎226可以基于应用设备指纹186是否与目标设备指纹252相匹配来确定是否在没有用户输入的情况下将客户端应用的实例194与目标用户账户250配对。

响应于确定了应用设备指纹252与目标设备指纹匹配,配对引擎227可以在435处向客户端应用的实例194提供与远程服务205中的目标用户账户250相关联的至少一条信息288,以在无需经由客户端计算设备190进行的到客户端应用的实例194的任何登录信息的用户输入的情况下将客户端应用的实例194与目标用户账户250配对。在一些示例中,所提供的所述至少一条信息可以是与目标用户账户250相关联的至少一条登录信息180(例如,用户名、电子邮件地址等)。

响应于确定了应用设备指纹252与跟远程服务205的用户账户相关联的多个设备指纹中的任何都不匹配,配对引擎227可以在440处向客户端应用的实例194提供信息289,以引起客户端应用的实例194经由客户端计算设备190显示用以接收用于远程服务205的登录信息的输入的提示。

在本文中描述的示例中,系统220的引擎可以经由远程服务205的至少一个网络接口(例如,网络接口240)与客户端计算设备190以及远离远程服务205的其它计算设备通信。虽然图4的流程图示出了某些功能性的执行的具体次序,但是方法400并不限于该次序。例如,流程图中连续示出的功能性可以以不同的次序来实行、可以同时地或部分同时地执行或其组合。在一些示例中,本文中关于图4描述的功能性可以结合本文中关于图1-3中的任何描述的功能性来提供。

本说明书(包括任何所附权利要求、摘要和附图)中所公开的所有特征和/或如此公开的任何方法或过程的所有元素可以被组合在任何组合中,除了其中这样的特征和/或元素中的至少一些互相排斥的组合之外。

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