CN113141374A - 服务授权握手 - Google Patents

服务授权握手 Download PDF

Info

Publication number
CN113141374A
CN113141374A CN202110485749.XA CN202110485749A CN113141374A CN 113141374 A CN113141374 A CN 113141374A CN 202110485749 A CN202110485749 A CN 202110485749A CN 113141374 A CN113141374 A CN 113141374A
Authority
CN
China
Prior art keywords
authorization
resource
service
client
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110485749.XA
Other languages
English (en)
Other versions
CN113141374B (zh
Inventor
E·B·史密斯二世
G·D·贝尔
M·孙达拉姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN113141374A publication Critical patent/CN113141374A/zh
Application granted granted Critical
Publication of CN113141374B publication Critical patent/CN113141374B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Abstract

本文档描述授权客户端资源如计算机、服务器、计算设备和虚拟机访问由在线服务供应商提供的在线服务的系统和方法。为授权客户端资源,客户端代表所述客户端资源将注册请求提交至由所述服务供应商提供的授权服务。所述授权服务将激活代码返回到所述客户端。所述激活代码可在一定量的时间之后或在第一次使用后到期。所述客户端将所述激活代码提供至在所述客户端资源上运行的代理。所述代理与所述授权服务建立通信,并且在将所述激活代码提供至所述授权服务后,接收授权令牌,所述授权令牌可由所述客户端资源用来根据以所述注册请求指定的安全角色或权限访问在线服务。

Description

服务授权握手
分案申请
本申请为申请号2016800768210、申请日2016年12月21日、题为“服务授权握手”的分案申请。
相关申请的交叉引用
本申请要求2015年12月30日提交的标题为“SERVICE AUTHORIZATION HANDSHAKE”的美国专利申请第14/984,957号的优先权,所述专利的内容以引用的方式整体并入本文。
背景技术
在线服务是现代计算的重要部分。在线服务提供存储和备份服务、数据处理服务、密钥管理服务、虚拟计算服务、金融服务、购物服务,以及许多其他计算和数据访问服务。对在线服务的访问通常通过各种认证和授权技术如用户名/密码对、数字证书、网络地址过滤器以及生物特征识别来控制。当访问在线服务时,客户端将适当的认证信息提供给在线服务,并且在线服务授予访问。在一些环境中,客户端操作各种客户端资源如客户端计算机、服务器、虚拟机,以及将从访问在线服务受益的其他网络连接的计算设备。然而,向客户端资源提供对在线服务的访问可为难题。
相比于通过简单地将客户端凭证提供至客户端资源将提供的,客户端资源可需要对在线服务的不同级别的访问。另外,如果客户端资源需要对多个在线服务的访问,则多个客户端凭证集可为必要的。如果特定客户端凭证改变,则使用特定凭证的客户端资源将需要以新凭证更新。出于这些和其他原因,控制对客户端资源使用在线服务的授权可为非常麻烦的。
附图说明
各种技术将参考附图来描述,其中:
图1示出在其中可实践各种实施方案的环境的说明性实例;
图2示出根据一个实施方案的以共同授权令牌访问若干在线服务的客户端资源的说明性实例;
图3示出根据一个实施方案的访问在线服务的克隆客户端资源的说明性实例;
图4示出根据一个实施方案的授权由客户端资源对在线服务的访问的授权服务的说明性实例;
图5示出根据一个实施方案的作为由服务管理控制台、授权服务和授权代理执行的结果而授权由客户端资源对在线服务的访问的过程的说明性实例;
图6示出根据一个实施方案的作为由授权服务、授权代理和在线服务执行的结果而完成由客户端资源提交的在线服务请求的过程的说明性实例;
图7示出根据一个实施方案的作为由授权服务、授权代理和在线服务执行的结果而刷新由客户端资源使用的授权令牌的过程的说明性实例;
图8示出根据一个实施方案的作为由授权服务执行的结果而注册客户端资源以使用在线服务的过程的说明性实例;
图9示出根据一个实施方案的作为由客户端资源上的授权代理执行的结果而激活客户端资源以使用在线服务的过程的说明性实例;
图10示出根据一个实施方案的作为由授权服务执行的结果而完成资源激活请求的过程的说明性实例;
图11示出根据一个实施方案的作为由授权服务执行的结果而刷新激活令牌的过程的说明性实例;以及
图12示出在其中可实现各种实施方案的环境。
具体实施方式
当前文档描述授权服务,所述授权服务允许本地部署(on-premises)客户端资源如服务器、计算设备和虚拟机向在线服务供应商注册,并且接收授权令牌,所述授权令牌可用来访问由在线服务供应商提供的在线服务。这可允许例如本地部署客户端资源与在线服务供应商通信,包括从所述在线服务供应商接收命令。客户端如管理员或其他授权用户使用客户端计算机系统通过应用编程接口(“API”)、命令行接口或其他用户接口访问授权服务。客户端通过提供资源标识符(“资源ID”)和待授予客户端资源的安全角色或特权集来向授权服务注册客户端资源。授权服务将资源ID和所授予的角色或特权记录在资源注册数据库中,并且生成一次性激活代码,所述一次性激活代码被返回到客户端。一次性激活代码在一定量的时间之后到期。
客户端通过将授权代理安装在客户端资源上并以授权服务激活授权代理来授权客户端资源。客户端被提供用于授权代理的安装指令以及一次性激活代码。在一些环境中,客户端被提示在客户端资源上下载并且执行安装程序。安装程序可以采取MSI、PKG、ZIP或setup.exe文件的形式。
一旦授权代理被安装,客户端就通过将激活命令提交至授权代理来激活授权代理。在一些实现方式中,激活命令作为参数被提交至安装程序。客户端随激活命令一起提供资源ID和激活代码作为参数。作为接收激活命令的结果,授权代理生成并且保持用于签署发送至授权服务的请求的公开-私有密钥对。授权代理生成激活请求,所述激活请求包括资源ID、激活代码和公开-私有密钥对中的公开密钥。在一些实现方式中,激活请求包括伪唯一资源ID。伪唯一资源ID由客户端资源生成,以具有即使在客户端资源是从另一个客户端资源成像或克隆时也倾向于对于客户端资源的每个实例唯一的值。例如,伪唯一资源ID可至少部分基于与客户端资源相关联的处理器ID、硬件序列号或网络地址。伪唯一资源ID可用来检测克隆或复制的客户端资源。授权代理以公开-私有密钥对中的私有密钥来签署激活请求,并且将激活请求提交至授权服务。
授权服务从授权代理接收激活请求,并且使用所包括的公开密钥验证激活请求上的签名。激活请求通过确认激活代码对于所提供资源ID有效、未过期、或已经在使用中来加以验证。如果激活请求有效,则授权服务记录激活代码在由激活服务维持的数据库中不再有效,并且将客户端资源信息记录在授权客户端资源的数据库中。可由授权服务自身,或通过致使另一个实体使激活代码无效,来使激活代码无效。授权服务至少部分基于随激活命令一起提供的资源ID从资源注册数据库检索所请求的角色或特权。激活服务联系在线服务供应商,并且获取授权令牌,所述授权令牌提供所请求的角色或特权。授权服务将授权令牌返回到在客户端资源上运行的授权代理。资源授权数据库保持与所发布的授权令牌有关的信息以供稍后使用。
授权代理使用授权令牌来访问由在线服务供应商提供的在线服务。当客户端资源将请求发送至在线服务时,与请求一起,客户端资源提供授权令牌。在线服务接收请求,并且根据与授权令牌相关联的角色或特权完成或拒绝请求。如果授权令牌到期,则授权令牌可由授权代理刷新。为了刷新授权令牌,授权代理将签署的请求发送至授权服务。授权服务验证请求上的数字签名,从在线服务供应商获取新授权令牌,并且将新授权令牌返回到授权代理。
在一些环境中,客户端资源可被克隆或复制。克隆资源可由授权服务在激活期间或在对服务的请求期间检测。在一些实现方式中,授权代理生成伪唯一资源标识符,所述伪唯一资源标识符在客户端资源的注册期间被提供至授权服务。伪唯一资源标识符在注册期间被提供至授权服务,并且将克隆客户端资源与相关父客户端资源区分开。在另一实现方式中,与对授权服务的每个请求一起,授权代理包括序号。如果授权服务从客户端资源接收到包括先前所接收的资源ID和序号的请求,则检测到克隆资源。
由客户端使用的各种认证机制可用来获取用于客户端资源的授权令牌。例如,如果客户端使用用户名和密码来向在线服务进行认证。则用户名和密码可由客户端在客户端资源向授权服务的注册期间供应。如果客户端使用数字证书来向在线服务进行认证,则数字证书可由客户端在客户端资源向授权服务的注册期间供应。
客户端资源可位于本地客户端计算机系统、客户端控制的网络环境、本地部署数据中心、远程网络或由在线服务供应商控制的网络上。本地部署客户端资源指的是物理上位于客户端的营业场所处并且经受客户端的物理控制的客户端资源。授权服务可为由在线服务供应商提供的单独服务,或可为与由在线服务供应商提供的特定在线服务相关联的服务。在一些实现方式中,授权服务由第三方提供,并且授权服务与在线服务供应商或特定在线服务协调,授权服务为所述特定在线服务提供授权令牌。通过将授权令牌分布到客户端资源,客户端资源能够在拥有客户端资源的客户端的权限下访问若干在线服务,而无需将客户端凭证分布到客户端资源或针对每个客户端资源发布新凭证。
图1示出在其中可实践各种实施方案的环境的说明性实例。在线服务供应商102提供若干在线服务以及授权服务104。在线服务供应商102的客户端106通过计算机网络访问由在线服务供应商提供的服务。客户端106从提供服务管理控制台110的客户端计算机系统108管理对在线服务供应商的访问。客户端106拥有并且操作若干客户端资源如服务器、虚拟机和网络上的其他计算设备。
如果客户端106想要向客户端资源112提供对由在线服务供应商提供的服务的访问,则客户端使用服务管理控制台110生成注册请求并且将注册请求发送至授权服务104。注册请求包括用于客户端资源112的资源ID、待授予客户端资源的安全角色以及授权请求所必需的与客户端106相关联的任何凭证,如用户名/密码组合或客户端数字证书。
授权服务104生成激活代码,并且将激活代码、资源ID和时间戳存储在位于授权服务104内的资源注册数据库中。将激活代码存储在资源注册数据库中可包括存储具有激活代码自身或启用访问激活代码的验证的信息的记录,所述信息如散列或至少部分基于激活代码得出的其他信息。资源ID可被存储为散列,所述散列允许对由授权代理呈现的匹配资源ID的验证。激活代码由服务管理控制台110返回到客户端,并且客户端106被提供用于将授权代理114下载和安装到客户端资源112上的指令。在一些实施方案中,授权服务致使授权代理114在没有来自客户端106的干预的情况下被安装在客户端资源112上。授权服务104命令服务管理控制台110联系客户端资源112并且安装授权代理114。在另一实施方案中,客户端106从授权服务104接收指令,并且下载用于授权代理的安装程序,所述安装程序与客户端资源112兼容。安装程序可通过计算机网络或借由使用计算机可读介质如CD-ROM、USB存储器棒、闪存驱动器或其他介质来传递至客户端资源112。客户端106在客户端资源112上执行安装程序以安装授权代理114。可向安装程序提供参数,所述参数指定激活代码和资源ID。在一些实现方式中,客户端106将激活命令发布至授权代理,所述激活命令包括资源ID和激活代码作为参数。
授权代理114通过将包括激活代码的激活请求发送至授权服务104进行激活。在一些实现方式中,授权代理114生成公开-私有密钥对,如用于在签署发送至授权服务104的请求中使用的2048位RSA密钥对。授权代理114还可生成伪唯一资源ID,所述伪唯一资源ID与资源ID一起供应至授权服务104。伪唯一资源ID帮助确保通过克隆或复制其他客户端资源生成的客户端资源具有与授权服务104的唯一标识符。授权代理114生成激活请求,所述激活请求包括资源ID、激活代码和任选的伪唯一资源ID,以及公开-私有密钥对中的公开密钥。激活请求使用公开-私有密钥对中的私有密钥来签署并且被发送至授权服务104。
授权服务104接收激活请求并且使用与请求一起提供的公开密钥来验证请求上的签名。如果激活请求未被适当签署,则拒绝请求。如果激活请求被适当签署,则授权服务104访问资源注册数据库并且抽取与所提供的资源ID相关联的激活代码。如果未发现激活代码,或如果激活代码到期,或如果激活代码不与所提供的资源ID相关联,或如果激活代码已被使用,则激活代码无效并且拒绝激活请求。如果激活代码有效,则从资源注册数据库移除激活代码,使得激活代码不再能被使用,并且从注册数据库检索分配给客户端资源112的角色和/或特权。授权服务104向在线服务供应商102请求授权令牌,所述授权令牌提供分配给客户端资源112的角色和/或特权。授权令牌、资源ID、伪唯一资源ID、公开-私有密钥对中的公开密钥、以及当前时间戳保持在授权服务104内的资源授权数据库中。授权服务104将授权令牌返回到授权代理114。
授权代理114接收授权令牌,所述授权令牌可用来访问由在线服务供应商102提供的在线服务。在一些实现方式中,授权代理114向在客户端资源112上运行的应用提供服务API。由服务API接收的服务请求与授权令牌一起被传送到由在线服务供应商102提供的服务上。在线服务使用授权令牌来识别请求程序,并且识别授予请求程序的角色或权限。如果授予请求程序的角色或权限允许待完成的服务请求,则服务完成请求并且向授权代理114提供响应。在另一实现方式中,授权代理114向在客户端资源112上运行的应用提供授权令牌,并且应用通过与服务请求一起提供授权令牌来将请求提交至由在线服务供应商102提供的服务。服务使用授权令牌来识别并且授权请求程序,视情况完成服务请求,并且向应用提供用于服务请求的相关联响应。
在各种实现方式中,授权令牌可被配置为在一定量的时间之后到期。例如,授权令牌可在授权令牌已发布至授权代理114一小时之后到期。授权服务104可在预期到授权令牌的到期时、作为从授权代理114接收刷新命令的结果、或作为从授权代理114(或在客户端资源上运行的应用)接收具有到期授权令牌的请求的结果,来将更新令牌发布至授权代理114。
图2示出根据一个实施方案的以共同授权令牌访问若干在线服务的客户端资源的说明性实例。环境200包括客户端资源202,所述客户端资源202访问由在线服务供应商204提供的若干在线服务。客户端资源202安装有授权代理206,所述授权代理206响应于包括激活代码的激活请求而从授权服务208接收授权令牌。授权服务208与在线服务供应商204相关联。在线服务供应商204提供若干在线服务,包括计算服务210、存储服务212、和密码服务214。在另外的实现方式中,在线服务供应商204可以提供其他在线服务,如密钥管理服务、虚拟计算服务、电子邮件服务、消息传送服务、视频会议服务或Web搜索服务。由授权服务208提供的授权令牌与一个或多个角色和/或一个或多个权限相关联,所述一个或多个角色和/或一个或多个权限授予对由在线服务供应商204提供的在线服务中的一个或多个的访问。至少部分地基于与授权令牌相关联的角色和权限,授权令牌可由授权代理206用来访问由在线服务供应商204提供的服务中的一个或多个。
例如,如果客户端向授权服务208注册客户端资源202并且指定客户端资源202被授予容许访问由在线服务供应商204提供的若干服务的角色,则由授权服务208提供至客户端资源202上的授权代理206的授权令牌可由客户端资源202用来访问在线服务供应商204上的任何服务。例如,在图2中,由授权服务208提供的授权令牌可由授权代理206用来访问计算服务210、存储服务212或密码服务214。客户端在授权客户端资源时可请求对由在线服务供应商提供的服务中的一个、全部或其子集的访问。在另一实例中,授权代理206从授权服务208接收受限令牌。受限令牌可由授权代理206用来访问计算服务210和存储服务212,但不访问密码服务214。
在一些实现方式中,客户端资源202从由在线服务供应商204提供的服务接收命令。例如,由授权代理206提供的令牌可允许访问运行命令服务。运行命令服务将命令发送至客户端资源202以执行。在另一实例中,由在线服务供应商204提供的安全服务可确定客户端资源202已受到威胁并且向授权代理206发送命令,所述命令致使客户端资源202删除存储在客户端资源202上的敏感数据。
图3示出根据一个实施方案的访问在线服务的克隆客户端资源的说明性实例。系统300包括在线服务供应商302,所述在线服务供应商302提供授权服务304和计算服务306。在另外的实施方案中,替代计算服务306,在线服务供应商302可提供web托管服务、存储服务或其他服务。客户端资源308如虚拟计算机实例、web设备或其他计算装置托管授权代理310。授权代理310向授权服务304注册,并且已由授权服务304提供授权令牌。客户端资源308使用授权令牌生成请求并且将请求发送至计算服务306。至少部分地基于授权令牌,计算服务306确定请求是否被受权并且完成请求。
如果客户端资源308被克隆、拷贝或以其他方式复制,则创建克隆客户端资源312。克隆客户端资源312包括副本授权代理314。在一些实现方式中,克隆客户端资源312和副本授权代理314具有与匹配客户端资源308和授权代理310的配置匹配的配置。如果副本授权代理314生成包括与由授权代理310使用的授权令牌匹配的授权令牌的服务请求并且将所述服务请求提交至计算服务306,则计算服务306检测匹配的授权令牌正由两个不同的客户端资源使用,并且拒绝由克隆客户端资源提交的服务请求。
在一些实施方案中,计算服务306通过使用由客户端资源提供的伪唯一资源标识符来检测匹配的授权令牌正被使用。授权代理生成伪唯一资源标识符,所述伪唯一资源标识符至少部分地基于处理器ID、与客户端资源相关联的网络接口的网络地址、或机器序列号。授权代理在将请求提交至计算服务306时提供伪唯一资源标识符。在另一实施方案中,计算服务306通过检查与由授权代理发送的请求包括在一起的序号来检测匹配的授权令牌正被使用。由授权代理生成的请求由授权代理分配序号。序号针对每个相继请求递增,并且计算服务306将从给定授权代理接收的每个请求的序号与从给定授权代理接收的先前请求的序号进行比较。如果计算服务306从副本授权代理接收具有与由客户端资源308发送的另一个请求匹配的资源ID和序号的请求,则计算服务306将确定请求源自于从被克隆资源克隆的客户端资源312。计算服务306通知授权服务304,并且授权服务304将新授权令牌重新发布至克隆客户端资源312。在一些实现方式中,当计算服务确定请求源自于克隆客户端资源312时,服务请求被拒绝并且新令牌不被发布至克隆客户端资源。
在另一实施方案中,副本授权代理314通过将伪唯一资源标识符与新生成的伪唯一资源标识符进行比较来检测克隆客户端资源312为克隆资源。当客户端资源308被克隆以产生克隆客户端资源312时,在将请求发送至计算服务306之前,副本授权代理314生成新的伪唯一资源标识符并且将新的伪唯一资源标识符与存储的伪唯一资源标识符进行比较,所述存储的伪唯一资源标识符是从客户端资源308拷贝的。如果存储的伪唯一资源标识符不匹配新的伪唯一资源标识符,则拒绝通过克隆客户端请求提交的服务请求。在一些实现方式中,如果存储的伪唯一资源标识符不匹配新的伪唯一资源标识符,副本授权代理314联系授权服务304并且请求新授权令牌。新授权令牌由副本授权代理314用来向计算服务306请求服务。
图4示出根据一个实施方案的授权由客户端资源对在线服务的访问的授权服务的说明性实例。系统图400包括与授权服务404相关联的在线服务供应商402。客户端资源406由操作客户端计算机408的客户端407向授权服务404注册。在图4中所示的实例中,在线服务供应商402包括计算服务410,但是计算服务410可任择地由虚拟计算服务、存储服务、密码服务或其他在线服务替换。在线服务供应商402提供授权令牌服务412。授权令牌服务将令牌发布至授权服务404,所述令牌可由线上实体用来授权提交至计算服务410的服务请求。
授权服务404包括资源授权管理器414。资源授权管理器414为通过网络暴露激活API和注册API的操作模块。注册API提供允许客户端407注册客户端资源的功能,所述客户端资源被授权访问在线服务供应商402。激活API提供允许授权代理接收作为由客户端407提供的激活代码的交换的授权令牌的功能。授权服务404包括资源注册数据库418,所述资源注册数据库418保持用于客户端资源的注册信息。注册信息可包括资源ID、激活代码、安全角色、安全权限、注册时间戳和资源名。授权服务404包括资源授权数据库420。资源授权数据库420保持与激活的客户端资源如客户端资源406有关的信息。与激活的客户端资源有关的信息可包括资源ID、伪唯一资源ID、公开加密密钥、安全角色、安全权限和令牌有效期。
客户端资源406使用由客户端407发起的过程来授权访问计算服务410。客户端407使用由客户端计算机408托管的服务管理控制台422。服务管理控制台422提供命令行接口、应用编程接口、图形用户接口或到资源授权管理器414的其他接口。客户端407将客户端资源注册请求提交至资源授权管理器414以注册客户端资源406。客户端资源注册请求指定待授予客户端资源406的一个或多个安全角色和/或一个或多个权限。客户端资源注册请求由客户端407使用客户端407的凭证授权。例如,客户端407可使用客户端的用户名和密码、数字证书或生物特征签名来授权客户端资源注册请求。资源授权管理器414验证由客户端407提供的凭证,并且如果凭证是充分的,则生成激活代码。在一些实现方式中,激活代码在一定量的时间之后到期。时间的量被确定为足以完成激活客户端资源406的时间的量,如一小时。激活代码和有效期存储在资源注册数据库418中。资源授权管理器414通过服务管理控制台422将激活代码返回到客户端407。
资源授权管理器414致使授权代理424安装在客户端资源406上。在一些实现方式中,资源授权管理器414向客户端407提供关于如何将授权代理424下载并安装到客户端资源406上的指令。在另一个实现方式中,资源授权管理器414将命令发送至服务管理控制台422以致使服务管理控制台422将授权代理424安装在客户端资源406上。在又一个实现方式中,资源授权管理器414将命令发送至客户端资源406,所述命令致使客户端资源4062安装授权代理424。授权代理424可通过将可执行映像拷贝至客户端资源406上,或通过在客户端资源406上运行用于授权代理424的安装程序或安装脚本来安装。在一些实现方式中,客户端407将资源标识符和激活代码作为参数提供至安装程序或脚本,所述安装程序或脚本安装授权代理424。在另一个实现方式中,客户端407将资源ID和激活代码作为激活命令的一部分发送至授权代理424。
授权代理424作为客户端资源406上的服务操作,并且以资源授权管理器414激活来获取授权令牌,所述授权令牌允许对计算服务410的访问。授权代理424生成公开-私有密钥对,并且将公开-私有密钥对保持在客户端资源406上。在一些实现方式中,授权代理424生成伪唯一资源ID,所述伪唯一资源ID可用来检测客户端资源是否是克隆或复制的。授权代理424将激活请求发送至授权服务,所述激活请求包括用于客户端资源的资源ID、由授权代理424生成的伪唯一资源ID、公开-私有密钥对中的公开密钥以及时间戳。激活请求使用公开-私有密钥对中的私有密钥来签署并且被发送至授权服务404。授权服务404访问资源注册数据库418,并且确定激活代码对于所提供的资源ID是否有效,以及激活代码是否已到期或先前已被使用。如果激活代码先前未被使用、未到期、并且对于所提供的资源ID有效,则资源授权管理器414接受授权代理424的激活,并且将资源ID、伪唯一资源ID、授予客户端资源406的角色和权限以及公开-私有密钥对中的公开密钥记录在资源授权数据库420中。资源授权管理器414向授权令牌服务412请求授予在客户端资源406的注册期间请求的角色和权限的授权,并且将授权令牌返回到授权代理424。
客户端资源406可以使用授权令牌来授权发送至计算服务410的请求。在一些实现方式中,授权令牌在一定量的时间如一小时之后到期。如果授权令牌到期,则授权代理424可向资源授权管理器414请求刷新令牌。来自授权代理424的请求以公开-私有密钥对中的私有密钥来签署,并且资源授权管理器414通过以存储在资源授权数据库420中的公开密钥确认请求上的签名来验证请求的来源。客户端407能够通过服务管理控制台422管理授予客户端资源的角色和权限。例如,如果特定客户端资源受到威胁或停止使用,则客户端407可通过服务管理控制台422访问资源授权管理器414并且注销受威胁的客户端资源。资源授权管理器414将联系授权令牌服务412并且使受威胁的资源所持有的令牌无效。因此,受威胁的资源将不再能够访问计算服务410。
图5示出根据一个实施方案的作为由服务管理控制台、授权服务和授权代理执行的结果而授权由客户端资源对在线服务的访问的过程的说明性实例。泳道图500例示由服务管理控制台、授权服务和授权代理执行的操作。服务管理控制台为由客户端用来与授权服务通信的接口程序。服务管理控制台可为命令行接口、图形接口或API。过程从框502开始,其中客户端通过服务管理控制台提交向授权服务注册客户端资源的请求。请求包括若干参数,包括客户端资源的名称以及待授予客户端资源的安全角色和/或安全权限。安全角色和/或安全权限指定客户端资源在访问在线服务时将具有的权限。
在框504处,授权服务从服务管理控制台接收请求。授权服务检查与请求包括在一起的客户端凭证以确定是否针对所请求的安全角色和/或安全权限注册客户端资源。例如,客户端可提供用户名和密码、数字证书或生物特征签名,所述用户名和密码、数字证书或生物特征签名识别客户端并且允许授权服务授权请求。如果请求被授权,则执行前进到框508。授权服务生成用于客户端资源的激活代码和资源ID,并且激活代码、资源ID和注册时间戳被添加到资源注册数据库。在一些实现方式中,激活代码为在一定量的时间之后或作为第一次使用的结果到期的一次性字母数字代码。有效期可由授权服务在每一客户端资源的基础上配置或针对由授权服务授权的客户端服务全局地配置。有效期可按表示当前时间以及偏移时间量的时间戳的形式来记录,或作为表示到期将发生的未来时间的时间戳被记录。客户端可以注册请求指定激活代码的有效期。如果客户端以注册请求指定有效期,则有效期被记录在授权服务上的资源注册数据库中。授权服务将激活代码和资源ID返回到服务管理控制台。
在框510处,服务管理控制台从授权服务接收激活代码和资源ID。作为从授权服务接收注册信息的结果,服务管理控制台发起授权代理在客户端资源上的安装512。在一些实现方式中,授权服务与激活代码一起提供指令,所述指令指示客户端将授权代理安装在客户端资源上。指令可包括用于授权代理的安装程序或脚本,或用于下载和安装用于授权代理的程序或脚本的指令。安装程序或脚本取得由授权服务提供的注册信息作为参数。在另一个实现方式中,授权服务致使服务管理控制台启动脚本,所述脚本将授权代理的可执行映像拷贝到客户端资源,并且启动客户端资源上的授权代理。在又一个实现方式中,授权服务致使服务管理控制台在客户端资源上启动安装程序,所述安装程序安装并且运行授权代理。
在框514处,将授权代理安装在客户端资源上。作为安装的一部分,将由授权服务提供至服务管理控制台的注册信息传送至授权代理。授权代理保持资源ID和激活代码以用于在利用授权服务的激活中使用。授权代理生成515加密的公开-私有密钥对。公开-私有密钥对由授权代理存储在客户端资源上,并且公开-私有密钥对中的公开密钥被提供至授权服务。授权代理使用公开-私有密钥对中的私有密钥来签署发送至授权服务的未来请求。在框516处,授权代理通过将资源ID、公开密钥和激活代码提供至授权服务来以授权服务激活。激活请求可以公开-私有密钥对中的私有密钥来签署。在一些实现方式中,授权代理至少部分地基于处理器ID、硬件序列号、网络地址、IP地址或与客户端资源相关联的网络接口的媒体访问代码(“MAC”)来生成伪唯一资源ID。伪唯一资源ID在激活期间被提供至授权服务,并且可用来区分在成像或快照过程期间克隆或复制的资源。
在框518处,授权服务接收激活请求并且使用与请求一起提供的公开密钥来确认请求上的签名。授权服务使用资源注册数据库中的信息来确认激活代码和资源ID。客户端资源的激活在激活令牌未到期、先前未被使用的情况下被授予,并且向所提供的资源ID注册。如果激活被授予,则授权服务通过从与在线服务相关联的授权令牌服务获取授权令牌来向在线服务注册519客户端资源。授权令牌授予安全角色和/或安全权限,当所述安全角色和/或安全权限随服务请求一起提供至在线服务时,客户端资源针对所述安全角色和/或安全权限被注册。在框520处,将授权令牌提供至授权代理。授权代理从授权服务接收授权令牌,并且存储522授权令牌以用于与提交至在线服务的服务请求一起使用。
在一些实现方式中,在框516处,授权代理生成公开-私有密钥对。公开-私有密钥对由授权代理保持以用于在签署在授权代理与授权服务之间交换的消息中使用。在以公开-私有密钥对中的私有密钥来签署的消息中,公开-私有密钥对中的公开密钥与激活代码和资源ID一起被提供至授权服务。在框518处,授权服务使用所提供的公开密钥来确认签名,并且将公开密钥保持在由授权服务维持的资源授权数据库中。由授权服务发送至授权代理的消息可以公开密钥来签署。例如,当在框520处授权服务将授权令牌发送至授权代理时,可使用公开密钥来加密授权令牌,并且授权代理可使用公开-私有密钥对中的私有密钥对消息进行解密。
图6示出根据一个实施方案的作为由授权服务、授权代理和在线服务执行的结果而完成由客户端资源提交的在线服务请求的过程的说明性实例。泳道图700例示由授权服务、授权代理和在线服务执行的操作。作为图5中所例示的过程的结果,授权服务将授权令牌发布602至在客户端资源上运行的授权代理。授权代理存储604授权令牌以用于与提交至在线服务的服务请求一起使用。在框606处,授权代理生成对在线服务的服务请求。服务请求与授权令牌一起提交608至在线服务。
作为接收服务请求的结果,在线服务至少部分地通过确定令牌有效并且未到期来认证610请求程序。如果资源ID由授权代理提供,则授权代理确定授权令牌与资源ID相关联。在框612处,在线服务检索与授权令牌相关联的安全角色和/或安全权限。如果安全角色和/或安全权限足以完成请求,则执行前进到框614并且在线服务完成由客户端资源提交的请求。如果授权令牌无效,或如果安全角色或安全权限不充分,则拒绝服务请求。
在框616处,授权代理接收服务请求的结果。如果服务请求被完成,则可将结果传递至服务请求的发起者,如在客户端资源上运行的应用程序。如果服务请求被拒绝,则授权代理可采取进一步动作,如请求授权令牌的更新或向授权服务重新注册客户端资源。
图7示出根据一个实施方案的作为由授权服务、授权代理和在线服务执行的结果而刷新由客户端资源使用的授权令牌的过程的说明性实例。在许多实现方式中,发布至授权代理的授权令牌在一段时间之后到期并且由授权代理刷新以便使对在线服务的进一步访问安全。泳道图700例示由授权服务、授权代理和在线服务执行的操作。在框702处,授权代理生成对在线服务的服务请求。服务请求可由授权代理发起,或可响应于来自在客户端资源上运行的应用程序的请求而生成。授权代理将服务请求与授权令牌一起提交704至在线服务。
在线服务尝试通过确认令牌与客户端资源有效配准并且与服务请求相关联的任何凭证或签名有效,来认证708服务请求。在框710处,在线服务确定授权令牌已到期,并且通知授权代理。
授权代理接收授权令牌到期的通知,并且向授权服务请求712新授权令牌。授权代理以公开-私有密钥对中的私有密钥来签署请求,所述公开-私有密钥对由授权代理生成并且在客户端资源向授权服务的注册期间使用。
作为接收对新授权令牌的请求的结果,授权服务通过使用维持在资源授权数据库中的公开-私有密钥对中的公开密钥验证请求上的签名来认证713请求,并且获取714新授权令牌。新授权令牌可通过从资源注册数据库检索安全角色和/或安全权限并且向与由客户端资源使用的在线服务相关联的授权令牌服务请求授权令牌来获取。在框716处,授权服务将新授权令牌提供至授权代理。新授权令牌可使用公开-私有密钥对中的公开密钥来签署或加密,并且在接收时由授权代理解密。
授权代理从授权服务接收新授权令牌,并且存储718新授权令牌以用于在将服务请求提交至在线服务中使用。服务请求与新授权令牌一起由授权代理重新提交720至在线服务。服务请求可使用指定用于接收这类请求的IP端口上的安全网络协议如TLS或SSL提交至在线服务。
在线服务接收重新提交的服务请求并且使用新授权令牌认证722重新提交的请求。如果新授权令牌与允许请求被完成的安全角色和/或安全权限相关联,则在线服务完成724服务请求并且将对应的结果返回到授权代理。
在一些实现方式中,授权代理生成伪唯一资源ID,所述伪唯一资源ID在请求新授权令牌时被提供至授权服务。伪唯一资源ID可由授权服务用来检测授权代理是否安装在从先前向授权服务注册的另一个客户端资源克隆的客户端资源上。如果检测到克隆客户端资源,则授权服务可以将克隆客户端资源作为新客户端资源进行注册,而不是刷新克隆客户端资源当前所使用的令牌。在一些实现方式中,当检测到克隆客户端资源时,授权服务拒绝对新授权令牌的请求,从而致使克隆客户端资源上的授权代理发布作为新客户端资源进行注册的请求。
在另一个实现方式中,在框702处,授权代理生成用于服务请求的服务请求序号。服务请求序号针对提交至在线服务的每个相继请求递增。在框708处,当在线服务接收含有序号的服务请求时,在线服务将所接收序号与先前所接收序号进行比较。如果所接收的序号不大于先前所接收的序号,则在线服务确定请求程序为克隆客户端资源,并且拒绝服务请求。如果授权代理接收到来自在线服务的不正确序号的通知,则授权代理可采取若干动作,包括将请求发送至授权服务以使当前授权令牌无效,向授权服务请求新授权令牌,以及通过服务管理控制台向客户端报告克隆资源。
图8示出根据一个实施方案的作为由授权服务执行的结果而注册客户端资源以用于与在线服务一起使用的过程的说明性实例。过程图800示出从框802开始的过程,其中授权服务从客户端接收注册客户端资源的注册请求。注册请求可源自于托管服务管理控制台的客户端计算机。客户端从客户端计算机访问服务管理控制台以授予或拒绝来自各种客户端资源的对在线服务的访问。注册请求可包括资源名,并且指定一个或多个安全角色和/或一个或多个安全权限。安全角色和权限关于在线服务限定待授予客户端资源的权限和特权。例如,安全角色可授予客户端资源对在线服务的管理访问权限,或特权可被指定,所述特权授予客户端资源从存储服务执行读取命令的能力,但是拒绝向存储服务执行写入命令的能力。注册请求包括由客户端供应的凭证。凭证可采取用户名和密码、数字证书、双因素认证序列、生物特征识别、或其他凭证的形式。在框804处,授权服务验证客户端的凭证以认证客户端的身份。授权服务至少部分地基于客户端的凭证确定806客户端是否被授权以所请求的安全角色和/或特权注册客户端装置。在一些实现方式中,客户端凭证包括属性(AssignRole),所述属性指示客户端是否可将角色和特权分配给客户端资源。如果客户端的凭证不允许客户端以所请求的安全角色和/或特权注册客户端资源,则执行前进到框808并且拒绝注册请求。
如果客户端的凭证容许客户端注册客户端资源,则执行前进到框810并且授权服务生成用于该资源的资源ID。资源ID为返回到客户端并且在客户端资源被激活时供应至客户端资源的标识符。资源ID可为字母数字序列、整数、一般唯一标识符(“GUID”)、二进制序列或数据库索引。在框812处,授权服务生成用于资源的激活代码。在一些实现方式中,激活代码为字母数字序列(如四个元组的分组)、整数或产生一组语音上可发音的音节的字符序列。例如,激活代码可为使用随机或伪随机数生成的128位base 64编码的(22个字符)激活代码。授权服务将资源ID和激活代码与资源名和安全角色一起存储814在由授权服务维持的资源注册数据库中。在一些实现方式中,授权服务存储记录生成激活代码的时间的时间戳,并且激活代码在一定量的时间如一小时之后到期。
在框816处,授权服务将激活代码和资源ID返回到客户端。在一些实现方式中,授权服务通过服务管理控制台将激活代码和资源ID返回到客户端。授权服务可致使服务管理控制台将授权代理安装在客户端资源上。可替代地,授权服务可将指令提供至客户端以用于在客户端资源上下载和安装授权代理。
图9示出根据一个实施方案的作为由客户端资源上的授权代理执行的结果而激活客户端资源以使用在线服务的过程的说明性实例。过程图900例示从框902开始的过程,其中授权代理请求激活客户端资源,例如通过由客户端命令。可命令授权代理在授权代理借以安装在客户端资源上的过程期间激活客户端资源。例如,安装授权代理的安装程序或安装脚本可取得包括激活代码和资源ID的参数。一旦代理被安装,安装脚本或安装程序发起图9中所例示的激活过程。在另一实例中,客户端安装授权代理,并且随后客户端通过由授权代理提供的接口执行激活命令,从而提供激活代码和资源ID作为参数。
作为接收命令以激活客户端资源的结果,授权代理创建904伪唯一资源ID。伪唯一资源ID可至少部分地基于与客户端资源相关联的序列号、处理器ID、与客户端资源相关联的网络接口的网络地址、与客户端资源相关联的网络接口的媒体访问控制(“MAC”)地址、或客户端资源的系统配置来生成。伪唯一资源ID可用来将使用图像文件或快照克隆的客户端资源与它们的父客户端资源或其他克隆客户端资源区分开。在框906处,授权客户端生成并且存储公开-私有密钥对如2048位RSA密钥对。公开-私有密钥对用来与授权服务通信。
授权代理生成908待提交至授权服务的激活命令。激活命令可包括例如资源ID、伪唯一资源ID、激活代码以及公开-私有密钥对中的公开密钥。使用公开-私有密钥对中的私有密钥来签署910激活命令。在框912处,将激活命令传输至授权服务。激活命令可使用安全协议如TLS或SSL通过网络传输至授权服务。
授权服务将激活命令的结果返回到授权代理。如果授权服务指示914激活是不成功的,则拒绝916对在线服务的访问。如果授权服务指示914激活命令是成功的,则授权代理从授权服务接收918授权令牌,所述授权令牌可用来根据由客户端在客户端资源的注册期间指定的安全角色和安全权限访问在线服务。授权代理存储920授权令牌以用于与稍后服务请求一起使用。
图10示出根据一个实施方案的作为由授权服务执行的结果而完成资源激活请求的过程的说明性实例。过程图1000示出从框1002开始的过程,其中授权服务从在客户端资源上运行的授权代理接收激活请求。激活请求包括激活代码、资源ID、伪唯一资源ID、与授权代理相关联的公开-私有密钥对中的公开密钥以及时间戳。激活请求以公开-私有密钥对中的私有密钥来签署。授权服务做出若干判定以确定是否允许激活请求。
在框1003处,授权服务确定激活请求是否到期。如果与激活代码包括在一起的时间戳存在超过五分钟之久,则激活请求到期。这可防止激活请求在回放攻击中被重新使用。如果激活请求未到期,则执行前进到框1004,并且授权服务使用与授权请求一起提供的公开密钥确定激活请求上的签名是否正确。如果签名有效,则授权服务查询资源注册数据库以确定1006激活代码是否已到期。如果自激活代码由授权服务发布开始,大于有效期阈值的时间量已到期,或者如果激活代码先前用来以授权服务激活客户端资源,则激活代码可为到期的。如果激活代码未到期,则授权服务确定1008激活代码是否有效。如果资源注册数据库中的信息指示激活代码与托管授权代理的客户端资源适当地配准,则激活代码有效。如果不满足以上条件,则执行前进到框1012并且授权服务拒绝激活请求。如果满足以上条件,则执行前进到框1014。
在框1014处,授权服务将激活信息记录在资源授权数据库中。激活信息可包括指示激活请求何时被授予的时间戳、与激活相关联的授权令牌的有效期、用于客户端资源的资源ID和伪唯一资源ID以及公开-私有密钥对中的公开密钥。在框1016处,授权服务获取用于在线服务的授权令牌。用于在线服务的授权令牌可从与在线服务相关联的授权令牌服务获取。在一些实现方式中,授权令牌服务与提供多个在线服务的在线服务供应商相关联。在这类实现方式中,单个授权令牌可与多个在线服务一起使用。
在框1018处,授权服务将授权令牌提供至授权代理。授权令牌可以公开密钥来签署或加密,所述公开密钥由授权代理作为请求的一部分来提供。授权令牌可由授权代理和相关联客户端资源用来对在线服务做出服务请求。
图11示出根据一个实施方案的作为由授权服务执行的结果而刷新激活令牌的过程的说明性实例。过程图1100例示用于刷新激活令牌的过程,所述过程从框1102开始,其中授权服务从授权代理接收刷新请求。刷新请求包括请求的时间戳、用于客户端资源的资源ID、以及在一些实施方案中用于客户端资源的伪唯一资源ID。刷新请求以由授权代理拥有的公开-私有密钥对中的私有密钥来签署。
授权服务接收刷新请求并且查询1104资源授权数据库以检索用于授权代理的公开密钥。使用公开密钥,授权服务确定1106刷新请求是否已到期。授权服务通过确定时间戳与当前时间之间的差异是否超过阈值来确定刷新请求是否到期。在一些实现方式中,阈值为五分钟。如果刷新请求已到期,则执行前进到框1108并且拒绝刷新请求。如果授权服务确定刷新请求没有到期,则执行前进到决策框1110,其中授权服务确定刷新请求上的签名是否有效。如果授权服务确定刷新请求上的签名无效,则授权服务拒绝1108刷新请求。如果授权服务确定刷新请求上的签名有效,则执行前进到决策框1114,其中授权服务查询资源授权数据库以确定授权代理是否由克隆客户端资源托管。克隆资源可通过检查伪唯一资源ID来检测。如果资源授权数据库包括以刷新请求指定的资源ID的条目,但是随请求一起提供的伪唯一资源ID不匹配资源授权数据库中的伪唯一资源ID,则授权服务确定托管授权代理的客户端资源可为克隆的。如果授权服务确定客户端资源可为克隆的,则执行前进到框1116并且授权服务拒绝刷新请求并向授权代理指示已检测到克隆资源。在一些实现方式中,授权服务在资源授权数据库中创建新条目,并且授权具有资源ID的克隆资源,所述克隆资源使用伪唯一资源ID与父客户端资源区分开。
如果授权服务未检测到克隆资源,则执行前进到框1118,其中授权服务得到用于在注册过程期间为客户端资源请求的角色的新授权令牌。新授权令牌可从与在线服务供应商或在线服务相关联的授权令牌服务获取。授权令牌以及用于管理授权令牌的有效期的时间戳可存储在资源授权数据库中。在框1120处,将新授权令牌提供至授权代理。授权令牌可以与授权代理相关联的公开-私有密钥对中的公开密钥来签署或加密。
图12示出用于实现根据各种实施方案的方面的示例性环境1200的方面。如将了解,尽管出于解释目的使用基于web的环境,但是可视情况使用不同环境来实现各种实施方案。环境包括电子客户端装置1202,所述电子客户端装置1202可包括可操作来通过适当网络1204发送和/或接收请求、消息或信息并且在一些实施方案中将信息传送回装置的用户的任何适当装置。这类客户端装置的实例包括个人计算机、手机、手持式消息传送装置、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读器等。网络可包括任何适当网络,包括内联网、因特网、蜂窝网、局域网、卫星网络,或任何其他这类网络和/或上述网络的组合。用于这种系统的部件可至少部分地取决于所选择的网络和/或环境的类型。用于通过这种网络通信的许多协议和部件是众所周知的,并且本文将不详细讨论。通过网络进行的通信可通过有线或无线连接及其组合来实现。在这个实例中,网络包括因特网和/或其他公共可寻址通信网络,因为环境包括用于接收请求并且响应于所述请求而提供内容的web服务器1206,但是对于其他网络来说,可使用服务类似目的的替代装置,如本领域普通技术人员所显而易见的。
说明性环境包括至少一个应用服务器1208和一个数据存储库1210。应理解,可存在可链接起来或以其他方式来配置的若干应用服务器、层或其他元件、进程或部件,它们可交互以执行如从适当数据存储库获得数据的任务。如本文所使用的服务器可用各种方式来实现,诸如硬件装置或虚拟计算机系统。在一些上下文中,服务器可以是指正在计算机系统上执行的编程模块。如本文所使用的,除非另行说明或从上下文清楚地看出,否则术语“数据存储库”是指能够存储、访问和检索数据的任何装置或装置组合,其可包括任何标准、分布式、虚拟或集群式环境中的任何组合和任何数目的数据服务器、数据库、数据存储装置和数据存储介质。应用服务器可包括任何适当硬件、软件和固件,所述硬件、软件和固件用于视执行客户端装置的一个或多个应用的各方面的需要而与数据存储库集成,从而处置应用的一些或所有的数据访问和业务逻辑。应用服务器可与数据存储库协作提供访问控制服务,并且能够生成可用于向用户提供的内容,包括但不限于文本、图形、音频、视频和/或其他内容,所述内容可由web服务器以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)、JavaScript、级联样式表(“CSS”)、JavaScript对象符号(JSON)和/或另一种适当的客户端侧结构化语言的形式向用户提供。传递到客户端装置的内容可由客户端装置处理,以便以一种或多种形式提供内容,所述形式包括但不限于用户可通过听觉、视觉和/或通过其他感觉来感知的形式。所有请求和响应的处置以及客户端装置1202与应用服务器1208之间的内容递送可由web服务器使用以下PHP来处置:在这个实例中为超文本预处理器(“PHP”)、Python、Ruby、Perl、Java、HTML、XML、JSON和/或另一种适当的服务器侧结构化语言。此外,除非从上下文清楚地看出,否则如由单个装置执行的本文所描述的操作可由可形成分布式和/或虚拟系统的多个装置共同执行。
数据存储库1210可包括用于存储与本公开的特定方面相关的数据的若干单独数据表、数据库、数据文档、动态数据存储方案和/或其他数据存储机构和介质。例如,所例示数据存储库可包括用于存储生产数据1212和用户信息1216的机构,生产数据1212和用户信息1216可用于为生产方提供内容。数据存储库还被示出为包括用于存储可用于报告、分析或其他这类目的的日志数据1214的机构。应理解,可能存在可能需要存储在数据存储库中的许多其他方面,如页面图像信息和访问权限信息,所述方面可视情况存储在上文列出的机构中的任何机构中或存储在数据存储库1210中的另外的机构中。数据存储库1210可通过与其相关联的逻辑来操作,以便从应用服务器1208接收指令,并且响应于所述指令获得数据、更新数据或以其他方式处理数据。应用服务器1208可响应于所接收指令提供静态数据、动态数据或静态数据和动态数据的组合。动态数据(如web日志(博客)、购物应用、新闻服务和其他这类应用中使用的数据)可由如本文所描述的服务器侧结构化语言生成,或可由在应用服务器上操作或在其控制下的内容管理系统(“CMS”)提供。在一个实例中,用户可通过由用户操作的装置提交对某种类型的项目的搜索请求。在这种情况下,数据存储库可访问用户信息以验证用户的身份,并且可访问目录详细信息以获得关于所述类型的项目的信息。接着可将信息如以网页上的结果列表的形式返回给用户,用户能够通过用户装置1202上的浏览器查看所述网页。可在浏览器的专用页面或窗口中查看感兴趣的特定项目的信息。然而,应注意,本公开的实施方案未必局限于网页的上下文,而可更一般地应用于处理一般请求,其中请求未必是对内容的请求。
每个服务器通常将包括提供针对所述服务器的一般管理和操作的可执行程序指令的操作系统,并且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),所述指令在由服务器的处理器执行时(即,作为由处理器执行的结果),允许服务器执行其预期功能。
在一个实施方案中,环境是分布式和/或虚拟计算环境,所述环境利用通过通信链路、使用一个或多个计算机网络或直接连接来互连的若干计算机系统和部件。但是,本领域普通技术人员应理解,这种系统也可在具有比图12中所例示更少或更大数目的部件的系统中顺利地操作。因此,对图12中的系统1200的描绘本质上应视为说明性的并且不限制本公开的范围。
此外,可鉴于以下条款对本公开的实施方案进行描述:
1.一种计算机实现的方法,其包括:
在被配置有可执行指令的一个或多个计算机系统的控制下,
从客户端接收注册请求,所述注册请求指定将由在线服务授予客户端资源的安全角色;
确定与所述注册请求一起提交的凭证有效;
授权所述注册请求;
生成用于所述注册请求的激活代码;
生成用于所述客户端资源的资源ID;
存储足以识别所述激活代码的信息和足以识别所述资源ID的信息;
将所述激活代码返回到所述客户端;
致使将授权代理安装在所述客户端资源上;
从所述授权代理接收激活请求,所述激活请求包括所述资源ID和所述激活代码;
从与所述在线服务相关联的授权令牌服务获取授权令牌,所述授权令牌允许所述客户端资源根据所述安全角色使用所述在线服务;以及
将所述授权令牌提供至所述授权代理。
2.如条款1所述的计算机实现的方法,其还包括:
确定有效期已过去或所述激活代码已与先前激活请求一起提供;以及
至少部分地基于确定所述有效期已过去或所述激活代码已与先前激活请求一起提供来使所述激活代码无效。
3.如条款1或2所述的计算机实现的方法,其中:
所述激活请求包括公开-私有密钥对中的公开密钥;
所述激活请求使用与所述公开-私有密钥对相关联的私有密钥数字地签署;并且
所述公开密钥被保持。
4.如条款1-3中任一项所述的计算机实现的方法,其还包括:
与所述激活请求一起接收伪唯一资源ID,所述伪唯一资源ID由所述授权代理生成为对于所述客户端资源为唯一的;以及
至少部分地基于所述伪唯一资源ID确定所述客户端资源为克隆资源。
5.一种实现授权服务的系统,其包括至少一个计算装置,其中所述授权服务:
接收向在线服务注册与客户端相关联的客户端资源的注册请求;
至少部分地基于与所述客户端相关联的凭证授权所述注册请求;
响应于所述注册请求将激活代码提供至所述客户端;
从所述客户端资源接收激活请求,所述激活请求包括所述激活代码;
获取授权令牌,所述授权令牌允许由所述在线服务完成服务请求;并且
将所述授权令牌提供至所述客户端资源。
6.如条款5所述的系统,其中所述授权服务进一步:
与所述注册请求一起接收有效期;
存储所述有效期;
通过将所述有效期与当前时间进行比较来确定所述激活代码到期;并且
使所述激活代码无效。
7.如条款5或6所述的系统,其中服务管理接口将授权代理安装在所述客户端资源上。
8.如条款5-7中任一项所述的系统,其中所述授权服务进一步:
与所述激活请求一起接收伪唯一资源ID,所述伪唯一资源ID至少部分地基于所述客户端资源的处理器ID、所述客户端资源的装置序列号、或与所述客户端资源相关联的网络接口的网络地址;并且
至少部分地基于所述伪唯一资源ID确定所述客户端资源不是从父客户端资源复制的。
9.如条款5-8中任一项所述的系统,其中所述授权服务进一步:
与所述激活请求一起接收公开-私有密钥对中的公开密钥;并且
使用所述公开密钥验证所述激活请求上的数字签名。
10.如条款5-9中任一项所述的系统,其中所述授权服务进一步:
确定所述激活请求上的时间戳与当前时间之间的差异超过超时值;并且
确定所述激活请求已到期并且拒绝所述激活请求。
11.如条款5-10中任一项所述的系统,其中所述在线服务:
接收服务请求,所述服务请求包括时间戳;并且
如果所述时间戳与接收所述服务请求的时间之间的差异大于阈值时间量,则拒绝所述服务请求。
12.如条款5-11中任一项所述的系统,其中:
所述授权令牌是从与在线服务供应商相关联的授权令牌服务获取的;
所述在线服务供应商提供多个在线服务;并且
所述授权令牌可与所述多个在线服务中的超过一个在线服务一起使用。
13.一种非暂时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令在由客户端资源的一个或多个处理器执行的过程中,致使所述客户端资源至少进行以下操作:
获取激活代码和资源标识符,所述激活代码和所述资源标识符由与在线服务供应商相关联的授权服务提供;
生成公开-私有密钥对,所述公开-私有密钥对包括公开密钥和私有密钥;
生成用于所述客户端资源的伪唯一资源标识符;
将激活命令提交至所述授权服务,所述激活命令包括所述公开密钥、所述伪唯一资源标识符、所述资源标识符、所述激活代码、以及用所述私有密钥生成的数字签名;以及
响应于所述激活命令接收授权令牌。
14.如条款13所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行的过程中致使所述客户端资源进行以下操作的指令:
将服务请求提交至由所述在线服务供应商提供的在线服务,所述服务请求包括所述授权令牌。
15.如条款14所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行的过程中致使所述客户端资源进行以下操作的指令:
确定所述服务请求被所述在线服务拒绝;
将刷新请求提交至所述授权服务,所述刷新请求致使所述授权服务发布新授权令牌;以及
从所述授权服务接收新授权令牌。
16.如条款15所述的非暂时性计算机可读存储介质,其中致使所述客户端资源确定所述服务请求被拒绝的所述指令还包括致使所述客户端资源进行以下操作的指令:
确定所述客户端资源为克隆资源;以及
使用新资源标识符注册所述客户端资源。
17.如条款15或16所述的非暂时性计算机可读存储介质,其中所述刷新请求包括使用所述私有密钥生成的数字签名。
18.如条款13-17中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行的过程中致使所述客户端资源进行以下操作的指令:
从由所述在线服务供应商提供的在线服务接收服务请求;以及
完成所述服务请求。
19.如条款14-18中任一项所述的非暂时性计算机可读存储介质,其中所述服务请求通过计算机网络借由传输层安全(“TLS”)连接提交至所述在线服务。
20.如条款14-19中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行的过程中致使所述客户端资源进行以下操作的指令:
生成与所述服务请求相关联的序号;
与所述服务请求一起将所述序号提交至所述授权服务;以及
从所述授权服务接收所述客户端资源为克隆资源的指示,所述指示至少部分地基于所述序号。
各种实施方案可进一步在各种各样的操作环境中实现,在一些情况下,所述环境可包括可用于操作若干应用中的任一个的一个或多个用户计算机、计算装置或处理装置。用户或客户端装置可包括若干计算机中的任一种,所述若干计算机如运行标准操作系统的台式机、膝上型电脑或平板电脑,以及运行移动软件并且能够支持若干联网协议和消息传送协议的蜂窝装置、无线装置和手持式装置。这种系统还可包括若干工作站,所述工作站运行多种可商购得的操作系统和用于如开发和数据库管理目的的其他已知应用中的任一种。这些装置还可包括其他电子装置,如虚设终端、瘦客户端、游戏系统和能够通过网络通信的其他装置。这些装置还可包括虚拟装置,如虚拟机、管理程序和能够通过网络通信的其他虚拟装置。
本公开的各种实施方案利用本领域技术人员可能熟悉的至少一种网络来支持使用多种可商购得的协议中的任一种进行通信,所述协议如传输控制协议/因特网协议(“TCP/IP”)、用户数据报协议(“UDP”)、在开放系统互连(“OSI”)模型的各个层中操作的协议、文件传送协议(“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、公共因特网文件系统(“CIFS”)以及AppleTalk。网络可以是例如局域网、广域网、虚拟私有网、因特网、内联网、外联网、公共交换电话网、红外网、无线网、卫星网络以及上述网络的任何组合。在一些实施方案中,面向连接的协议可用来在网络端点之间通信。面向连接的协议(有时称为基于连接的协议)能够以有序流传输数据。面向连接的协议可为可靠的或不可靠的。例如,TCP协议为可靠的面向连接的协议。异步传送模式(“ATM”)和帧中继是不可靠的面向连接的协议。面向连接的协议与在没有保证的排序的情况下传输数据包的面向数据包的协议如UDP形成对比。
在利用web服务器的实施方案中,web服务器可以运行多种服务器或中间层级应用中的任一种,所述多种服务器或中间层级应用包括超文本传送协议(“HTTP”)服务器、FTP服务器、通用网关接口(“CGI”)服务器、数据服务器、Java服务器、Apache服务器和业务应用服务器。服务器还可能够响应于来自用户装置的请求而执行程序或脚本,如通过执行可以实现为以任何编程语言(如
Figure BDA0003050166110000211
C、C#或C++)或任何脚本语言(诸如Ruby、PHP、Perl、Python或TCL)以及其组合写成的一个或多个脚本或程序的一个或多个web应用。服务器还可包括数据库服务器,包括但不限于,可从
Figure BDA0003050166110000212
Figure BDA0003050166110000213
商购获得的数据库服务器以及开源服务器(如MySQL、Postgres、SQLite、MongoDB),以及能够存储、检索和访问结构化数据或非结构化数据的任何其他服务器。数据库服务器可包括基于表格的服务器、基于文档的服务器、非结构化服务器、关系式服务器、非关系式服务器或这些和/或其他数据库服务器的组合。
环境可包括如以上讨论的多种数据存储库以及其他存储器和存储介质。这些可驻留在多种位置中,如在一个或多个计算机本地(和/或驻留在一个或多个计算机中)的存储介质上,或远离网络上的计算机中的任何或所有计算机。在特定的一组实施方案中,信息可以驻留在本领域技术人员熟悉的存储区域网(“SAN”)中。类似地,用于执行归于计算机、服务器其他网络装置的功能的任何必要文件可视情况存储在本地和/或远程存储。在系统包括计算机化装置的情况下,每个这种装置可包括可通过总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出装置(例如,显示装置、打印机或扬声器)。这种系统还可包括一个或多个存储装置,如硬盘驱动器、光存储装置和如随机访问存储器(“RAM”)或只读存储器(“ROM”)的固态存储装置、以及可移除介质装置、存储卡、闪存卡等。
这类装置还可包括计算机可读存储介质读取器、通信装置(例如调制解调器、网络卡(无线或有线)、红外线通信装置等)和工作存储器,如以上所论述的。计算机可读存储介质读取器可与计算机可读存储介质连接或被配置来接收计算机可读存储介质,计算机可读存储介质表示远程、本地、固定和/或可移除存储装置以及用于临时和/或更永久地包含、存储、传输和检索计算机可读信息的存储介质。系统和各种装置通常也将包括位于至少一个工作存储器装置内的若干软件应用、模块、服务或其他元件,包括操作系统和应用程序,如客户端应用或web浏览器。另外,也可使用定制硬件,和/或特定元件可以硬件、软件(包括可移植软件,诸如小程序)或者硬件和软件两者来实现。此外,可以采用与其他计算装置如网络输入/输出装置的连接。
用于包含代码或部分代码的存储介质和计算机可读介质可包括本领域中已知或已使用的任何适当介质,包括存储介质和通信介质,如但不限于以用于存储和/或传输信息(如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术所实现的易失性和非易失性、可移除和不可移除介质,包括RAM、ROM、电可擦除可编程只读存储器(“EEPROM”)、闪存或其他存储器技术、光盘只读存储器(“CD-ROM”)、数字通用光盘(DVD)或其他光学存储设备、磁盒、磁带、磁盘存储设备或其他磁性存储装置,或可用于存储所需信息且可由系统装置访问的任何其他介质。基于本文所提供的公开内容和教义,本领域普通技术人员将了解实现各种实施方案的其他方式和/或方法。
请注意,术语“数字签名”包括可用来密码地验证消息的真实性的任何信息,包括使用基于RSA的数字方案(如RSA-PSS)、数字签名算法(DSA)和椭圆曲线数字签名算法、ElGamal签名方案、Schnorr签名方案、Pointcheval-Stern签名算法、Rabin签名算法、基于配对的数字签名方案(如Boneh-Lynn-Schacham签名方案)、不可抵赖数字签名方案等生成的信息。此外,消息认证代码(如基于散列的消息认证代码(HMAC)、带密钥的密码散列函数和其他类型的信息也可以用作数字签名。
在各种实施方案中,数据对象如数字签名可以是可利用密码来验证的。在一个实例中,可利用密码来验证的数据对象被创建为可由数据对象将被提供到的系统或与数据对象将被提供到的系统结合操作的另一个系统来进行密码验证的。例如,数据对象可被加密,以便可由系统解密,所述系统将密码验证数据对象,其中解密数据对象的能力充当对数据对象的密码验证。作为另一实例,数据对象可被数字地签署(借此产生数据对象的数字签名),使得数字签名可由将密码验证数据对象的系统验证。在其他实例中,将加密和数字签名两者用于密码可验证性和/或安全。用来加密和/或数字地签署数据对象的密钥可根据各种实施方案变化,并且在适用的情况下,不一定使用同一密钥进行加密和数字签署两者。在一些实施方案中,用来加密数据对象的密钥为公开/私有密钥对中的公开密钥,其中密钥对中的私有密钥由数据对象将被提供到的系统安全地维持,借此使系统能够使用密钥对中的私有密钥解密数据对象。使用公开密钥来加密数据对象可包括生成对称密钥、使用对称密钥来加密数据对象、以及使用公开密钥加密对称密钥,其中加密的对称密钥与加密的数据对象一起被提供至系统,以使系统能够使用对应私有密钥来解密对称密钥并且使用解密的对称密钥来解密数据对象。此外,在一些实施方案中,数据对象使用公开/私有密钥对中的私有密钥数字地签署,所述公开/私有密钥对对应于加密和/或数字签署数据对象的计算机系统(例如,用户装置)。例如,应用可被预配置有私有密钥,并且数据对象可包括用于由系统使用来验证数据对象的数字签名的私有密钥的证书。其他变化可用来加密和/或数字签署数据对象,所述其他变化包括其中对称密钥在用户计算机与密码验证数据对象的系统之间共享的变化。
请注意,如果系统借以被配置来操作的逻辑依赖于用来以公开密钥验证数字签名的尝试是否成功,则将系统称为被配置成信赖公开密钥。类似地,如果系统借以被配置来操作的逻辑依赖于用来以对称密钥验证数字签名的尝试是否成功,则将系统称为被配置成信赖对称密钥。
一般来说,本公开的实施方案可以使用各种协议来建立加密的通信会话,所述各种协议如SSL或TLS协议和所述协议的扩展,如在以引用方式并入本文的请求注解(RFC)2246、RFC2595、RFC 2712、RFC 2817、RFC 2818、RFC 3207、RFC 3268、RFC 3546、RFC 3749、RFC 3943、RFC 4132、RFC 4162、RFC 4217、RFC 4279、RFC 4347、RFC 4366、RFC 4492、RFC4680、RFC 4681、RFC 4785、RFC 5054、RFC 5077、RFC 5081、RFC 5238、RFC 5246、RFC 5288、RFC 5289、RFC 5746、RFC 5764、RFC 5878、RFC 5932、RFC 6066、RFC 6083、RFC 6091、RFC6176、RFC 6209、RFC 6347、RFC 6367、RFC 6460、RFC 6655、RFC 7027和RFC 7366中所定义。以下实现开放系统互连(OSI)模型的应用层的其他协议也可以使用和/或适于利用本文所描述的技术。应注意,本文所描述的技术可适于其他协议,如实时消息传送协议(RTMP)、点对点隧道协议(PPTP),第2层隧道协议、各种虚拟私有网络(VPN)协议、因特网协议安全(例如,如在RFC 1825至1829、RFC 2401、RFC 2412、RFC 4301、RFC 4303和RFC 4309中所定义),以及其他协议,如用于包括握手的安全通信的协议。
在先前和以下描述中,描述了各种技术。出于解释的目的,将阐述具体的配置和细节,以便提供对实现所述技术的可能方式的透彻理解。然而,也将显而易见,以下所描述的技术可在没有具体细节的情况下实践于不同配置中。此外,可以省略或简化众所周知的特征以避免模糊正描述的技术。
因此,应以说明性意义而不是限制性意义来理解本说明书和附图。然而,将明显的是,在不脱离如权利要求书中阐述的本发明的更宽广精神和范围的情况下,可以对本发明做出各种修改和改变。
其他变化在本公开的精神内。因此,尽管所公开的技术可容许各种修改和替代构造,但在附图中已示出并且在上文中详细描述所示的其特定实施方案。然而,应理解,并不意图将本发明局限于所公开的一种或多种具体形式,而是相反地,意图涵盖落在本发明的精神和范围内的所有修改、替代构造和等效物,如所附权利要求书中所限定。
在描述所公开实施方案的上下文中(尤其是在以下权利要求书的上下文中),术语“一(a/an)”和“所述”以及类似指称对象的使用应解释为涵盖单数和复数两者,除非本文另外指示或以其他方式明显地与上下文矛盾。术语“包括含(comprising)”、“具有(having)”、“包括(including)”和“含有(containing)”意图解释为开放式的术语(即,意味着“包括但不限于”),除非另外地指出。当无修饰并且指代物理连接时,术语“连接的”应解释为部分地或全部地容纳在内、附接到或连结在一起,即使存在介入物。除非本文另外指示,否则本文中对值范围的列举仅仅意图用作单独地表示落入所述范围的各单独值的速记方法,并且犹如本文单独描述地那样将各单独值并入本说明书中。除非本文另外指示或与上下文矛盾,否则术语“集”(例如,“项目集”)或“子集”的使用解释为包括一个或多个成员的非空集。此外,除非本文另外指示或与上下文矛盾,否则术语对应集的“子集”不一定指对应集的真子集,而是子集和对应集可以相等。
连接性语言,如“A、B、和C中的至少一个”或“A、B和C中的至少一个”形式的短语,除非另外特别指示或以其他方式明显地与上下文矛盾,否则如一般情况下所使用,根据上下文理解来表示:项目、项等可以是A或B或C、或A和B和C的集合的任何非空子集。例如,在具有三个成员的集合的说明性实例中,连接性短语“A、B、和C中的至少一个”和“A、B和C中的至少一个”是指以下集合中的任一个:{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}。因此,此类连接性语言一般并非意图暗示某些实施方案需要A中的至少一个、B中的至少一个以及C中的至少一个每个存在。
可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变化和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下实行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。代码可以例如包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读存储介质上。计算机可读存储介质可以是非暂时性的。在一些实施方案中,代码存储在一个或多个非暂时性计算机可读存储介质的集合上,所述非暂时性计算机可读存储介质上存储有可执行指令,所述可执行指令在由计算机系统的一个或多个处理器执行时(即,作为由所述一个或多个处理器执行的结果或在由所述一个或多个处理器执行的过程中),致使计算机系统执行本文所描述的操作。非暂时性计算机可读存储介质的集合可包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的单独非暂时性存储介质中的一个或多个可没有代码的全部,而多个非暂时性计算机可读存储介质共同地存储代码的全部。此外,在一些实例中,可执行指令被执行以使得不同指令由不同处理器执行。作为一个说明性实例,非暂时性计算机可读存储介质可存储指令。主CPU可以执行指令中的一些并且图形处理器单元可以执行指令中的其他指令。一般来说,计算机系统的不同部件可具有单独的处理器,并且不同处理器可以执行指令的不同子集。
因此,在一些实例中,计算机系统被配置来实现一个或多个服务,所述一个或多个服务单独地或共同地执行本文所描述的过程的操作。这类计算机系统可例如配置有实现操作的执行的适用硬件和/或软件。此外,实现本公开的各种实施方案的计算机系统在一些实例中可为单个装置,并且在其他实例中可为包括多个装置的分布式计算机系统,所述多个装置不同地操作,使得分布式计算机系统执行本文所描述的操作并且使得单个装置可不执行全部的操作。
本文所提供的任何以及全部实例或示例性语言(例如,“如”)的使用仅意图更好地说明本发明的实施方案,并且除非另外要求,否则不会对本发明的范围施加限制。本说明书中的语言不应解释为将任何非要求的元素指示为实践本发明所必需。
本文中描述本公开的优选实施方案,包括发明人已知用于执行本发明的最佳模式。在阅读上述描述后,这些实施方案的变化对本领域的技术人员将变得显而易见。发明人希望技术人员视情况采用此类变化,并且发明人意图以不同于如本文具体描述的方式来实践本公开的实施方案。因此,经适用的法律许可,本公开的范围包括在此所附的权利要求书中叙述的主题的所有修改和等效物。此外,本公开的范围涵盖其所有可能变化中的上述元素的任意组合,除非本文另外指示或以其他形式明显地与上下文矛盾。
本文所引用的所有参考文献(包括出版物、专利申请和专利)特此以引用方式并入,其程度与每个参考文献都单独地并具体地被指示为以引用方式并入并且以其全部内容在本文中进行陈述的情况相同。

Claims (15)

1.一种计算机实现的方法,其包括:
从克隆客户端资源获取注册请求,所述注册请求指定将授予克隆客户端资源的安全角色;
至少部分基于确定与所述注册请求一起提交的凭证有效并且至少部分基于请求的授权,为注册请求生成激活代码;
致使将授权代理安装在包括虚拟机的所述克隆客户端资源上;
从所述授权代理获取激活请求,所述激活请求包括伪唯一资源ID和所述激活代码,所述授权代理生成的所述伪唯一资源ID对于所述克隆客户端资源是唯一的;
至少部分基于所述伪唯一资源ID,确定所述克隆客户端资源是克隆资源;
从与在线服务相关联的授权令牌服务获取授权令牌,所述授权令牌允许包括虚拟机的克隆客户端资源根据安全角色使用在线服务;和
将所述授权令牌提供至所述授权代理。
2.如权利要求1所述的计算机实现的方法,其还包括:
生成用于包括虚拟机的所述克隆客户端资源的资源ID;
存储足以识别所述激活代码的信息和足以识别所述资源ID的信息;以及
将所述激活代码返回到所述克隆客户端资源。
3.如权利要求1所述的计算机实现的方法,其还包括:
确定有效期已过去或所述激活代码已与先前激活请求一起提供;以及
至少部分地基于确定所述有效期已过去或所述激活代码已与先前激活请求一起提供来使所述激活代码无效。
4.如权利要求1所述的计算机实现的方法,其中:
所述激活请求包括公开-私有密钥对中的公开密钥;
所述激活请求使用与所述公开-私有密钥对相关联的私有密钥数字地签署;并且
所述公开密钥被保持。
5.一种实现授权服务的系统,其包括至少一个计算装置,其中所述授权服务:
获取注册请求,所述注册请求指定将授予客户端资源的安全角色;
至少部分基于确定与所述注册请求一起提交的凭证有效并且至少部分基于请求的授权,为注册请求生成激活代码;
致使将授权代理安装在包括虚拟机的所述客户端资源上;
从所述授权代理获取激活请求,所述激活请求包括伪唯一资源ID和所述激活代码,所述授权代理生成的所述伪唯一资源ID对于包括虚拟机的所述客户端资源是唯一的;
至少部分基于所述伪唯一资源ID,确定所述客户端资源是克隆资源;
从与在线服务相关联的授权令牌服务获取授权令牌,所述授权令牌允许包括虚拟机的客户端资源根据安全角色使用在线服务;和
将所述授权令牌提供至所述授权代理。
6.如权利要求5所述的系统,其中所述授权服务进一步:
获取注册请求,所述注册请求指定将由在线服务授予客户端资源的安全角色,所述客户端资源包括虚拟机;
确定与所述注册请求一起提交的凭证有效;以及
授权所述注册请求。
7.如权利要求6所述的系统,其中所述授权服务进一步:
生成用于所述注册请求的激活代码;
生成用于包括虚拟机的所述客户端资源的资源ID;
存储足以识别所述激活代码的信息和足以识别所述资源ID的信息;以及
将所述激活代码返回到所述客户端资源。
8.如权利要求6所述的系统,其中所述授权服务进一步:
与所述注册请求一起获取有效期;
存储所述有效期;
通过将所述有效期与当前时间进行比较来确定所述激活代码到期;并且
使所述激活代码无效。
9.如权利要求5所述的系统,其中所述授权服务进一步:
与所述激活请求一起获取伪唯一资源ID,所述伪唯一资源ID至少部分地基于所述客户端资源的处理器ID、所述客户端资源的装置序列号、或与所述客户端资源相关联的网络接口的网络地址;并且
至少部分地基于所述伪唯一资源ID确定所述客户端资源不是从父客户端资源复制的。
10.一种非暂时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令在由授权服务的一个或多个处理器执行的过程中,致使所述授权服务至少进行以下操作:
获取注册请求,所述注册请求指定将授予客户端资源的安全角色;
至少部分基于确定与所述注册请求一起提交的凭证有效并且至少部分基于请求的授权,为注册请求生成激活代码;
致使将授权代理安装在包括虚拟机的所述客户端资源上,所述激活请求包括伪唯一资源ID和所述激活代码,所述授权代理生成的所述伪唯一资源ID对于所述客户端资源是唯一的;
从所述授权代理获取激活请求;
至少部分基于所述激活请求的伪唯一资源ID,确定所述客户端资源是克隆资源;
从与在线服务相关联的授权令牌服务获取授权令牌,所述授权令牌允许包括虚拟机的客户端资源根据安全角色使用在线服务;和
将所述授权令牌提供至所述授权代理。
11.如权利要求10所述的非暂时性计算机可读存储介质,其中所述授权令牌是从与在线服务相关联的授权令牌服务获取的。
12.如权利要求10所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行的过程中致使所述授权服务进行以下操作的指令:
获取注册请求,所述注册请求指定将由在线服务授予客户端资源的安全角色,所述客户端资源包括虚拟机;
确定与所述注册请求一起提交的凭证有效;
授权所述注册请求;
生成用于所述注册请求的激活代码;
生成用于包括虚拟机的所述客户端资源的资源ID;
存储足以识别所述激活代码的信息和足以识别所述资源ID的信息;以及
将所述激活代码返回到所述客户端资源。
13.如权利要求10所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行的过程中致使所述授权服务进行以下操作的指令:
确定所述激活请求上的时间戳与当前时间之间的差异超过超时值;
确定所述激活请求已到期;以及
拒绝所述激活请求。
14.如权利要求10所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行的过程中致使所述授权服务进行以下操作的指令:
获取包括时间戳的服务请求;以及
至少部分基于确定所述时间戳和所述服务请求的获取时间之间的差异大于阈值时间量,拒绝所述服务请求。
15.如权利要求10所述的非暂时性计算机可读存储介质,其中:
所述激活请求包括公开-私有密钥对中的公开密钥;并且
所述激活请求使用与所述公开-私有密钥对相关联的私有密钥数字地签署。
CN202110485749.XA 2015-12-30 2016-12-21 服务授权握手的方法、系统和存储介质 Active CN113141374B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14/984,957 US10075557B2 (en) 2015-12-30 2015-12-30 Service authorization handshake
US14/984,957 2015-12-30
CN201680076821.0A CN108702393B (zh) 2015-12-30 2016-12-21 用于服务授权握手的方法和系统
PCT/US2016/068073 WO2017116912A1 (en) 2015-12-30 2016-12-21 Service authorization handshake

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201680076821.0A Division CN108702393B (zh) 2015-12-30 2016-12-21 用于服务授权握手的方法和系统

Publications (2)

Publication Number Publication Date
CN113141374A true CN113141374A (zh) 2021-07-20
CN113141374B CN113141374B (zh) 2023-01-24

Family

ID=57777744

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201680076821.0A Active CN108702393B (zh) 2015-12-30 2016-12-21 用于服务授权握手的方法和系统
CN202110485749.XA Active CN113141374B (zh) 2015-12-30 2016-12-21 服务授权握手的方法、系统和存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201680076821.0A Active CN108702393B (zh) 2015-12-30 2016-12-21 用于服务授权握手的方法和系统

Country Status (4)

Country Link
US (2) US10075557B2 (zh)
CN (2) CN108702393B (zh)
DE (1) DE112016006123T5 (zh)
WO (1) WO2017116912A1 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9794292B2 (en) * 2015-10-26 2017-10-17 Amazon Technologies, Inc. Providing fine-grained access remote command execution for virtual machine instances in a distributed computing environment
US10305901B2 (en) * 2016-05-06 2019-05-28 Blackberry Limited System and method for multi-factor authentication
US11157641B2 (en) * 2016-07-01 2021-10-26 Microsoft Technology Licensing, Llc Short-circuit data access
US10728236B1 (en) * 2016-09-07 2020-07-28 Amazon Technologies, Inc. Augmented reality data exchange
US10637868B2 (en) 2016-11-16 2020-04-28 The Boeing Company Common authorization management service
US10657225B2 (en) * 2016-12-29 2020-05-19 Red Hat, Inc. Providing blockchain-based subscription-as-a-service management
US10462124B2 (en) 2016-12-30 2019-10-29 Google Llc Authenticated session management across multiple electronic devices using a virtual session manager
US10541992B2 (en) * 2016-12-30 2020-01-21 Google Llc Two-token based authenticated session management
US10866963B2 (en) 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
US10999272B2 (en) * 2018-03-30 2021-05-04 Lendingclub Corporation Authenticating and authorizing users with JWT and tokenization
US11108762B2 (en) * 2018-06-05 2021-08-31 The Toronto-Dominion Bank Methods and systems for controlling access to a protected resource
EP3594843A1 (en) * 2018-07-10 2020-01-15 Klaxoon Improved scalable architecture of servers providing access to data content
US10848301B1 (en) * 2018-07-20 2020-11-24 Verisign, Inc. DNS-based public key infrastructure for digital object architectures
US11516211B2 (en) * 2018-09-11 2022-11-29 Citrix Systems, Inc. System for providing a service based upon authorization token and virtual assistant and related methods
US11477197B2 (en) 2018-09-18 2022-10-18 Cyral Inc. Sidecar architecture for stateless proxying to databases
US11477196B2 (en) 2018-09-18 2022-10-18 Cyral Inc. Architecture having a protective layer at the data source
US11212101B2 (en) * 2018-10-09 2021-12-28 Ca, Inc. Token exchange with client generated token
US11050566B2 (en) * 2018-12-18 2021-06-29 Citrix Systems, Inc. Method for securing the rendezvous connection in a cloud service using routing tokens
CN109726528B (zh) * 2019-03-18 2021-05-04 百度在线网络技术(北京)有限公司 车机服务激活、车机服务请求方法、装置、设备和介质
US11146398B2 (en) * 2019-08-30 2021-10-12 Comcast Cable Communications, Llc Method and apparatus for secure token generation
CN110569667B (zh) * 2019-09-10 2022-03-15 北京字节跳动网络技术有限公司 一种访问控制方法、装置、计算机设备及存储介质
CN113647075B (zh) * 2019-09-12 2023-04-04 Oppo广东移动通信有限公司 设备激活方法、终端设备及计算机存储介质
US11463258B2 (en) * 2020-03-13 2022-10-04 Ebay Inc. Secure token refresh
US11947659B2 (en) 2020-05-28 2024-04-02 Red Hat, Inc. Data distribution across multiple devices using a trusted execution environment in a mobile device
US11971980B2 (en) * 2020-05-28 2024-04-30 Red Hat, Inc. Using trusted execution environments to perform a communal operation for mutually-untrusted devices
US11636221B2 (en) * 2020-08-04 2023-04-25 EMC IP Holding Company LLC Mechanism for multi-factor authentication based on data
CN112153037B (zh) * 2020-09-18 2023-07-14 北京浪潮数据技术有限公司 一种rest请求响应方法、装置、设备及介质
CN112165475B (zh) * 2020-09-22 2023-05-02 成都知道创宇信息技术有限公司 反爬虫方法、装置、网站服务器和可读存储介质
US11848924B2 (en) * 2020-10-12 2023-12-19 Red Hat, Inc. Multi-factor system-to-system authentication using secure execution environments
CN112734230A (zh) * 2021-01-08 2021-04-30 深圳市帧彩影视科技有限公司 基于云平台的视频后期制作的控制方法、装置、云平台
CN116185810A (zh) * 2021-11-29 2023-05-30 微软技术许可有限责任公司 具有改进的扩展性和兼容性的自动化测试
US11411954B1 (en) 2021-12-27 2022-08-09 Coretech LT, UAB Access control policy for proxy services
US20230232224A1 (en) * 2022-01-18 2023-07-20 Teal Communications, Inc. Methods and systems for pushing data to client devices over a telecommunications data network

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090089866A1 (en) * 2007-09-27 2009-04-02 Akifumi Yato Access authorization system, access control server, and business process execution system
CN101841558A (zh) * 2010-03-23 2010-09-22 中国科学院计算技术研究所 P2sp网络中资源的下载方法及系统
US8577334B1 (en) * 2011-06-16 2013-11-05 Sprint Communications Company L.P. Restricted testing access for electronic device
CN104702580A (zh) * 2013-12-10 2015-06-10 北京安讯奔科技有限责任公司 多通讯渠道认证授权平台系统和方法
CN104869102A (zh) * 2014-02-24 2015-08-26 腾讯科技(北京)有限公司 基于xAuth协议的授权方法、装置和系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101699505B (zh) * 2003-04-25 2016-02-17 苹果公司 一种基于网络的媒体系统
US7239877B2 (en) * 2003-10-07 2007-07-03 Accenture Global Services Gmbh Mobile provisioning tool system
US7224963B2 (en) * 2003-10-17 2007-05-29 Sony Ericsson Mobile Communications Ab System method and computer program product for managing themes in a mobile phone
EP1687931B1 (en) * 2003-10-28 2021-12-29 BlackBerry Limited Method and apparatus for verifiable generation of public keys
US20060184935A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method using virtual machines for decoupling software from users and services
US20060184937A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US20060184936A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method using virtual machines for decoupling software from management and control systems
US7761573B2 (en) * 2005-12-07 2010-07-20 Avaya Inc. Seamless live migration of virtual machines across optical networks
US20070288247A1 (en) * 2006-06-11 2007-12-13 Michael Mackay Digital life server
GB0710417D0 (en) * 2007-06-01 2007-07-11 Imec Inter Uni Micro Electr A Method for generating a run-time manager based on application meta data
US8464312B1 (en) * 2007-06-29 2013-06-11 Extreme Networks, Inc. Integrated network policy enforcement
US8521207B2 (en) * 2009-02-09 2013-08-27 Qualcomm Incorporated Closed-loop power control in multi-carrier high-speed uplink packet access
US8789041B2 (en) * 2009-12-18 2014-07-22 Verizon Patent And Licensing Inc. Method and system for bulk automated virtual machine deployment
US8463882B2 (en) * 2010-10-25 2013-06-11 Verizon Patent And Licensing Inc. Server cloning in a computing-on-demand system
US8244277B1 (en) * 2011-02-16 2012-08-14 Sprint Communications Company L.P. Device experience adaptation based on schedules and events
US9170798B2 (en) * 2012-03-02 2015-10-27 Vmware, Inc. System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
US9047133B2 (en) * 2012-03-02 2015-06-02 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment
US8700898B1 (en) * 2012-10-02 2014-04-15 Ca, Inc. System and method for multi-layered sensitive data protection in a virtual computing environment
US9128745B2 (en) * 2012-12-27 2015-09-08 International Business Machines Corporation Automatically managing the storage of a virtual machine
US20150341445A1 (en) * 2014-05-23 2015-11-26 Radoslav Nikolov Hybrid applications operating between on-premise and cloud platforms

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090089866A1 (en) * 2007-09-27 2009-04-02 Akifumi Yato Access authorization system, access control server, and business process execution system
CN101841558A (zh) * 2010-03-23 2010-09-22 中国科学院计算技术研究所 P2sp网络中资源的下载方法及系统
US8577334B1 (en) * 2011-06-16 2013-11-05 Sprint Communications Company L.P. Restricted testing access for electronic device
CN104702580A (zh) * 2013-12-10 2015-06-10 北京安讯奔科技有限责任公司 多通讯渠道认证授权平台系统和方法
CN104869102A (zh) * 2014-02-24 2015-08-26 腾讯科技(北京)有限公司 基于xAuth协议的授权方法、装置和系统

Also Published As

Publication number Publication date
CN108702393B (zh) 2022-11-01
WO2017116912A1 (en) 2017-07-06
US20170195457A1 (en) 2017-07-06
DE112016006123T5 (de) 2018-10-31
CN113141374B (zh) 2023-01-24
US10075557B2 (en) 2018-09-11
CN108702393A (zh) 2018-10-23
US20190007525A1 (en) 2019-01-03
US10440151B2 (en) 2019-10-08

Similar Documents

Publication Publication Date Title
CN113141374B (zh) 服务授权握手的方法、系统和存储介质
US10637855B2 (en) Enhanced authentication for secure communications
US11018874B2 (en) Digital signature verification for asynchronous responses
US9894067B1 (en) Cross-region roles
US9819491B2 (en) System and method for secure release of secret information over a network
US9686080B2 (en) System and method to provide secure credential
US11184155B2 (en) Cryptographic key management for imported cryptographic keys
US9900160B1 (en) Asymmetric session credentials
US10182044B1 (en) Personalizing global session identifiers
US9973481B1 (en) Envelope-based encryption method
US10298577B1 (en) Credential vending to processes
US11902436B1 (en) Cryptographic key management to prevent data exfiltration
US10484372B1 (en) Automatic replacement of passwords with secure claims
US10693638B1 (en) Protected cryptographic environment
US10033703B1 (en) Pluggable cipher suite negotiation
US10536436B1 (en) Client authentication utilizing shared secrets to encrypt one-time passwords
US20120295587A1 (en) Trusted mobile device based security
US10277569B1 (en) Cross-region cache of regional sessions
US10404477B1 (en) Synchronization of personal digital certificates
US10764294B1 (en) Data exfiltration control
US11190504B1 (en) Certificate-based service authorization
US10938796B2 (en) Access key retrieval service for clients
US11700121B2 (en) Secure authorization for sensitive information
US11924211B2 (en) Computerized device and method for authenticating a user
US11115224B1 (en) Access control system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant