CN109906453B - 建立用于有状态云服务的安全会话的方法、系统 - Google Patents

建立用于有状态云服务的安全会话的方法、系统 Download PDF

Info

Publication number
CN109906453B
CN109906453B CN201780064542.7A CN201780064542A CN109906453B CN 109906453 B CN109906453 B CN 109906453B CN 201780064542 A CN201780064542 A CN 201780064542A CN 109906453 B CN109906453 B CN 109906453B
Authority
CN
China
Prior art keywords
host
stateful
client device
unique identifier
client
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.)
Active
Application number
CN201780064542.7A
Other languages
English (en)
Other versions
CN109906453A (zh
Inventor
M·D·弗兰萨佐弗
A·C·弗吕特
M·D·欧沃霍特
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN109906453A publication Critical patent/CN109906453A/zh
Application granted granted Critical
Publication of CN109906453B publication Critical patent/CN109906453B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/068Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication

Abstract

本公开的各方面涉及在客户端设备与有状态后端服务器或主机之间建立安全会话。本文中所描述的系统使用身份令牌和授权令牌来生成与客户端设备相关联的全局唯一标识符。然后,使用全局唯一标识符在客户端设备与后端服务器之间创建一对一映射。

Description

建立用于有状态云服务的安全会话的方法、系统
背景技术
当创建、编辑或以其他方式访问被存储在云上的内容时,可能期望使后端服务保持关于该内容的所有信息。这通常被称为有状态服务。由于后端服务保持关于内容的信息,因此可能期望用户能够以安全的方式访问内容而不管他们正在使用什么设备。
实施例已经关于这些和其他一般考虑而被描述。而且,虽然已经讨论了相对具体的问题,但是应当理解,实施例不应当限于解决背景技术中所标识的具体问题。
发明内容
本公开的各方面涉及在客户端设备与有状态后端服务器或主机之间建立安全会话。一旦建立了安全会话,客户端设备就可以创建、编辑或以其他方式访问内容,诸如例如被存储在云、云服务上或由后端服务器托管的文档、应用和其他内容。在一些实例中,可能期望在客户端设备与有状态主机之间创建一对一映射,使得每次客户端设备想要访问内容时,客户端设备被路由发送到相同的有状态主机或有状态主机的新实例化。还可能期望在特定用户与有状态主机之间创建一对一映射,使得用户可以访问被存储在云上的内容,而不管被用来访问内容的客户端设备如何。
相应地,描述了一种用于在客户端设备与由云服务托管的有状态主机之间建立通信会话的方法。根据该方法,向授权服务提供与客户端设备或客户端设备的用户相关联的身份令牌。使用身份令牌,确定关于客户端设备是否被授权访问有状态主机。当确定客户端设备被授权访问有状态主机时,生成授权令牌。授权令牌包括与客户端设备相关联的唯一标识符。唯一标识符被用来在虚拟机上生成有状态主机。然后确定与有状态主机相关联的互联网协议地址。互联网协议地址与唯一标识符相关联以创建名称-值对。然后,可以使用名称-值对来在客户端设备与有状态主机之间建立通信会话。
还描述了一种系统,其包括处理器和用于存储指令的存储器,这些指令在由处理器执行时执行用于在客户端设备与有状态主机之间建立通信会话的方法。该方法包括从客户端设备接收唯一标识符,该唯一标识符与客户端标识令牌和客户端授权令牌相关联。然后,使用唯一标识符来确定针对与客户端设备相关联的有状态主机的互联网协议地址。一旦针对有状态主机的互联网协议地址已知,就使用唯一标识符、客户端标识令牌和客户端授权令牌在客户端与有状态主机之间建立通信会话。
本公开的实施例还描述了一种包括计算机可执行指令的计算机可读存储介质,这些计算机可执行指令在由处理器执行时执行用于在客户端与有状态主机之间建立通信会话的方法。该方法包括生成包括与客户端相关联的唯一标识符的授权令牌。使用唯一标识符在虚拟机上实例化有状态主机。确定与有状态主机相关联的互联网协议地址并且将其与唯一标识符相关联以创建名称-值对。然后,可以使用名称-值对来在客户端与有状态主机之间建立通信会话。
提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下面的“具体实施方式”中进一步被描述。本发明内容不旨在标识所要求保护的主题内容的关键特征或必要特征,也不旨在被用来限制所要求保护的主题内容的范围。
附图说明
参考以下附图描述非限制性和非穷举性示例。
图1图示了用于在客户端设备与有状态后端服务器之间建立安全通信会话的示例系统的各种组件。
图2图示了用于在客户端设备与有状态后端服务器之间建立安全通信会话的图1所示的示例系统的附加组件。
图3图示了用于在客户端设备与有状态后端服务器之间建立安全通信会话的图2所示的示例系统的附加组件。
图4图示了客户端设备与有状态后端服务器之间的路由发送路径。
图5图示了用于在客户端设备与有状态主机之间建立通信会话的一种方法。
图6图示了用于在客户端设备与有状态主机之间建立通信会话的另一种方法。
图7图示了可以利用其实践本公开的各方面的电子设备的示例物理组件。
图8A图示了可以利用其实践本公开的各方面的示例电子设备。
图8B是图示图8A的电子设备的示例组件的框图。
图9是可以利用其实践本公开的各方面的分布式计算系统的框图。
图10图示了用于执行本公开的一个或多个方面的另一示例电子设备。
具体实施方式
在以下详细描述中,参考附图,附图形成以下详细描述的一部分并且在附图中通过图示而示出了具体实施例或示例。可以组合这些方面,可以利用其他方面,并且可以在不脱离本公开的情况下做出结构改变。实施例可以被实践为方法、系统或设备。相应地,实施例可以采用硬件实现、完全软件实现或组合软件和硬件方面的实现的形式。因此,以下详细描述不应当被视为具有限制意义,并且本公开的范围由所附权利要求及其等同物限定。
本公开的实施例涉及在客户端设备与有状态后端服务器或主机之间建立安全通信会话。在一些实施例中,有状态主机与云服务相关联,该云服务使得客户端设备能够经由在客户端设备上执行的网页或应用来访问服务。例如,客户端设备可以向用户提供网页,该网页使得用户能够访问云并且生成内容。该内容可以包括但不限于文档、应用、视频内容、图片内容等。在一个特定但非限制性的示例中,有状态主机是使得客户端设备能够创建诸如例如华盛顿州雷德蒙德市的MICROSOFT公司的POWERAPPS应用等应用的虚拟服务器。
在某些实施例中,后端服务器或主机是有状态的。这样,它保持其自己的状态,并且还保持它所托管的任何内容(例如,应用、文档等)的当前状态(或最后已知状态)。这有助于确保每次客户端设备或与用户相关联的创建、编辑或以其他方式访问内容的任何其他客户端设备访问内容时,内容以统一的方式表现。
相应地,本公开的实施例描述了被用来在客户端设备与有状态主机之间创建一对一关系的唯一标识符的创建。如下面将更详细描述的,唯一标识符至少部分基于与客户端设备的用户相关联的标识凭证和授权凭证来生成。一旦被创建,唯一标识符可以被发送到客户端设备并且由客户端设备存储。系统的其他组件还可以使用唯一标识符来在虚拟机上产生或以其他方式创建有状态主机的实例。
一旦创建了有状态主机,就确定互联网协议地址以及与有状态主机相关联的端口。互联网协议地址和端口与唯一标识符相关联以创建名称-值对。在一些实例中,名称-值对被存储在由系统的各种组件可访问的系统存储装置中。
当客户端设备寻求建立或重新建立与有状态主机的连接时,客户端设备向网关服务器提供唯一标识符。网关服务器使用唯一标识符来查找被存储在系统存储装置中的名称-值对。使用唯一标识符,网关服务器确定客户端设备应当被路由发送到以便访问有状态主机的互联网协议地址和端口。如果有状态主机当前不活动,则网关服务器还可以指导后端服务实例化有状态主机。网关服务器还可以根据客户端的请求来指导后端服务加载内容的最后已知或最近状态。
下面将参考图1-10更详细地描述这些和其他实施例。
图1-4图示了使得客户端设备105能够与有状态主机建立安全通信会话的示例系统100。出于清楚的目的,图1-4中的每个图图示了系统100的附加组件,因为它们是在客户端与有状态主机之间建立安全通信会话所需要的。
如图1所示,系统100可以由客户端设备105访问。客户端设备105可以使得用户能够创建、编辑、存储或以其他方式访问被存储在云上或以其他方式由云服务托管的内容。这在本文中称为创作会话。相应地,客户端设备105可以通过网络或互联网连接向网关115发送访问请求110。例如,客户端设备105的用户可以访问被显示在客户端设备105上的网页并且请求网关115创建创作会话。网关115可以是公开可见的服务器设备,其被用以将来自客户端设备105的请求路由发送到合适的有状态主机或其他后端服务,诸如下面将描述的。
在一些实施例中,客户端设备105可以是能够创建、访问、编辑或以其他方式生成内容的任何计算设备。例如,客户端设备105可以是台式计算机、膝上型计算机、平板计算设备、移动电话、个人数字助理或其他这样的便携式计算设备。尽管示出了单个客户端设备105,但是多个客户端设备可以访问系统100。
另外,预期单个用户可以访问多个客户端设备105。然而,即使用户可以访问多个不同的客户端设备105,本文中所描述的实施例使得用户能够访问相同的有状态主机或后端服务器并且因此能够访问由有状态主机托管的内容的最新状态,而不管哪个客户端设备105被用以请求创作会话。
当请求创作会话时,客户端设备105向网关115发送访问请求110。一旦处理了访问请求110,网关115就向客户端设备105返回响应112。在该特定非限制性示例中,响应112可以包括对客户端设备105和/或客户端设备105的用户进行认证的请求。
作为响应,客户端设备105向认证服务125提交凭证120,诸如例如与客户端设备105的用户相关联的用户名和密码。认证服务125使用凭证120来生成身份令牌130。然后,身份令牌130被传送到客户端设备105。
在一些实施例中,认证服务125是被用以认证各种不同的客户端设备105的基于多租户云的目录和身份管理服务。虽然在系统100中被示出为分离的组件,但是认证服务125可以是网关115的一部分或以其他方式与网关115相关联。在其他实现中,认证服务125可以是独立服务。
一旦客户端设备105已经接收到身份令牌130,客户端设备105就向网关115发送包括身份令牌130的另一访问请求110,并且请求创建创作会话或以其他方式请求对云的访问。响应于该第二请求,网关115发送另一响应112,另一响应112要求客户端设备105核实其授权或以其他方式获取对访问云的授权。
为了遵守第二响应112,客户端设备105向授权服务135提供身份令牌130(也称为认证令牌)。除了向授权服务提供身份令牌130之外,客户端设备105还可以包括针对特定资源的请求和对那些资源的特定访问的请求。例如,该请求可以包括用于针对被存储在云中的内容的编辑和/或特权创建的请求。
授权服务135可以使用身份令牌130确定客户端设备105是否被授权访问云中的内容。在一些实施例中,与授权服务135相关联的授权服务器可以被用来核实客户端设备105是否被授权访问云以及客户端设备105具有什么编辑特权(如果有的话)。如果客户端设备105被授权,则授权服务135可以为客户端设备105生成授权令牌140。在一些实施例中,授权令牌140包括随后将被用来在客户端设备105与被托管在云上或以其他方式由云服务提供的有状态主机之间创建一对一映射的唯一标识符142(如图2所示)。因此,每次客户端设备访问云中的内容时,客户端设备被路由发送到相同的有状态主机或有状态主机的实例化。因为客户端设备105基本上在每次内容被访问时访问相同的有状态主机,所以内容以统一的方式表现。
除了与授权令牌140相关联之外,唯一标识符142还可以与身份令牌130相关联。这样,可以访问许多不同客户端设备105的单个用户可以使用身份令牌130生成类似的授权令牌140和唯一标识符142。这使得用户能够访问由有状态主机托管的内容,并且还使得能够在需要时创建有状态主机的新实例,而不管正由用户使用的客户端设备105如何。
在一些实现中,一旦生成了授权令牌140,就由安全凭证对其进行加密或以其他方式签名。加密有助于确保授权令牌140及其相关联的唯一标识符142由系统100中的其他组件可读取,但不会被篡改或以其他方式改变。然后,加密的授权令牌140被提供给客户端设备105。在一些实例中,客户端设备105可以将授权令牌140、身份令牌130和/或唯一标识符142存储在永久存储设备中。如下面将更详细解释的,如果与有状态主机的连接丢失,则可以使用唯一标识符142来在客户端设备105与有状态主机之间重新建立安全通信会话。
现在客户端设备105已经被认证和授权,客户端设备105可以使用授权令牌140、唯一标识符和身份令牌130来访问云。例如,客户端设备105可以向网关115提交第三访问请求110及其令牌。第三访问请求110可以包括在云上开始创作会话的请求。例如,请求110可以请求虚拟机生成有状态主机,该虚拟机可以使得客户端设备105能够生成或以其他方式访问被存储在云上的内容。尽管附图示出了单个访问请求110和单个响应112,但是应当理解,访问请求110和响应112可以包括本文中所描述的各种请求和响应。
现在参考图2,一旦客户端设备105向网关115发送创建创作会话的请求连同授权令牌140、唯一标识符142和身份令牌130,网关115就向指令队列145提供唯一标识符142。指令队列145可以是存储各种唯一标识符142以及针对系统100的各种组件的其他指令的全局可读存储设备。
如图2所示,系统100还包括主机创建组件150。主机创建组件150被配置为周期性地检查指令队列145以确定是否已经添加了新指令和/或唯一标识符142。在该示例中,当主机创建组件150发现新添加的唯一标识符142被存储在指令队列145中时,主机创建组件150确定应当为客户端设备105实例化新的有状态主机。
作为唯一标识符被存储在指令队列145中的结果,主机创建组件150产生或以其他方式实例化有状态主机155。这在图3中示出。
在一些实现中,在虚拟机上创建有状态主机155。如名称所示,有状态主机155是有状态设备,其跟踪或以其他方式保存客户端设备105与有状态主机155之间的创作会话的状态。有状态主机155还可以存储或以其他方式跟踪在有状态主机155上被创建的、由有状态主机155存储的或以其他方式由有状态主机155托管的任何和所有内容的当前状态。
一旦创建了有状态主机155,主机创建组件150就确定互联网协议地址160和有状态主机155的端口。主机创建组件150还可以核实有状态主机155是否正常运行(例如,广播其互联网协议地址160和端口)。主机创建组件150生成被用来标识有状态主机155或以其他方式与有状态主机155相关联的名称-值对165。在一些实施例中,名称-值对165包括有状态主机155的互联网协议地址160(和可选的端口)和唯一标识符142。然后,名称-值对165被提供给系统存储装置170并且由其存储。如下所述,名称-值对165被用来在客户端设备105与有状态主机155之间创建一对一映射。因此,每次客户端设备105访问云时,客户端设备105被路由发送到相同的有状态主机155或有状态主机155的实例。
在一些实施例中,系统存储装置170是高速缓存,诸如例如华盛顿州雷德蒙德市的MICROSOFT公司的Azure Redis高速缓存,但是可以使用其他存储设备和高速缓存。在一些实现中,系统存储装置170仅对系统100的各种组件可见。例如并且如图3所示,系统存储装置170可以由主机创建组件150和网关115访问。
一旦创建了有状态主机155,客户端设备105就可以访问它。例如,客户端设备105可以向网关115发送访问请求110,包括例如唯一标识符142(以及在一些实现中,授权令牌140和身份令牌130)。网关115核实客户端设备105仍然被授权和认证,并且将唯一标识符142中继到系统存储装置170。
系统存储装置170使用唯一标识符142来确定与其相关联的名称-值对165。一旦找到,名称-值对165就被发送回网关115。如上所述,名称-值对165包括为由客户端设备105请求的创作会话而被创建的有状态主机155的互联网协议地址160(和可选的端口)。网关115使用与唯一标识符142相关联的互联网协议地址160以使用或以其他方式广播互联网协议地址160和端口来将客户端设备105路由发送到有状态主机155。一旦被连接,客户端设备105就可以编辑由有状态主机155托管的内容。
系统100还可以被配置为从各种意外事件中恢复。这些事件包括但不限于:如果客户端设备105崩溃或以其他方式停止运行,则从中恢复并且在客户端设备105与有状态主机155之间重新建立安全通信会话,如果有状态主机155崩溃或以其他方式停止运行,则从中恢复并且在客户端设备105与有状态主机155之间重新建立安全通信会话,并且如果网关115崩溃或者如果客户端设备105与有状态主机155之间的网络连接被切断,则从中恢复并且在客户端设备105与有状态主机155之间重新建立安全通信会话。
在客户端设备105崩溃的实例中,有状态主机155可以保持活动预定的一段时间(例如,2小时,但是可以考虑其他时间段)。在此时间期间,有状态主机155可以广播其端口和/或互联网协议地址160并且等待客户端设备105重新连接。
为了重新连接到有状态主机155,客户端设备105访问授权令牌140,并且更具体地,访问被存储在其永久存储器(诸如上面描述的)中的唯一标识符142。唯一标识符142被发送到网关115。网关115访问系统存储装置170并且使用唯一标识符142来确定与唯一标识符142相关联的互联网协议地址160。网关115然后将客户端设备105路由发送到该特定互联网协议地址160并且与有状态主机155重新建立通信会话。
在一些实施例中,有状态主机155被配置为在预定时间量之后自动保存其所托管的内容。例如,有状态主机155可以每30秒自动保存内容,但是可以使用其他时间段。该自动保存特征可以被用来帮助有状态主机155在其崩溃时恢复。
在有状态主机155崩溃的场景中,即使客户端设备105不知道该崩溃,网关115也可以知道该崩溃。响应于确定有状态主机155已经崩溃,网关115使用唯一标识符142自动启动序列以创建有状态主机155的新实例。该序列类似于上面所描述的序列。
例如,一旦网关115确定有状态主机155已经崩溃,网关115就向指令队列145发送唯一标识符142。一旦主机创建组件150在指令队列中发现唯一标识符142,它就生成有状态主机155的新实例。有状态主机155的这个新实例具有与先前有状态主机155相同的属性、端口和互联网协议地址160。
主机创建组件150还可以使有状态主机155的新实例加载先前有状态主机(例如,崩溃的有状态主机)托管的内容的最后已知状态。在一些实施例中,加载内容的最后已知状态的指令可以由主机创建组件150提供给有状态主机155的新实例化,或者可以由网关115直接提供给有状态主机155的新实例化。
一旦有状态主机155的新实例化正在运行,网关115就可以使用互联网协议地址160和相关联的端口将客户端设备105路由发送到有状态主机155的新实例化。
在网关115崩溃或网络连接被切断的情况下,只要新服务器可以访问系统存储装置170,客户端设备105就可以使用另一服务器来访问有状态主机155。如果是,则客户端设备105向新服务器提供唯一标识符142,该新服务器访问系统存储装置170以找到如上所述的有状态主机155的合适的互联网协议地址。然后,新服务器将客户端设备105路由发送到有状态主机155。
图5图示了用于在客户端设备与有状态主机之间建立安全通信会话的方法500。在一些实施例中,方法500可以由图1-4所示的系统100使用以使得客户端设备105能够与有状态主机155建立创作会话。这样,可以参考上述系统100的类似组件。
方法500开始于操作510,在操作510中,向授权服务提供与客户端设备(例如,客户端设备105(图1))相关联的身份令牌。例如,当客户端设备寻求在云上启动创作会话时,客户端设备向服务器(例如,网关115(图1))发送云访问请求。响应于该请求,服务器可以要求客户端设备核实其访问云和/或编辑所托管的内容的授权。
响应于授权请求,客户端设备将其标识令牌提交给授权服务。授权服务可以使用标识令牌来确保客户端设备确实被授权访问和编辑云上的内容。
然后,流程进行到操作520,并且授权服务为客户端设备生成授权令牌。在一些实施例中,授权令牌包括随后可以被用来在客户端设备与被实例化的有状态主机之间创建一对一映射的全局唯一标识符。授权服务还可以被配置为利用安全凭证对授权令牌进行签名以加密授权令牌。
一旦生成了授权令牌和全局唯一标识符,流程就前进到操作530,并且授权令牌被提供给客户端设备。
现在已经标识和授权了客户端设备(例如,使用身份令牌),客户端设备可以向服务器提交授权令牌,包括全局唯一标识符(和可选的标识令牌)。然后,服务器向指令队列发送540与授权令牌相关联的全局唯一标识符。
如上所述,指令队列可以是由系统的其他组件可读取的存储设备。一旦指令队列接收到全局唯一标识符,主机创建组件就使用全局唯一标识符来实例化550有状态主机。例如,主机创建组件可以监测指令队列以寻找新添加的全局唯一标识符和/或相关联的指令以实例化新的有状态主机。在接收到该数据之后,主机创建组件产生有状态主机。在一些实例中,在虚拟机或服务器上产生或以其他方式生成有状态主机。
主机创建组件还可以被配置为确定有状态主机的互联网协议地址和端口。然后,主机创建组件将全局唯一标识符与互联网协议地址相关联以生成560名称-值对。
然后,流程进行到操作570,并且将名称-值对安全地存储在系统存储装置中。在一些实施例中,安全系统存储装置是高速缓存,诸如例如Redis高速缓存或由云服务器托管或者以其他方式在云中可访问的其他类型的高速缓存或存储设备。一旦将名称-值对存储在系统存储装置中,就可以使用全局唯一标识符来确定有状态主机的互联网协议地址,使得在客户端设备与有状态主机之间存在一对一映射。
图6图示了用于在客户端设备与有状态主机之间建立通信会话的另一方法600。在一些实现中,方法600可以是图5的方法500的继续。在其他实例中,方法600可以由客户端设备用来重新建立与有状态主机的连接或者引起有状态主机的新实例化。
方法600开始于操作610,在操作610中,向服务器提供授权令牌,包括全局唯一标识符(和可选的标识令牌)。在一些实例中,客户端设备将授权令牌和相关联的全局唯一标识符存储在永久存储装置中。这样,客户端设备可以将该信息发送到服务器以便在有状态主机上启动或重新建立创作会话。
一旦服务器接收到授权令牌和全局唯一标识符,流程就前进到操作620,并且服务器从系统存储装置中检索与全局唯一标识符相关联的名称-值对。如上所述,名称-值对包括与为服务该特定客户端设备而生成的有状态主机相关联的互联网协议地址和端口信息。在一些实现中,系统存储装置还可以包括关于客户端设备与有状态主机之间先前建立的创作会话的其他信息。
一旦服务器检索到名称-值对,流程就前进到操作630,并且服务器在客户端设备与有状态主机之间建立通信会话。相应地,客户端设备可以访问、生成或以其他方式编辑被存储在云上的内容。
在一些实例中,当客户端设备寻求重新建立通信会话时,有状态主机155可能不再是活动的。在这种情况下,服务器可以向指令队列传送全局唯一标识符。当主机创建组件发现全局唯一标识符已经被添加到指令队列时,主机创建组件生成有状态主机的新实例。在一些实施例中,主机创建组件150可以访问系统存储装置以确定有状态主机的先前实例化的互联网协议地址并且重用互联网协议地址。然后,服务器可以将客户端设备路由发送到如上所述的新创建的实例。
在一些实施例中,有状态主机可以被配置为以各种时间间隔自动保存内容。有状态主机还可以存储关于所建立的会话的附加信息。因此,当客户端设备随后重新建立与有状态主机的连接或者生成有状态主机的新实例化时,新的创作会话可以在旧的创作会话终止的地方开始。
图7-10和相关联的描述提供了可以利用其实践本公开的各方面的各种操作环境的讨论。然而,关于图7-10图示和讨论的设备和系统是出于示例和说明的目的,并且不限制可以被用于实践本公开的各方面的大量电子设备配置,如本文所述。
图7是图示可以利用其实践本发明的各方面的电子设备700的物理组件(例如,硬件)的框图。下面描述的电子设备700的组件可以具有用于与诸如上述有状态主机建立安全通信会话的计算机可执行指令。
在基本配置中,电子设备700可以包括至少一个处理单元710和系统存储器715。取决于电子设备的配置和类型,系统存储器715可以包括但不限于易失性存储装置(例如,随机存取存储器)、非易失性存储装置(例如,只读存储器)、闪速存储器或这样的存储器的任何组合。系统存储器715可以包括操作系统725和一个或多个程序模块720。程序模块720可以包括被用来生成或以其他方式存储上述各种令牌和标识符的令牌模块705。
例如,操作系统725可以适合于控制电子设备700的操作。此外,本公开的实施例可以结合图形库、其他操作系统或任何其他应用程序来实践,而不限于任何特定应用或系统。该基本配置在图7中通过虚线730中的那些组件来图示。
电子设备700可以具有附加特征或功能。例如,电子设备700还可以包括附加数据存储设备(可移除和/或不可移除),诸如例如磁盘、光盘或磁带。这样的附加存储装置在图7中由可移除存储设备735和不可移除存储设备740图示。
如上所述,多个程序模块和数据文件可以被存储在系统存储器715中。当在处理单元710上执行时,程序模块720可以执行包括但不限于如本文中描述的这些方面的过程。
此外,本发明的实施例可以在电路中被实践,包括分立电子元件、包含逻辑门的封装或集成电子芯片、利用微处理器的电路,或者在包含电子元件或微处理器的单个芯片上被实践。例如,本公开的实施例可以经由片上系统(SOC)来实践,其中图7所示的每个或很多组件可以被集成到单个集成电路上。这样的SOC器件可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能,所有这些都作为单个集成电路被集成(或“烧制”)到芯片衬底上。
当经由SOC操作时,本文中所描述的关于客户端切换协议的能力的功能可以经由与单个集成电路(芯片)上的电子设备700的其他组件集成的专用逻辑来操作。本公开的实施例还可以使用能够执行诸如例如AND、OR和NOT等逻辑运算的其他技术来实践,包括但不限于机械、光学、流体和量子技术。另外,本公开的实施例可以在通用计算机或任何其他电路或系统内被实践。
电子设备700还可以具有一个或多个输入设备745,诸如键盘、触控板、鼠标、笔、声音或语音输入设备、触摸、力和/或滑动输入设备等。还可以包括(多个)输出设备750,诸如显示器、扬声器、打印机等。上述设备是示例,并且可以使用其他设备。电子设备700可以包括允许与其他电子设备760通信的一个或多个通信连接755。合适的通信连接755的示例包括但不限于射频(RF)发射器、接收器和/或收发器电路装置;通用串行总线(USB)、并行和/或串行端口。
本文中所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构或程序模块等信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。
系统存储器715、可移除存储设备735和不可移除存储设备740都是计算机存储介质示例(例如,存储器存储装置)。计算机存储介质可以包括RAM、ROM、电可擦除只读存储器(EEPROM)、闪速存储器或其他存储器技术、CD-ROM,数字通用盘(DVD)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或者其他磁存储设备、或者可以被用来存储信息并且可以由电子设备700访问的任何其他制品。任何这样的计算机存储介质可以是电子设备700的一部分。计算机存储介质不包括载波或其他被传播的或经调制的数据信号。
通信介质可以由计算机可读指令、数据结构、程序模块、或者诸如载波或其他传输机制等经调制的数据信号中的其他数据来实施,并且包括任何信息传递介质。术语“经调制的数据信号”可以描述具有一个或多个特性以使得在信号中对信息进行编码的方式设置或改变的信号。通过示例而非限制,通信介质可以包括诸如有线网络或直接有线连接等有线介质、以及诸如声学、射频(RF)、红外和其他无线介质等无线介质。
图8A和图8B图示了可以利用其实践本公开的实施例的移动电子设备800,例如移动电话、智能电话、可穿戴计算机(诸如智能手表)、平板计算机、膝上型计算机等。参考图8A,图示了用于实现这些方面的移动电子设备800的一个方面。
在基本配置中,移动电子设备800是具有输入元件和输出元件两者的手持式计算机。移动电子设备800通常包括显示器805和允许用户向移动电子设备800中录入信息的一个或多个输入按钮810。移动电子设备800的显示器805还可以用作输入设备(例如,接受触摸和/或力输入的显示器)。
如果被包括,则可选的侧输入元件815允许另外的用户输入。侧输入元件815可以是旋转开关、按钮或任何其他类型的手动输入元件。在备选方面,移动电子设备800可以包含更多或更少的输入元件。例如,在一些实施例中,显示器805可以不是触摸屏。在又一备选实施例中,移动电子设备800是便携式电话系统,诸如蜂窝电话。移动电子设备800还可以包括可选的键盘835。可选的键盘835可以是物理键盘或在触摸屏显示器上生成的“软”键盘。
在各种实施例中,输出元件包括用于示出图形用户界面(GUI)的显示器805、视觉指示器820(例如,发光二极管)和/或音频换能器825(例如,扬声器)。在一些方面,移动电子设备800包含用于向用户提供触觉反馈的振动换能器。在又一方面,移动电子设备800包含用于向外部设备发送信号或从外部设备接收信号的输入和/或输出端口,诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,HDMI端口)。
图8B是图示移动电子设备800的一个方面的架构的框图。即,移动电子设备800可以包含系统(例如,架构)840以实现一些方面。在一个实施例中,系统840被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息传递客户端、游戏和媒体客户端/播放器、内容选择和共享应用等)的“智能电话”。在一些方面,系统840被集成为电子设备,诸如集成的个人数字助理(PDA)和无线电话。
可以将一个或多个应用程序850加载到存储器845中并且在操作系统855上或与操作系统855相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、因特网浏览器程序、消息传递程序等。
系统840还包括存储器845内的非易失性存储区域860。非易失性存储区域860可以被用来存储在系统840断电时不应当丢失的持久信息(诸如例如,授权令牌、身份令牌和/或全局唯一标识符)。
应用程序850可以在非易失性存储区域860中使用和存储信息,诸如电子邮件或由电子邮件应用使用的其他消息等。同步应用(未示出)也驻留在系统840上,并且被编程为与驻留在主机计算机上的对应同步应用交互,以使被存储在非易失性存储区域860中的信息与被存储在主机计算机中的对应信息保持同步。
系统840具有电源865,电源865可以被实现为一个或多个电池。电源865还可以包括外部电源,诸如补充或重新充电电池的AC适配器或电源对接支架。
系统840还可以包括执行传送和接收射频通信的功能的无线电接口层870。无线电接口层870经由通信运营商或服务提供商促进系统840与“外部世界”之间的无线连接。去往和来自无线电接口层870的传输在操作系统855的控制下进行。换言之,由无线电接口层870接收的通信可以经由操作系统855被传播到应用程序850,反之亦然。
视觉指示器820可以被用来提供视觉通知,和/或音频接口875可以被用于经由音频换能器(例如,图8A所示的音频换能器825)产生可听通知。在所示的实施例中,视觉指示器820是发光二极管(LED),并且音频换能器825可以是扬声器。这些设备可以直接被耦合到电源865,使得它们在被激活时保持导通由通知机构指示的持续时间,即使处理器885和其他组件可能关闭以用于节省电池功率。LED可以被编程为无限期地保持导通,直到用户采取行动来指示设备的通电状态。
音频接口875被用来向用户提供可听信号和从用户接收可听信号。例如,除了被耦合到音频换能器825之外,音频接口875还可以被耦合到麦克风以接收可听输入,诸如以便于电话交谈。根据本公开的实施例,麦克风还可以用作音频传感器以便于控制通知,如下所述。
系统840还可以包括使得外围设备830(例如,板上相机)能够操作以记录静止图像、视频流等的视频接口880。
实现系统840的移动电子设备800可以具有附加特征或功能。例如,移动电子设备800还可以包括附加数据存储设备(可移除和/或不可移除),诸如磁盘、光盘或磁带。这种附加存储装置在图8B中由非易失性存储区域860示出。
如上所述,由移动电子设备800生成或捕获并且经由系统840存储的数据/信息可以本地被存储在移动电子设备800上,或者数据可以被存储在任何数目的存储介质上,这些介质可以由设备经由无线电接口层870或经由移动电子设备800和与移动电子设备800相关联的分离电子设备(例如,诸如因特网等分布式计算网络中的服务器计算机)之间的有线连接来访问。应当理解,这样的数据/信息可以经由无线电接口层870或经由分布式计算网络经由移动电子设备800来访问。类似地,根据公知的数据/信息传递和存储装置,包括电子邮件和协作数据/信息共享系统,这样的数据/信息可以在电子设备之间容易地被传递以用于存储和使用。
应当理解,图8A和图8B出于说明本公开的方法和系统的目的而被描述,并且不旨在将本公开限制于特定的步骤序列或者硬件或软件组件的特定组合。
图9图示了用于在客户端设备与后端服务器905之间建立通信会话的系统900的架构的一个方面。客户端设备可以是通用计算设备910(例如,个人计算机)、平板计算设备915或移动计算设备920。这些设备中的每个可以存储上述各种令牌925。例如,这些令牌925包括辅助客户端设备与有状态主机或其他云服务建立创作会话的授权令牌、身份令牌和全局唯一标识符。
与客户端设备相关联的各种其他类型的内容可以由目录服务945、网络门户950、邮箱服务955、即时消息存储库960或社交网络服务965存储或被传送到目录服务945、网络门户950、邮箱服务955、即时消息存储库960或社交网络服务965。
为了建立诸如所描述的创作会话,客户端设备可以向服务器905传达令牌。例如,通用计算设备910、平板计算设备915和/或移动计算设备920(例如,智能电话)可以通过网络930将这些令牌发送到服务器905。
应当理解,图9出于说明本公开的方法和系统的目的而被描述,并且不旨在将本公开限制于特定的步骤序列或者硬件或软件组件的特定组合。
图10图示了可以执行本文所公开的一个或多个方面的示例平板电子设备1000。另外,本文所描述的各方面和功能可以在分布式系统(例如,基于云的计算系统)上操作,其中应用功能、存储器、数据存储和检索以及各种处理功能可以通过诸如互联网或内联网等分布式计算网络彼此远程操作。各种类型的用户界面和信息可以经由板上电子设备显示器或经由与一个或多个电子设备相关联的远程显示单元来显示。例如,可以在墙面上显示和交互各种类型的用户界面和信息,在该墙面上投影有各种类型的用户界面和信息。与可以利用来实践本发明的实施例的多个计算系统的交互包括键击输入、触摸屏输入、语音或其他音频输入、姿势输入,其中相关联的电子设备配备有用于捕获和解释用户姿势以用于控制电子设备的功能的检测(例如,相机)功能等。
应当理解,图10出于说明本公开的方法和系统的目的而被描述,并且不旨在将本公开限制于特定的步骤序列或者硬件或软件组件的特定组合。
在其他示例中,本公开描述了一种用于在客户端设备与有状态主机之间建立通信会话的方法,该方法包括:向授权服务提供身份令牌;使用身份令牌确定客户端设备是否被授权与由云服务托管的有状态主机建立创作会话;当确定客户端设备被授权建立创作会话时,生成包括与客户端设备相关联的唯一标识符的授权令牌;在虚拟机上生成有状态主机;将唯一标识符与有状态主机相关联;确定与有状态主机相关联的互联网协议地址;将互联网协议地址与唯一标识符相关联以创建名称-值对;将名称-值对安全地存储在云服务中;并且使用名称-值对在客户端设备与有状态主机之间建立通信会话。在其他示例中,向客户端设备提供授权令牌和唯一标识符。在其他示例中,客户端设备向网关提供唯一标识符以与有状态主机建立后续安全通信会话。在其他示例中,唯一标识符被用来确定与有状态主机相关联的名称-值对。在其他示例中,授权令牌是加密的。在其他示例中,唯一标识符被用来在客户端设备与有状态主机之间创建一对一映射。在其他示例中,名称-值对被存储在安全的全局存储设备中。
本文所公开的其他方面提供了一种系统,该系统包括:处理器;用于存储指令的存储器,这些指令在由处理器执行时执行用于在客户端设备与有状态主机之间建立通信会话的方法,该方法包括:从客户端设备接收唯一标识符,该唯一标识符与客户端标识令牌和客户端授权令牌相关联;使用唯一标识符来确定针对与客户端设备相关联的有状态主机的互联网协议地址;以及使用唯一标识符、客户端标识令牌和客户端授权令牌在客户端设备与有状态主机之间建立通信会话。在其他示例中,使用唯一标识符来确定互联网协议地址包括访问存储包括多个唯一标识符和多个互联网协议地址的名称-值对的存储高速缓存。在其他示例中,有状态主机由虚拟机实例化。在其他示例中,该系统还包括用于在客户端设备与有状态主机之间的连接丢失时在客户端设备与有状态主机之间重新建立连接的指令,其中连接是通过使用唯一标识符确定针对有状态主机的互联网协议地址来重新建立的。在其他示例中,该系统包括用于确定有状态主机是否不活动的指令。在其他示例中,该系统包括用于在确定有状态主机不活动时使虚拟机创建有状态主机的新实例化的指令。在其他示例中,该系统包括用于使用至少唯一标识符来加载由有状态主机托管的内容的最后已知状态的指令。
本文所公开的附加方面描述了一种包括计算机可执行指令的计算机可读存储介质,这些计算机可执行指令在由处理器执行时执行用于在客户端与有状态主机之间建立通信会话的方法,该方法包括:生成包括与客户端相关联的唯一标识符的授权令牌;使用唯一标识符在虚拟机上实例化有状态主机;确定与有状态主机相关联的互联网协议地址;将互联网协议地址与唯一标识符相关联以创建名称-值对;以及使用名称-值对在客户端与有状态主机之间建立通信会话。在其他示例中,计算机可读存储介质还包括用于向客户端提供唯一标识符的指令。在其他示例中,计算机可读存储介质还包括用于确定有状态主机是否不活动的指令。在其他示例中,计算机可读存储介质还包括用于在重新建立与有状态主机的连接时使用唯一标识符来确定有状态主机的最后已知状态的指令。在其他示例中,计算机可读存储介质还包括用于将授权令牌与关联于客户端的认证令牌相关联的指令。在其他示例中,计算机可读存储介质还包括:当客户端寻求重新建立与有状态主机的连接时,接收授权令牌、认证令牌和唯一标识符。
例如,以上参考根据本公开的各方面的方法、系统和计算机程序产品的框图和/或操作图示描述了本公开的实施例。框中记录的功能/动作可以不按任何流程图所示的顺序发生。例如,连续示出的两个框实际上可以基本上同时被执行,或者这些框有时可以以相反的顺序被执行,这取决于所涉及的功能/动作。
本申请中所提供的一个或多个方面的描述和说明不旨在以任何方式限制或限定本公开的范围。本申请中所提供的方面、示例和细节被认为足以传达占有并使其他人能够制作和使用所要求保护的公开内容的最佳模式。所要求保护的公开内容不应当被解释为限于本申请中所提供的任何方面、示例或细节。无论是组合地还是分离地示出和描述,旨在选择性地包括或省略各种特征(结构和方法两者)以产生具有特定特征集的实施例。已经提供了本申请的描述和说明,本领域技术人员可以设想落入本申请中所实施的总体发明构思的更广泛方面的精神内的变型、修改和替换方面,其不脱离所要求保护的公开内容的更广泛的范围。

Claims (21)

1.一种用于在客户端设备与有状态主机之间建立通信会话的方法,包括:
在授权服务处,接收来自所述客户端设备的客户端身份令牌,其中所述客户端身份令牌已经基于所述客户端设备的用户的用户凭证而被生成;
在所述授权服务处,通过使用来自所述客户端设备的所述客户端身份令牌来确定所述客户端设备是否被授权与由云服务托管的所述有状态主机建立创作会话;
根据确定所述客户端设备被授权与所述有状态主机建立所述创作会话,在所述授权服务处,生成包括与所述客户端身份令牌相关联的唯一标识符的客户端授权令牌;
在所述授权服务处,向所述客户端设备发送所述客户端授权令牌;
在所述授权服务处,向指令队列发送所述唯一标识符,其中所述指令队列将向所述云服务提供所述唯一标识符;
在所述云服务处,基于从所述指令队列接收到的所述唯一标识符,在虚拟机上生成所述有状态主机;
在所述云服务处,将所述唯一标识符与所述有状态主机相关联;
在所述云服务处,确定与所述有状态主机相关联的互联网协议地址;
在所述云服务处,将所述互联网协议地址与所述唯一标识符相关联以创建名称-值对;
在所述云服务处,安全地存储所述名称-值对;以及
在所述云服务处,使用所述名称-值对来建立在所述客户端设备与所述有状态主机之间的所述创作会话。
2.根据权利要求1所述的方法,还包括:
在所述云服务处,在非预期事件之后,重新建立在所述客户端设备与所述有状态主机之间的所述创作会话,
其中重新建立所述创作会话包括:所述客户端设备访问所述客户端授权令牌;以及所述云服务确定与所述唯一标识符相关联的所述互联网协议地址。
3.根据权利要求1所述的方法,还包括:
向所述客户端设备提供所述唯一标识符;以及
使得所述客户端设备将所述唯一标识符提供给网关,以与所述有状态主机建立后续安全通信会话。
4.根据权利要求3所述的方法,其中所述唯一标识符被用来确定与所述有状态主机相关联的所述名称-值对。
5.根据权利要求1所述的方法,其中所述客户端授权令牌是加密的。
6.根据权利要求1所述的方法,其中所述唯一标识符被用来在所述客户端设备与所述有状态主机之间创建一对一映射。
7.根据权利要求1所述的方法,其中所述名称-值对被安全地存储在安全的全局存储设备中。
8.一种用于在客户端设备与有状态主机之间建立通信会话的系统,包括:
所述客户端设备,
所述有状态主机,
授权服务,以及
云服务,
其中所述系统被配置为执行:
在所述客户端处,向所述授权服务提供客户端身份令牌,其中所述客户端身份令牌已经基于所述客户端设备的用户的用户凭证而被生成;
在所述授权服务处,通过使用来自所述客户端设备的所述客户端身份令牌来确定所述客户端设备是否被授权与由云服务托管的所述有状态主机建立创作会话;
根据确定所述客户端设备被授权与所述有状态主机建立所述创作会话,在所述授权服务处,生成包括与所述客户端身份令牌相关联的唯一标识符的客户端授权令牌;
在所述授权服务处,向所述客户端设备发送所述客户端授权令牌;
在所述授权服务处,向指令队列发送所述唯一标识符,其中所述指令队列将向所述云服务提供所述唯一标识符;
在所述云服务处,基于从所述指令队列接收到的所述唯一标识符,在虚拟机上生成所述有状态主机;
在所述云服务处,将所述唯一标识符与所述有状态主机相关联;
在所述云服务处,确定与所述有状态主机相关联的互联网协议地址;
在所述云服务处,将所述互联网协议地址与所述唯一标识符相关联以创建名称-值对;
在所述云服务处,安全地存储所述名称-值对;以及
在所述云服务处,使用所述名称-值对来建立在所述客户端设备与所述有状态主机之间的所述创作会话。
9.根据权利要求8所述的系统,其中所述系统还被配置为执行:
在所述云服务处,在非预期事件之后,重新建立在所述客户端设备与所述有状态主机之间的所述创作会话,
其中重新建立所述创作会话包括:所述客户端设备访问所述客户端授权令牌;以及所述云服务确定与所述唯一标识符相关联的所述互联网协议地址。
10.根据权利要求8所述的系统,其中所述系统还被配置为执行:
向所述客户端设备提供所述唯一标识符;以及
使得所述客户端设备将所述唯一标识符提供给网关,以与所述有状态主机建立后续安全通信会话。
11.根据权利要求10所述的系统,其中所述唯一标识符被用来确定与所述有状态主机相关联的所述名称-值对。
12.根据权利要求8所述的系统,其中所述客户端授权令牌是加密的。
13.根据权利要求8所述的系统,其中所述唯一标识符被用来在所述客户端设备与所述有状态主机之间创建一对一映射。
14.根据权利要求8所述的系统,其中所述名称-值对被安全地存储在安全的全局存储设备中。
15.一种包括计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在由处理器执行时,执行用于在客户端设备与有状态主机之间建立通信会话的方法,所述方法包括:
在授权服务处,接收来自所述客户端设备的客户端身份令牌,其中所述客户端身份令牌已经基于所述客户端设备的用户的用户凭证而被生成;
在所述授权服务处,通过使用来自所述客户端设备的所述客户端身份令牌来确定所述客户端设备是否被授权与由云服务托管的所述有状态主机建立创作会话;
根据确定所述客户端设备被授权与所述有状态主机建立所述创作会话,在所述授权服务处,生成包括与所述客户端身份令牌相关联的唯一标识符的客户端授权令牌;
在所述授权服务处,向所述客户端设备发送所述客户端授权令牌;
在所述授权服务处,向指令队列发送所述唯一标识符,其中所述指令队列将向所述云服务提供所述唯一标识符;
在所述云服务处,基于从所述指令队列接收到的所述唯一标识符,在虚拟机上生成所述有状态主机;
在所述云服务处,将所述唯一标识符与所述有状态主机相关联;
在所述云服务处,确定与所述有状态主机相关联的互联网协议地址;
在所述云服务处,将所述互联网协议地址与所述唯一标识符相关联以创建名称-值对;
在所述云服务处,安全地存储所述名称-值对;以及
在所述云服务处,使用所述名称-值对来建立在所述客户端设备与所述有状态主机之间的所述创作会话。
16.根据权利要求15所述的计算机可读存储介质,其中所述方法还包括:
在所述云服务处,在非预期事件之后,重新建立在所述客户端设备与所述有状态主机之间的所述创作会话,
其中重新建立所述创作会话包括:所述客户端设备访问所述客户端授权令牌;以及所述云服务确定与所述唯一标识符相关联的所述互联网协议地址。
17.根据权利要求15所述的计算机可读存储介质,其中所述方法还包括:
向所述客户端设备提供所述唯一标识符;以及
使得所述客户端设备将所述唯一标识符提供给网关,以与所述有状态主机建立后续安全通信会话。
18.根据权利要求17所述的计算机可读存储介质,其中所述唯一标识符被用来确定与所述有状态主机相关联的所述名称-值对。
19.根据权利要求15所述的计算机可读存储介质,其中所述客户端授权令牌是加密的。
20.根据权利要求15所述的计算机可读存储介质,其中所述唯一标识符被用来在所述客户端设备与所述有状态主机之间创建一对一映射。
21.根据权利要求15所述的计算机可读存储介质,其中所述名称-值对被安全地存储在安全的全局存储设备中。
CN201780064542.7A 2016-10-19 2017-10-12 建立用于有状态云服务的安全会话的方法、系统 Active CN109906453B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/298,044 US10686886B2 (en) 2016-10-19 2016-10-19 Establishing secure sessions for stateful cloud services
US15/298,044 2016-10-19
PCT/US2017/056239 WO2018075317A1 (en) 2016-10-19 2017-10-12 Establishing secure sessions for stateful cloud services

Publications (2)

Publication Number Publication Date
CN109906453A CN109906453A (zh) 2019-06-18
CN109906453B true CN109906453B (zh) 2023-07-25

Family

ID=60162313

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780064542.7A Active CN109906453B (zh) 2016-10-19 2017-10-12 建立用于有状态云服务的安全会话的方法、系统

Country Status (4)

Country Link
US (1) US10686886B2 (zh)
EP (1) EP3529730B1 (zh)
CN (1) CN109906453B (zh)
WO (1) WO2018075317A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114189848A (zh) * 2020-09-14 2022-03-15 华为技术有限公司 通信设备间的关联方法和装置
CN112532599B (zh) * 2020-11-19 2023-04-18 北京信安世纪科技股份有限公司 一种动态鉴权方法、装置、电子设备和存储介质
US11818102B2 (en) * 2021-04-16 2023-11-14 Nokia Technologies Oy Security enhancement on inter-network communication

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105264864A (zh) * 2013-06-04 2016-01-20 谷歌公司 会话转移到替选设备期间保持视频会议会话连续性

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1265242A (fr) 1960-05-17 1961-06-30 Csf Perfectionnements aux convertisseurs thermoélectroniques d'énergie thermique en énergie électrique, notamment aux structures de leurs électrodes
US3219609A (en) 1961-02-22 1965-11-23 Kuhlmann Ets Aqueous dispersions of vinyl chloride-acrylic ester copolymers
FR1525343A (fr) 1967-04-06 1968-05-17 Machine-outil perfectionnée
US3447881A (en) 1967-10-26 1969-06-03 Us Navy Flame-coloring device
US5907621A (en) * 1996-11-15 1999-05-25 International Business Machines Corporation System and method for session management
NL1018494C2 (nl) * 2001-07-09 2003-01-10 Koninkl Kpn Nv Methode en systeem voor het door een dienstproces aan een client leveren van een dienst.
CN100518176C (zh) 2002-12-02 2009-07-22 Sap股份公司 实现有状态网络应用的会话返回
US7870389B1 (en) 2002-12-24 2011-01-11 Cisco Technology, Inc. Methods and apparatus for authenticating mobility entities using kerberos
GB2442044B8 (en) * 2006-05-11 2011-02-23 Ericsson Telefon Ab L M Addressing and routing mechanism for web server clusters.
US8561155B2 (en) 2006-08-03 2013-10-15 Citrix Systems, Inc. Systems and methods for using a client agent to manage HTTP authentication cookies
US9344401B2 (en) * 2009-02-04 2016-05-17 Citrix Systems, Inc. Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment
JP5802137B2 (ja) 2009-02-05 2015-10-28 ダブリューダブリューパス コーポレイションWwpass Corporation 安全なプライベート・データ記憶装置を有する集中型の認証システム、および方法
EP3002683B1 (en) * 2009-12-14 2017-07-12 Citrix Systems Inc. Methods and systems for communicating between trusted and non-trusted virtual machines
US8984621B2 (en) * 2010-02-27 2015-03-17 Novell, Inc. Techniques for secure access management in virtual environments
US8725880B2 (en) * 2010-04-07 2014-05-13 Apple, Inc. Establishing online communication sessions between client computing devices
US8607054B2 (en) * 2010-10-15 2013-12-10 Microsoft Corporation Remote access to hosted virtual machines by enterprise users
US9465589B2 (en) 2011-04-05 2016-10-11 Microsoft Technology Licensing, Llc Stateful component authoring and execution
WO2012158073A1 (en) * 2011-05-13 2012-11-22 Telefonaktiebolaget L M Ericsson (Publ) Methods, server and proxy agent for dynamically setting up a session between a target resource in a private network and an application on a device
US8769622B2 (en) 2011-06-30 2014-07-01 International Business Machines Corporation Authentication and authorization methods for cloud computing security
US8949938B2 (en) * 2011-10-27 2015-02-03 Cisco Technology, Inc. Mechanisms to use network session identifiers for software-as-a-service authentication
US9027114B2 (en) * 2013-03-12 2015-05-05 Cisco Technology, Inc. Changing group member reachability information
US9124569B2 (en) 2013-06-14 2015-09-01 Microsoft Technology Licensing, Llc User authentication in a cloud environment
CN103347085B (zh) 2013-07-12 2016-03-23 东南大学 云数据安全的多写入模型的公共审计设计方法
US9755960B2 (en) 2013-09-30 2017-09-05 Juniper Networks, Inc. Session-aware service chaining within computer networks
IL229907A (en) * 2013-12-10 2015-02-26 David Almer Mobile device with enhanced security
US20160380992A1 (en) * 2014-02-11 2016-12-29 Google Inc. Authentication specific data
US9680821B2 (en) * 2014-05-28 2017-06-13 Conjur, Inc. Resource access control for virtual machines
US9985953B2 (en) * 2014-11-10 2018-05-29 Amazon Technologies, Inc. Desktop application fulfillment platform with multiple authentication mechanisms
US9871821B2 (en) * 2014-11-11 2018-01-16 Oracle International Corporation Securely operating a process using user-specific and device-specific security constraints
US10454936B2 (en) * 2015-10-23 2019-10-22 Oracle International Corporation Access manager session management strategy
US20170289185A1 (en) * 2016-03-31 2017-10-05 Qualcomm Incorporated Device assisted traffic anomaly detection
US20170289197A1 (en) * 2016-03-31 2017-10-05 Qualcomm Incorporated Transport layer security token binding and trusted signing
US20170374088A1 (en) * 2016-06-22 2017-12-28 Sable Networks, Inc. Individually assigned server alias address for contacting a server
US10574644B2 (en) * 2017-05-03 2020-02-25 International Business Machines Corporation Stateful session manager

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105264864A (zh) * 2013-06-04 2016-01-20 谷歌公司 会话转移到替选设备期间保持视频会议会话连续性

Also Published As

Publication number Publication date
US20180109628A1 (en) 2018-04-19
EP3529730A1 (en) 2019-08-28
CN109906453A (zh) 2019-06-18
US10686886B2 (en) 2020-06-16
EP3529730B1 (en) 2023-12-27
WO2018075317A1 (en) 2018-04-26

Similar Documents

Publication Publication Date Title
KR102511811B1 (ko) 봇 사용자를 안전하게 인증하는 기법
CN107534653B (zh) 基于云的跨设备的数字笔配对
US8612614B2 (en) Method and system for establishing a dedicated session for a member of a common frame buffer group
US9781123B2 (en) Methods of providing social network service and server performing the same
US11036919B2 (en) Enabling file attachments in calendar events
US20170103753A1 (en) Flexible schema for language model customization
US9973543B2 (en) Seamless switching between computing devices during an online meeting
US20140359612A1 (en) Sharing a Virtual Hard Disk Across Multiple Virtual Machines
AU2013390850B2 (en) Synchronizing device association data among computing devices
JP2016520240A (ja) ネットワークファイルアクセスプロトコルを通じた効率的なプログラマチックメモリアクセス
JP2017538986A (ja) ホストデバイスコンピューティング環境へのターゲットデバイスリソースの貸与
US9246949B2 (en) Secure capability negotiation between a client and server
WO2016085681A1 (en) Actionable souvenir from real-time sharing
CN109906453B (zh) 建立用于有状态云服务的安全会话的方法、系统
US11523260B2 (en) Delivery of configuration information for cross-platform application integration
EP3526948B1 (en) Universal casting service
US20170126844A1 (en) Server architecture and protocol development
US10715494B2 (en) Orchestrating work across domains and work streams
US20140372524A1 (en) Proximity Operations for Electronic File Views
US20230195507A1 (en) Local to remote application switching
US9178942B1 (en) Systems and methods for updating native contact information
US11704175B2 (en) Bridging virtual desktops under nested mode
US20230205566A1 (en) Dynamic connection switching in virtual desktops under nested mode
KR102493291B1 (ko) 사용자 계정 인식 개인 영역 네트워크 본딩
WO2023060414A1 (en) Adjustable magnifier for virtual desktop

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