基于具有不同认证凭证的认证令牌提供会话访问的计算系统和方法
背景技术:
1.许多组织现在正在使用应用和桌面虚拟化来提供更灵活的选项来解决其用户的不同需求。在桌面虚拟化中,用户的应用可能与用户的物理桌面计算机分离。使用客户端
‑
服务器技术,“虚拟化桌面”可以存储在远程服务器中并由其管理,而不是在客户端设备的本地存储中。
2.有几种不同类型的桌面虚拟化系统。例如,虚拟桌面基础设施(vdi)涉及在驻留在服务器上的虚拟机内运行用户桌面和/或应用的过程。虚拟化系统也可以在云计算环境中实现,在云计算环境中桌面虚拟化服务器、存储磁盘、联网硬件和其它物理资源的群可以用于提供虚拟桌面,并提供对共享应用的访问。例如,客户端设备还可以直接地或通过虚拟化系统远程访问web和软件即服务 (saas) 应用。
技术实现要素:
3.计算设备可以包括存储器和处理器,所述处理器被配置为与所述存储器协作以存储认证令牌,所述认证令牌具有与其相关联的第一和第二认证凭证。第一和第二认证凭证可以彼此不同。所述处理器还可以与服务器协作以基于所述认证令牌访问会话。
4.在示例配置中,第一和第二认证凭证中的一个可以包括用户凭证。例如,所述用户凭证可以存储在客户端设备处的存储器中。根据另一个示例,所述用户凭证可以存储在具有认证服务的虚拟智能卡中。
5.在另一个示例实施例中,第一和第二认证凭证中的一个可以包括与客户端设备相关联的公共密钥。举例来说,公共加密密钥可以由信任根(rot)签名。在另一个示例配置中,第一和第二认证凭证中的一个可以包括票证或令牌,所述票证或令牌指向存储在云存储中的加密用户凭证。
6.例如,处理器可以与服务器协作以进一步基于分配给计算设备的连接租契来访问会话。此外,在一些示例实现中,第一和第二认证凭证可以存储在不同位置。例如,认证令牌可以包括多态认证令牌。此外,会话可以包括以下各项中的至少一项:例如web应用会话、软件即服务(saas)应用会话、虚拟应用会话和虚拟桌面会话。
7.一种相关的方法可以包括:存储客户端设备的认证令牌,所述认证令牌具有与其相关联的第一和第二认证凭证,其中第一和第二认证凭证彼此不同。所述方法还可以包括在客户端设备处与服务器协作以基于所述认证令牌访问会话。
附图说明
8.图1是其中可以实现本公开的各个方面的计算设备的网络环境的示意框图。
9.图2是用于实践图1中所示的客户端机器或远程机器的实施例的计算设备的示意框图。
10.图3是其中可以实现本公开的各个方面的云计算环境的示意框图。
11.图4是操作其中可以实现本公开的各个方面的工作空间app的桌面、移动和基于web的设备的示意框图。
12.图5是其中可以实现本公开的各个方面的计算设备的工作空间网络环境的示意框图。
13.图6是根据示例实施例的基于具有与其相关联的不同认证凭证的认证令牌来提供客户端设备会话访问的计算系统的示意框图。
14.图7是实现连接租契配置的图6的计算系统的示例实施例的示意框图。
15.图8a
‑
8b是图示在图7的系统的示例实现中利用用户和设备身份进行认证的序列流程图。
16.图9是图示图7的系统的示例实现中的客户端设备注册的序列流程图。
17.图10a
‑
10c是图示在图7的系统的示例实现中利用长期一次性使用刷新令牌进行认证的序列流程图。
18.图11是图示在图7的系统的示例实现中检查用户和设备声明的方法的序列流程图。
19.图12a
‑
12b是图示在图7的系统的示例实现中基于身份平台创建多态认证令牌的方法的序列流程图。
20.图13a
‑
13b是图示在图7的系统的示例实现中基于用户凭证创建多态认证令牌的方法的序列流程图。
21.图14是图示在图7的系统的示例实现中列举公开资源的方法的序列流程图。
22.图15a
‑
15b是图示在图7的系统的示例实现中基于连接租契利用单点登录进行会话创建和认证的方法的序列流程图。
23.图16是图示与图6的系统相关联的示例方法方面的流程图。
具体实施方式
24.连接租契(cl)提供一种方法用于客户端或端点设备在网络连接和初始会话建立方面对资源位置的离线授权访问。但是,即使利用cl,可能仍然需要进入远程会话的用户认证。例如,虚拟递送代理可能要求用户凭证来将用户登录到虚拟会话中。更具体地说,可能需要将显式凭证(诸如用户名和密码)提供给虚拟递送器具处的凭证提供方或凭证提供方过滤器,凭证提供方或凭证提供方过滤器然后将凭证提供给 windows 登录子系统以将用户登录到新的 windows 会话或附加到现有会话。同样,网关器具可能类似地要求用户认证。
25.在没有用户认证单点登录(sson)的情况下,每当用户经由cl连接时用户可能被要求输入他们的凭证,这将有损于连接租契的用户体验(ux)。sson 的现有系统可能依赖于在端点设备上存储用户凭证,这使得它们容易受到盗窃和重放攻击,例如,来自其他用户和/或来自其它设备的攻击。其它方法可能依赖于将凭证存储在云中并使它们可经由云接口(诸如例如 思杰工作空间(citrix workspace))取回或重用。然而,以易于解密的形式将用户凭证存储在云中可能具有安全性和私密性问题。因此,一些方法可能要求云存储的凭证是短期的,例如几分钟或几小时。然而,这并不与 cl 的使用很好地相符,cl是长期的,例如,提供两周或更长时间内的资源访问而无需重新认证。
26.此外,云存储的凭证可能并不总是可直接使用的。例如,当云服务当机或无法从端点设备访问时,可能会发生这种情况。
27.附加的使用实例包括例如出于公开资源列举、端点设备密钥引导、请求生成cl和将cl分别同步(下载)到端点等目的的sson。其中一些使用实例可能不一定要求显式用户凭证,但可能仍要求使用长期认证。本文描述的方法有利地帮助解决上述用户认证的技术挑战,包括在 cl 架构内,同时还通过使用基于多个不同认证凭证的认证令牌允许cl和其它认证操作的相对长期的认证。
28.首先参考图1,其中可以实现本公开的各个方面的非限制性网络环境10包括一个或多个客户端机器12a
‑
12n、一个或多个远程机器16a
‑
16n、一个或多个网络14、14'、以及安装在计算环境10内的一个或多个器具18。客户端机器12a
‑
12n经由网络14、14'与远程机器16a
‑
16n通信。
29.在一些实施例中,客户端机器12a
‑
12n经由中间器具18与远程机器16a
‑
16n通信。所图示的器具18定位在网络14、14'之间,并且还可以称为网络接口或网关。在一些实施例中,器具108可以作为应用递送控制器(adc)来操作,以向客户端提供对部署在数据中心、云中、或者作为软件即服务(saas)跨一系列客户端设备而递送的商业应用和其它数据的访问,和/或提供诸如负载平衡等其它功能。在一些实施例中,可以使用多个器具18,并且(一个或多个)器具18可以被部署为网络14和/或14'的一部分。
30.客户端机器12a
‑
12n通常可以被称为客户端机器12、本地机器12、客户端12、客户端节点12、客户端计算机12、客户端设备12、计算设备12、端点12或端点节点12。远程机器16a
‑
16n通常可以被称为服务器16或服务器群16。在一些实施例中,客户端设备12可以具有既充当寻求访问由服务器16提供的资源的客户端节点又充当为其他客户端设备12a
‑
12n提供对托管资源的访问的服务器16的能力。网络14、14'通常可以被称为网络14。网络14可以以有线和无线网络的任何组合来配置。
31.服务器16可以是任何服务器类型,诸如例如:文件服务器;应用服务器;web服务器;代理服务器;器具;网络器具;网关;应用网关;网关服务器;虚拟化服务器;部署服务器;安全套接字层虚拟私有网络(ssl vpn)服务器;防火墙;web服务器;执行活动目录的服务器;云服务器;或执行提供防火墙功能、应用功能或负载平衡功能的应用加速程序的服务器。
32.服务器16可以执行、操作或以其它方式提供应用,该应用可以是以下各项中的任一个:软件;程序;可执行指令;虚拟机;管理程序;web浏览器;基于web的客户端;客户端
‑
服务器应用;瘦客户端计算客户端;activex控件;java小程序;与互联网语音协议(voip)通信相关的软件,如软ip电话;用于流式传输视频和/或音频的应用;用于促进实时数据通信的应用;http客户端;ftp客户端;oscar客户端;远程登录(telnet)客户端;或任何其它可执行指令集合。
33.在一些实施例中,服务器16可以执行远程呈现服务程序或其它程序,该程序使用瘦客户端或远程显示协议来捕获由在服务器16上执行的应用所生成的显示输出,并且将该应用显示输出传输到客户端设备12。
34.在又其它实施例中,服务器16可以执行向客户端设备12的用户提供对计算环境的访问的虚拟机。客户端设备12可以是虚拟机。虚拟机可以由例如管理程序、虚拟机管理器
(vmm)、或服务器16内的任何其它硬件虚拟化技术来管理。
35.在一些实施例中,网络14可以是:局域网(lan);城域网(man);广域网(wan);主要公有网络14;以及主要私有网络14。附加实施例可以包括使用各种协议在移动设备间通信的移动电话网络的网络14。对于无线局域网(wlan)内的短程通信而言,各协议可以包括802.11、蓝牙和近场通信(nfc)。
36.图2描绘了对于实践客户端设备12、器具18和/或服务器16的实施例而言有用的计算设备20的框图。计算设备20包括一个或多个处理器22、易失性存储器24(例如,随机存取存储器(ram))、非易失性存储器30、用户接口(ui)38、一个或多个通信接口26、以及通信总线48。
37.非易失性存储器30可以包括:一个或多个硬盘驱动器(hdd)或其它磁性或光学存储介质;一个或多个固态驱动器(ssd),诸如闪存驱动器或其它固态存储介质;一个或多个混合磁性和固态驱动器;和/或诸如云存储装置之类的一个或多个虚拟存储卷(volume)、或者这种物理存储卷和虚拟存储卷或其阵列的组合。
38.用户接口38可以包括图形用户接口(gui)40(例如,触摸屏、显示器等)和一个或多个输入/输出(i/o)设备42(例如,鼠标、键盘、麦克风、一个或多个扬声器、一个或多个相机、一个或多个生物测定扫描仪、一个或多个环境传感器、以及一个或多个加速度计等)。
39.非易失性存储器30存储操作系统32、一个或多个应用34和数据36,使得例如操作系统32和/或应用34的计算机指令由(一个或多个)处理器22在易失性存储器24之外执行。在一些实施例中,易失性存储器24可以包括一种或多种类型的ram和/或高速缓冲存储器,其可以提供比主存储器更快的响应时间。数据可以使用gui 40的输入设备来输入,或者从(一个或多个)(i/o)设备42来接收。计算机20的各种元件可以经由通信总线48进行通信。
40.所图示的计算设备20仅被示出为示例客户端设备或服务器,并且可以通过具有任何类型的机器或机器集合的任何计算或处理环境来实现,所述机器或机器集合可以具有能够如本文中所描述的那样进行操作的合适硬件和/或软件。
41.(一个或多个)处理器22可以由一个或多个可编程处理器来实现,以执行一个或多个可执行指令(诸如,计算机程序),从而执行该系统的功能。如本文中所使用的,术语“处理器”描述执行功能、操作或操作序列的电路。该功能、操作或操作序列可以被硬编码到该电路中,或者通过保存在存储器设备中并且由该电路执行的指令的方式被软编码。处理器可以使用数字值和/或使用模拟信号来执行该功能、操作或操作序列。
42.在一些实施例中,处理器可以被体现在一个或多个专用集成电路(asic)、微处理器、数字信号处理器(dsp)、图形处理单元(gpu)、微控制器、现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、多核处理器、或具有相关联的存储器的通用计算机中。
43.处理器22可以是模拟的、数字的或混合信号的。在一些实施例中,处理器22可以是一个或多个物理处理器、或一个或多个虚拟(例如,远程定位或云)处理器。包括多个处理器核的处理器和/或多个处理器可以提供用于并行、同时执行指令或者用于对多于一个数据段并行、同时执行一个指令的功能。
44.通信接口26可以包括一个或多个接口,以使得计算设备20能够通过各种有线和/或无线连接(包括蜂窝连接)来访问计算机网络,诸如局域网(lan)、广域网(wan)、个人区域网(pan)或互联网。
45.在所描述的实施例中,计算设备20可以代表客户端设备的用户来执行应用。例如,计算设备20可以执行由管理程序所管理的一个或多个虚拟机。每个虚拟机可以提供执行会话(诸如,托管的桌面会话),在该执行会话内,各应用代表用户或客户端设备而执行。计算设备20还可以执行终端服务会话来提供托管桌面环境。计算设备20可以提供对远程计算环境的访问,该远程计算环境包括一个或多个应用、一个或多个桌面应用、以及其中一个或多个应用可以进行执行的一个或多个桌面会话。
46.示例虚拟化服务器16可以使用由佛罗里达州劳德代尔堡的思杰系统(“citrix systems”)公司提供的思杰管理程序(citrix hypervisor)来实现。虚拟app和桌面会话可以进一步由也来自思杰系统的思杰虚拟app和桌面(cvad)来提供。思杰虚拟app和桌面是应用虚拟化解决方案,该解决方案利用从任何设备对虚拟会话(包括虚拟app、桌面和数据会话)的通用访问、加上用于实现可扩展vdi解决方案的选项来增强生产力。例如,虚拟会话可以进一步包括软件即服务(saas)和桌面即服务(daas)会话。
47.参考图3,描绘了云计算环境50,其也可以被称为云环境、云计算或云网络。云计算环境50可以向多个用户或租户提供共享计算服务和/或资源的递送。例如,共享资源和服务可以包括但不限于网络、网络带宽、服务器、处理、存储器、存储装置、应用、虚拟机、数据库、软件、硬件、分析和智能。
48.在云计算环境50中,一个或多个客户端52a
‑
52c(诸如,上面描述的那些)与云网络54通信。云网络54可以包括后端平台,例如服务器、存储装置、服务器群或数据中心。用户或客户端52a
‑
52c可以对应于单个组织/租户或多个组织/租户。更特别地,在一个示例实现方式中,云计算环境50可以提供服务于单个组织的私有云(例如,企业云)。在另一个示例中,云计算环境50可以提供服务于多个组织/租户的社区或公有云。在又另外的实施例中,云计算环境50可以提供混合云,混合云是公有云和私有云的组合。公有云可以包括由第三方向客户端52a
‑
52c或企业/租户所维持的公有服务器。服务器可以异地定位在远程地理位置中或以其它方式定位。
49.云计算环境50可以提供资源池,用以通过多租户环境或多租户模型经由客户端52a
‑
52c来服务于多个用户,其中响应于相应环境内的不同需求来动态地指派和重新指派不同的物理和虚拟资源。多租户环境可以包括能够提供软件、应用或软件应用的单个实例来服务于多个用户的系统或架构。在一些实施例中,云计算环境50可以提供按需自助服务,以跨网络单方面地为多个客户端52a
‑
52c供应计算能力(例如,服务器时间、网络存储)。云计算环境50可以提供响应于来自一个或多个客户端52的不同需求而动态地向外扩展(scale out)或向内扩展(scale in)的弹性。在一些实施例中,计算环境50可以包括或提供监测服务,以监测、控制和/或生成对应于所提供的共享服务和资源的报告。
50.在一些实施例中,云计算环境50可以提供不同类型的云计算服务(例如诸如软件即服务(saas)56、平台即服务(paas)58、基础设施即服务(iaas)60和桌面即服务(daas)62)的基于云的递送。iaas可以指代用户租用在指定时间段期间需要的基础设施资源的使用。iaas提供方可以提供来自大型池的存储、联网、服务器或虚拟化资源,从而允许用户通过根据需要访问更多资源来快速地扩大(scale up)。iaas的示例包括:由华盛顿州西雅图市的amazon.com公司提供的amazon web services;由德克萨斯州圣安东尼奥市的rackspace us公司提供的rackspace cloud;由加利福尼亚州山景城的谷歌公司提供的谷歌计算引擎
(google compute engine);或者由加利福尼亚州圣巴巴拉的 rightscale公司提供的rightscale。
51.paas提供方可以提供由iaas提供的功能,包括例如存储、联网、服务器或虚拟化、以及附加的资源,诸如例如操作系统、中间件或运行时资源。paas的示例包括:由华盛顿州雷蒙德市的微软公司提供的windows azure、谷歌公司提供的谷歌app引擎、以及由加利福尼亚州旧金山市的heroku公司提供的heroku。
52.saas提供方可以提供paas所提供的资源,包括存储、联网、服务器、虚拟化、操作系统、中间件或运行时资源。在一些实施例中,saas提供方可以提供附加的资源,包括例如数据和应用资源。saas的示例包括:由谷歌公司提供的谷歌app、由加利福尼亚州旧金山市的salesforce.com公司提供的salesforce、或者由微软公司提供的office 365。saas的示例还可以包括数据存储提供方,例如由加利福尼亚州旧金山市的dropbox公司提供的dropbox、由微软公司提供的microsoft skydrive、由谷歌公司提供的google drive、或者由加利福尼亚州库比蒂诺的苹果公司提供的apple icloud。
53.与saas类似,daas(其也被称为托管桌面服务)是一种形式的虚拟桌面基础设施(vdi),其中虚拟桌面会话通常与虚拟桌面上使用的app一起作为云服务而被递送。思杰云(citrix cloud)是daas递送平台的一个示例。daas递送平台可以被托管在公有云计算基础设施上,例如诸如来自华盛顿州雷蒙德市的微软公司的azure cloud(本文中为“azure”)、或者由华盛顿州西雅图市的amazon.com公司提供的amazon web services(本文中为“aws”)。在思杰云的情况下,思杰工作空间app可以被用作用于将app、文件和桌面带到一起(无论是场内(on
‑
premises)的还是在云中)以递送统一体验的单入口点。
54.现在将参考图4更详细地讨论由思杰工作空间app提供的统一体验。思杰工作空间app在本文中通常将被称为工作空间app 70。工作空间app 70是用户如何得到对其工作空间资源的访问,工作空间资源的一个类别是应用。这些应用可以是saas app、web app或虚拟app。工作空间app 70还给予用户对其桌面的访问,桌面可以是本地桌面或虚拟桌面。此外,工作空间app 70给予用户对其文件和数据的访问,这些文件和数据可以存储在许多存储库中。例如,文件和数据可以托管在citrix sharefile上,托管在场内网络文件服务器上,或者托管在一些其它云存储提供方(诸如,微软onedrive或谷歌drive box)中。
55.为了提供统一体验,用户需要的所有资源都可以从工作空间app 70定位和访问。工作空间app 70以不同的版本被提供。工作空间app 70的一个版本是用于桌面72的所安装的应用,该应用可以基于windows、mac或linux平台。工作空间app 70的第二个版本是用于移动设备74的所安装的应用,该应用可以基于ios或android平台。工作空间app 70的第三个版本使用超文本标记语言(html)浏览器来向用户提供对其工作空间环境的访问。当用户不想要安装工作空间app或没有安装工作空间app的权利时(诸如当操作公有信息亭76时),使用工作空间app 70的web版本。
56.工作空间app 70的这些不同版本中的每一个可以有利地提供相同的用户体验。这有利地允许用户在不同平台中从客户端设备72移动到客户端设备74到客户端设备76,并且仍然针对其工作空间接收相同的用户体验。客户端设备72、74和76被称为端点。
57.如上所指出的,工作空间app 70支持windows、mac、linux、ios和android平台、以及具有html浏览器(html5)的平台。工作空间app 70合并多个引擎80
‑
90,从而允许用户访
问多种类型的app和数据资源。每个引擎80
‑
90针对特定资源来优化用户体验。每个引擎80
‑
90还向组织或企业提供对用户活动和潜在安全威胁的洞察。
58.嵌入式浏览器引擎80保持saas和web应用被包含在工作空间app 70内,而不是在本地安装且未经管理的浏览器上启动它们。利用嵌入式浏览器,工作空间app 70能够拦截saas和web app中的用户选择的超链接,并且在批准、拒绝或隔离访问之前请求风险分析。
59.高清体验(hdx)引擎82建立与运行在windows或linux操作系统上的虚拟浏览器、虚拟app和桌面会话的连接。利用hdx引擎82,windows和linux资源远程运行,同时显示器在该端点上保持本地。为了提供最佳可能的用户体验,hdx引擎82利用不同的虚拟通道来适应改变的网络状况和应用要求。为了克服高时延或高分组丢失网络,hdx引擎82自动实现优化的传输协议和更好的压缩算法。每个算法针对某种类型的显示(诸如,视频、图像或文本)而被优化。hdx引擎82在应用中标识这些资源的类型,并且将最适当的算法应用于屏幕的该部分。
60.对于许多用户来说,工作空间以数据为中心。内容协作引擎84允许用户将所有数据集成到工作空间中,无论该数据存在于场内还是云中。内容协作引擎84允许管理员和用户创建至公司和用户特定的数据存储位置的一组连接器。例如,这可以包括onedrive、dropbox和场内网络文件共享。用户可以在多个存储库中维持文件,并且允许工作空间app 70将它们整合到单个个性化库中。
61.联网引擎86标识端点或端点上的app是否需要至安全后端资源的网络连接。联网引擎86可以针对整个端点设备自动建立完整的vpn隧道,或者它可以创建app特定的
µ‑
vpn连接。
µ‑
vpn定义了应用和端点设备可以访问哪些后端资源,从而保护后端基础设施。在许多实例中,某些用户活动受益于独特的基于网络的优化。如果用户请求文件副本,则工作空间app 70可以同时自动利用多个网络连接来更快地完成该活动。如果用户发起voip呼叫,则工作空间app 70通过跨多个网络连接复制该呼叫来改进其质量。联网引擎86仅使用首先到达的分组。
62.分析引擎88关于用户的设备、位置和行为进行报告,其中基于云的服务标识任何潜在异常,该潜在异常可能是设备被盗、身份被黑客攻击、或用户准备离开公司的结果。分析引擎88所收集的信息通过自动实现对抗措施来保护公司资产。
63.管理引擎90保持工作空间app 70是当前的(current)。这不仅向用户提供了最新的能力,而且还包括额外的安全性增强。工作空间app 70包括自动更新服务,该服务基于可定制的策略来定期检查并且自动部署更新。
64.现在参考图5,将讨论基于工作空间app 70向用户提供统一体验的工作空间网络环境100。工作空间app 70的桌面、移动和web版本全部与运行在云104中的工作空间体验服务102进行通信。工作空间体验服务102然后经由资源馈送微服务108来拉入所有不同的资源馈送16。也就是说,来自运行在云104中的其它服务的所有不同资源被资源馈送微服务108拉入。不同的服务可以包括虚拟app和桌面服务110、安全浏览器服务112、端点管理服务114、内容协作服务116和访问控制服务118。组织或企业所订阅的任何服务被自动地拉入到工作空间体验服务102中,并且被递送到用户的工作空间app 70。
65.除了云馈送120之外,资源馈送微服务108还可以拉入场内馈送122。云连接器124用于提供正在场内数据中心中运行的虚拟app和桌面部署。桌面虚拟化可以由例如思杰虚
拟app和桌面126、微软rds 128或vmware horizon 130来提供。除了云馈送120和场内馈送122之外,资源馈送微服务108还可以拉入例如来自物联网(iot)设备134的设备馈送132。使用站点聚合以将不同的资源关联到用户的总体工作空间体验中。
66.云馈送120、场内馈送122和设备馈送132各自向用户的工作空间体验提供不同且独特类型的应用。工作空间体验可以支持本地app、saas app、虚拟app和桌面浏览器app、以及存储app。随着馈送继续增加和扩展,工作空间体验能够在用户的总体工作空间中包括附加的资源。这意味着用户将能够接触到他们需要访问的每一个单个应用。
67.仍然参考工作空间网络环境20,将关于如何向用户提供统一体验来描述一系列事件。统一体验开始于:用户使用工作空间app 70以连接到运行在云104内的工作空间体验服务102,并且呈现他们的身份(事件1)。例如,该身份包括用户名和密码。
68.工作空间体验服务102将用户的身份转发给云104内的身份微服务140(事件2)。身份微服务140基于组织的工作空间配置向正确的身份提供方142认证该用户(事件3)。认证可以基于要求部署云连接器146的场内活动目录144。认证还可以基于azure活动目录148或甚至第三方身份提供方150,例如诸如思杰adc或okta。
69.一旦被授权,工作空间体验服务102就向资源馈送微服务108请求授权资源的列表(事件4)。针对每个经配置的资源馈送106,资源馈送微服务108向单点登录微服务152请求身份令牌(事件5)。
70.资源馈送特定的身份令牌被传递到每个资源的认证点(事件6)。场内资源122通过云连接器124来联系。每个资源馈送106利用针对相应身份被授权的资源列表进行回复(事件7)。
71.资源馈送微服务108聚合来自不同资源馈送106的所有项目,并且将它们转发(事件8)到工作空间体验服务102。该用户从工作空间体验服务102中选择资源(事件9)。
72.工作空间体验服务102将该请求转发给资源馈送微服务108(事件10)。资源馈送微服务108向单点登录微服务152请求身份令牌(事件11)。用户的身份令牌被发送到工作空间体验服务102(事件12),其中,启动票证(launch ticket)被生成并且被发送给用户。
73.用户向网关服务160发起安全会话并且呈现该启动票证(事件13)。网关服务160向适当的资源馈送106发起安全会话,并且呈现身份令牌以无缝地认证该用户(事件14)。一旦会话初始化,该用户就能够利用该资源(事件15)。使整个工作空间通过单个访问点或应用来递送有利地提高生产力,并且使用户的一般工作流程合理化。
74.现在参考图6,计算系统200说明性地包括客户端设备201,诸如上面讨论的那些(例如,客户端机器12和客户端52),客户端设备201被配置为基于认证令牌经由网络202(例如,互联网)访问会话,所述认证令牌具有与其相关联的第一和第二认证凭证。更具体地,第一和第二认证凭证彼此不同,诸如例如用户和设备凭证,如下文将进一步讨论的。系统200进一步说明性地包括服务器203,其也可以类似于上述那些,该服务器203被配置为响应于认证令牌而向客户端设备201提供对会话的访问。例如,会话可以是 web 或软件即服务 (saas) 会话、虚拟桌面/app会话等,该会话在一些实施例中可以由服务器 203 提供,但在其它实施例中将被另一服务器或云服务(未显示)提供或托管。
75.现在将在图7中所示的计算系统250的示例实现的情境中进一步描述前述内容,在图7中,客户端设备252(例如,客户端机器12和客户端52)基于连接租契(cl)连接到虚拟计
算会话254。在所示示例中,上述服务器203和连接租契生成功能在云计算服务255(例如,思杰云(citrix cloud))内执行,该云计算服务255说明性地包括云接口256,该云接口256被配置为与客户端设备252接口以用于注册和连接租契生成。在所示示例中,云接口256用思杰工作空间(ws)实现,如上面进一步讨论的,并且客户端设备252正在运行思杰工作空间app(cwa)262,但是在不同实施例中可以使用其它合适的平台。云计算服务255进一步说明性地包括信任根(rot)257(例如,azure key vault)、连接租契颁布服务(clis)258、网关服务259、代理260和数据库261,这将在下面进一步描述。
76.作为背景,连接租契提供长期授权用于建立与虚拟递送器具253(例如,citrix vda)的网络连接以及提供公开资源权利(例如,用户被授权访问的公开应用或桌面)。在所示示例中,与虚拟递送器具253的连接是通过网关263(例如,思杰网关)进行的,并且网关和虚拟递送器具经由云连接器264与云计算服务255通信。由于cl相对长期(例如,基于策略的几个小时到几周),因此攻击机会窗口更长,安全性要求可能更严格。因此,cl可以被加密和签名。也可以撤销 cl 以应对诸如设备被盗、用户帐户泄漏、用户帐户关闭等事件。
77.当端点设备或主机(例如,虚拟递送器具253)关于clis 258或代理 260 在线时,可以应用cl撤销,这不是要求使用 cl,因为 cl 旨在离线模式下使用。因此,高速缓存的 cl撤销列表也可以在网关 263 和虚拟递送器具253 处。本方法有利地允许把不同的认证凭证(例如,用户和设备身份指纹(诸如端点公共密钥的散列))嵌入在认证令牌中以帮助进行以下操作:通过提供cl被最初颁发给的用户的被盗凭证来防止在不同客户端设备252上使用有效cl;通过提供不同有效用户的凭证来防止在不同设备上使用有效cl;以及防止不同的经认证的用户(例如多用户机器上的另一用户)在同一设备上使用 cl(跨会话漏洞)。
78.虽然cl在网络连接和初始会话建立方面提供对资源位置的离线授权访问,但是可能仍然需要对远程会话的用户认证。例如,虚拟递送器具253可能需要用户凭证来将用户登录到虚拟会话中。例如,可能必须向虚拟递送器具253 处的凭证提供方或凭证提供方过滤器提供诸如用户名和密码之类的显式凭证,然后凭证提供方或凭证提供方过滤器将凭证提供给 windows 登录子系统以将用户登录到新的 windows 会话或附加到现有会话。同样,网关263也可能要求用户认证。
79.在没有用户认证sson的情况下,每当用户经由cl连接时将被要求输入他们的凭证,这将有损用户体验。虽然用户凭证可以存储在客户端设备252上,但在没有进一步保护的情况下,这可能使它们容易受到例如来自其他用户和/或来自其它设备的盗窃和重放攻击。另一方面,将凭证存储在云中并使其可取回或可重用(例如,经由指向票务服务(例如,citrix cloud (cc)票务)中存储的凭证的认证令牌)相对更安全。然而,以易于解密的形式将用户凭证存储在云中可能也具有安全性和私密性问题。因此,云存储的凭证通常是短期的,例如几分钟或几小时。然而,这并不与 cl 的使用很好地相符,cl是长期的,例如,提供两周或更长时间内的资源访问而无需重新认证。此外,云存储的凭证可能无法经由云接口 256 直接使用(例如,在思杰工作空间的情况下当工作空间当机或无法从 cwa 访问时)。
80.本文描述的认证方法可以有利地用于各种使用实例中,包括例如从客户端app(例如,cwa)到云计算服务 255 (例如,ws)的sson、clis 258 和 clis 文件同步、公开资源列举、端点设备密钥引导、请求生成cl并将cl同步(下载)到客户端设备201。虽然这些使用实例中的一些可能不要求显式用户凭证,但它们可能仍然要求使用长期令牌,本方法通过基
于多种类型的认证凭证(例如,设备和用户凭证)提供认证令牌来实现这一点。
81.另外参考图8a
‑
8b的序列流程图280,现在将描述根据示例实现方式的系统250的操作。为简单起见,在以下序列图中,系统 255 的统一认证平台云元件将被称为思杰身份平台 (cip) 282,又名思杰联合身份管理系统,包括(思杰旧版)递送服务(ds)auth。cip 提供其自己的身份提供方 (idp),但也可以与第三方 idp 或其它身份系统集成。cip 基于 openid connect (oidc)。为了向 cip 进行认证,cwa显示 cip 登录页面或第三方 idp 登录页面的 web 视图。ds auth 是 oidc 的依赖方(rp)。
82.递送服务认证令牌(dsautht)、cl、多态autht(多态认证令牌)、mini
‑
cl(具有状态重定向目标的验证会话结果)和网关263连接票证(gct)包括如下统一格式的用户和设备身份指纹:用户身份——用户通用声明(开放标识符(oid),安全性标识符(sid),upn电子邮件);客户标识符(id);和设备身份——设备id、客户端设备(端点)公共密钥指纹(散列)。此外,cl、多态autht、mini
‑
cl、gct 可以采用以下形式的签名 json 对象:清单(明文)——包括用户
‑
设备身份;有效载荷(可能会根据类型进行加密);针对实体的加密的对称密钥(如果有效负载已加密的话);以及清单上的签名加上有效载荷。dsautht 是主令牌,除非另外指定为提供对特定服务的受约束访问的辅助令牌(例如 dsautht
‑
ws
‑
clis)。通常,用户通用声明包括几种不同类型的标识符。使用的主要和全局唯一标识符是 oid。提供其余标识符是为了与旧系统兼容或用于附加检查,例如电子邮件地址。
83.刷新令牌指向云存储的dsautht,因此也是用户
‑
设备绑定的。因此,用户
‑
设备身份还将上述对象绑定在一起,并允许用户和设备声明的统一应用。设备载体令牌用于前端认证,并且其形式为:由 rot 257 签名的{设备id,端点公共密钥}。
84.在序列流程图280中,用户和设备身份都被证实。如果客户端设备252未注册,则可以利用设备注册服务283执行单独的流程以获得签名的设备载体令牌,如下文将进一步讨论的。还可以执行具有随机数的质询
‑
响应以确保客户端设备252是载体令牌的真正拥有者。在一些实施例中,如果需要,随机数的大小可以保持为 16 字节以防止恶意主机要求对电子邮件、文档等进行签名,但是也可以使用其它大小。可以联系设备注册服务283以帮助确保客户端设备252仍然有效(未被撤销)。在用户认证之后,凭证可以以相对较短的票证保留策略(例如,24小时)存储在cc票务284中。凭证被加密但可容易地被云计算服务255解密。对称密钥和cc票证被存储为dsautht的一部分。dsautht是利用用户和设备身份创建的。该功能是在认证管理器 (am) 281 的帮助下实现的。
85.另外参考图9的序列流程图290,cip 282将cwa 262重定向到设备注册服务283,设备注册服务283是openid connect (oidc)的依赖方(rp)。设备注册服务283使用服务密钥(未示出)利用信任根(rot)257进行引导。cwa 262 生成私有/公共密钥对,例如,利用硬件支持的私有密钥 (tpm)。要求用户认证来注册客户端设备252。设备注册服务283从cwa获得设备信息,生成设备id并将客户端设备252注册到云存储中,这里云存储是数据库261。设备注册服务283创建载体令牌并利用 rot 257 对其进行签名如下:由 rot 签名的{设备id, 端点公共密钥} 。载体令牌被返回给cwa 262,在那里它被存储在客户端设备 252。
86.在所示示例中,出于弹性原因,例如,如果设备注册服务283在验证请求期间当机,则载体令牌不存储在云计算服务255中。载体令牌是长期的,并且用于前端认证,例如,为了获得dsautht,如上所述那样。载体令牌可以被设备注册服务283有效地无效/撤销,例如,当
262端点非直接地恢复。此外,网关263和代理260具有对长期凭证块的读取访问权。此外,网关263和虚拟递送器具253可以在成功安全连接之后解密有效载荷。如果 cc票务284 或代理 260 当机,则cl连接可能会成功但sson可能会失败,并且例如可能要求用户手动输入凭证。
95.另外参考图13a
‑
13b的序列流程图330,现在描述另一种创建多态autht的类似方法,但在该方法中,凭证由端点(客户端设备252)提供,该端点可以联合域(并且例如cwa 262经由凭证提供方/凭证提供方过滤器/网络重定向器 287获得凭证),或者凭证可以直接注入 cwa 262中 (例如,经由快速连接 sdk 287)。在这种方法中,cwa 262 向 clis 258 提供凭证以创建多态 autht。如上所述,clis 258检查用户和设备声明。同样,可以基于 dsautht 中的用户
‑
设备身份来执行检查。
96.可以如下面那样创建多态autht。在清单(明文)中:用户身份设置为null——不假定身份来自 dsautht ,因为凭证是用户提供的;客户id;设备身份
‑
设备 id、端点公共密钥指纹(散列)。多态autht进一步包括:有效载荷(加密)——类型=用户凭证,值=凭证块;利用客户端设备公共密钥加密的{autht
‑
symmetric密钥};和签名。
97.与上述方法类似,cwa 262安全地存储多态autht并且例如在经由安全连接与网关263/虚拟递送代理253建立信任之后由cwa在客户端设备252处恢复它。但是,如果需要,cwa 262 也可以在没有此安全连接的情况下恢复凭证,因为 cwa 可以访问其私有密钥,并且不要求其它任何内容来解密凭证。可以选择使用附加的安全性保护来保护对私有密钥的访问,例如个人识别码 (pin) 或生物测定。
98.这种方法的益处是使用有效载荷加密和基于tls/dtls 的安全连接来保护凭证免受网络嗅探器/代理“中间人”攻击的附加安全性。这种类型的多态autht的弹性益处是其独立于cc 票务284和代理 260,因为只要网关 263 启动,网关 263 和虚拟递送器具253 就可以在完全云中断模式下执行 sson。
99.另外参考图14的序列流程图340,cwa 262向云接口256(ws)发出的列举公开资源的请求涉及dsautht
‑
ws
‑
clis的使用。如上所述那样,ws 256检查用户和客户端设备252声明。同样,检查是基于dsautht 中的用户
‑
设备身份执行的。ws 256 使用用户身份来列举来自代理 260的公开资源。
100.cwa 262经由ws向clis 258发出的引导密钥的请求要求使用dsautht
‑
ws
‑
clis和端点公共密钥。ws检查用户和设备声明,如上面进一步讨论的那样。cwa262接收回其由 rot 257 签名的端点公共密钥、由 rot 签名的 clis 258 公共密钥和 rot 公共密钥。在一些实现方式中,可以在单独的请求(粒度 api)之后接收由 rot 257 签名的 clis 公共密钥和 rot 公共密钥。
101.cwa 262向clis 258发出的开始创建cl的租契回拨(call home)请求要求使用dsautht
‑
ws
‑
clis和端点公共密钥。ws 256 检查用户和设备声明,如上面进一步讨论的那样。同样,检查是基于dsautht 中的用户
‑
设备身份执行的。clis 258使用用户身份来请求连接租契服务 (cls) 生成原始 cl,以及从ws
‑
store 服务获得优先级顺序。
102.cl生成可以如下。清单(明文)可以包括:用户身份
‑
用户通用声明(oid、sid、upn、电子邮件);客户id;和设备身份
‑
设备id、端点公共密钥指纹(散列)。cl
‑
symmetric密钥可以用端点公共密钥加密,所以端点可以解密它。
103.cwa 262利用dsautht
‑
secondary
‑
sync初始化cwa 262 cl 同步引擎。cwa cl 同步引擎使用 dsautht
‑
secondary
‑
sync 调用 clis 文件同步服务器,以执行 cl从用户远程虚拟文件夹到本地文件夹的单向同步。如上所述,clis文件同步服务器检查用户和设备声明。同样,检查是基于dsautht中的用户
‑
设备身份执行的。
104.客户端设备252和虚拟递送器具253之间的安全连接可以按照两个跳跃执行:首先从客户端设备到网关263,然后从网关到虚拟递送器具。在每个跳跃中,一旦两个实体彼此信任,发送方就利用接收方的公共密钥重新加密cl和多态autht对称密钥,因此接收方可以解密它们。网关263可以检查用户和设备声明,因为用户和设备身份被包括在cl清单中。代理260(处于代理在线模式)或虚拟递送器具253(处于代理中断模式)也可以检查用户和设备声明。
105.如果validatesessionresult是redirect
‑
target(例如,将客户端设备252重定向到另一个虚拟递送器具253),则代理260生成的新mini cl包括来自cl的用户
‑
设备身份。网关263可选地使用多态autht来执行认证,就像cl一样基于以下内容验证多态autht:签名、日期;多态autht中的端点公共密钥散列与先前存储的客户端公共密钥的版本匹配;检查用户和设备声明
‑
用户和设备身份在 autht清单中;并解密和使用多态autht。
106.在直接连接中,虚拟递送器具253使用与端点公共密钥相同的存储的客户端公共密钥来验证cl和多态autht中的指纹。然而,在网关263连接中,客户端公共密钥可能是网关公共密钥,因此虚拟递送器具252不能将其用于验证。相反,cl验证公共密钥 = 端点公共密钥从客户端设备252经由网关263被中继到虚拟递送器具253。因此,在网关253连接中,虚拟递送器具253使用cl验证公共密钥来验证 cl 和多态 autht 中的指纹。网关263的公共密钥由clis 258签名并且其拥有实体是(client pub key.owningentity == gateway)。clis 258 没有签名任何其它实体作为网关 263。
107.在一些实现方式中,虚拟递送器具253可以使用cl
‑
>资源密钥和多态autht来开始虚拟会话并使用户登录,如下文将进一步讨论的。虚拟递送器具253创建资源连接票证并将其与会话全局唯一标识符(guid)一起存储。资源连接票证允许以后连接到预先授权的会话。资源连接票证还指向存储和验证的多态 autht。
108.网关263利用来自cl和validatesessionresult mini
‑
cl的信息创建网关连接票证(gct),如下所示。清单(明文)包括:期满时间
‑
与 cl 期满时间一致;用户身份
‑
用户通用声明(oid、sid、upn、电子邮件);客户id;和设备身份
‑
设备 id、端点公共密钥指纹。cgt还可以包括:有效载荷(明文)
‑
资源位置、vda ip和端口等;签名
‑
利用gw pop 私有密钥对 gct 进行签名。在一些实施例中,网关263存在点(pop)可以共享公共密钥,这允许gct在故障转移场景中被任何其它网关验证。在其它实施例中,gct本身可以包含由信任根 (rot) 257 签名的签名网关 pop公共密钥。因此,将rot公共密钥分发到所有网关 pop(而不是共享它们的公共钥匙的网关pop)可能就足够了。客户端设备252使用gct和资源连接票证来分别授权网关263和虚拟递送器具253处的连接。
109.现在另外参考图15a
‑
15b的序列流程图350,假设多态autht如上文所讨论的那样已经先前被验证。虚拟递送器具253利用autht
‑
symmetric密钥解密多态autht有效载荷。如果多态autht类型是“cip”,则虚拟递送器具253调用代理260,代理260调用cc票务284来解析cc票证并返回加密的凭证块。代理260和网关263有权恢复长期cc票证。
(clo)模式时类型fas的多态autht(包含fas认证令牌)将仍然在vda针对sson起作用。vds 涉及云组件,例如 ws、代理260、cc票务284 等。但是,如果vds处于 clo 模式并且 fas认证令牌生命周期已期满,则它将不再起作用。通常,当正在使用 fas时,最终用户不可能经由logonui交互式地登录到虚拟递送器具253。这意味着当 vds 进入clo模式时,最终用户将仍然能够在fas认证令牌的剩余生命周期持续时间内向已公开的桌面和应用进行认证。这对fas认证令牌更新过程有影响。例如,fas认证令牌可以在其生命周期的一半处更新,以保证在vds进入clo模式的情况下在fas认证令牌生命周期的一半内向 vda 进行认证的能力。
118.因为fas认证令牌是长期的,所以也可能存在撤销它们的方法。当vds进入clo 模式时,fas认证令牌可能仍然有效和可用。这意味着撤销过程可能涉及(一个或多个) fas 服务器。(一个或多个)fas服务器可以维持颁发的fas认证令牌的内容,例如,以允许根据用户设备身份撤销它们。
119.上述方法可以有利地提供各种技术优势,包括在完全或部分云中断模式下的安全离线认证sson。此外,可以提供不同类型凭证的安全管理,以及利用用户
‑
设备凭证、长期刷新令牌、cl 和多态auth sson 令牌的认证。此外,用户和设备声明可以有利地应用于在线和离线模式。应该注意的是,虽然上述示例是在连接租契实现方式的情境中,但多态认证令牌方法也可以用于非连接租契实现方式中。换句话说,无论客户端是否使用连接租契配置来连接到会话/公开资源,都可以使用认证令牌来提供对会话的访问。
120.现在转向图16的流程图360,在块361处开始,相关方法说明性地包括:存储客户端设备201的认证令牌(块362),所述认证令牌具有与其相关联的第一和第二认证凭证;以及,在块363,与服务器203协作以基于认证令牌访问会话,如上面进一步讨论的那样。图16的方法说明性地在块364处结束。
121.以下示例是进一步的示例实施例,从这些示例实施例中,其它排列和配置对于技术人员来说将是显而易见的。
122.示例1是计算设备,包括:存储器和处理器,所述处理器被配置为:与存储器协作以存储认证令牌,所述认证令牌具有与其相关联的第一和第二认证凭证,其中第一和第二认证凭证彼此不同;以及与服务器协作以基于所述认证令牌来访问会话。
123.示例2包括示例1的主题,其中第一和第二认证凭证中的一个包括用户凭证。
124.示例3包括示例2的主题,其中用户凭证被存储在客户端设备处的存储器中。
125.示例4包括示例2的主题,其中用户凭证被存储在具有认证服务的虚拟智能卡中。
126.示例5包括示例1的主题,其中第一和第二认证凭证中的一个包括与客户端设备相关联的公共密钥。
127.示例6包括示例5的主题,其中公共密钥由信任根(rot)签名。
128.示例7包括示例1的主题,其中处理器与服务器协作以进一步基于分配给计算设备的连接租契来访问会话。
129.示例8包括示例1的主题,其中第一和第二认证凭证存储在不同的位置。
130.示例9包括示例1的主题,其中认证令牌包括多态认证令牌。
131.示例10包括示例1的主题,其中会话包括web应用会话、软件即服务(saas)应用会话、虚拟应用会话和虚拟桌面会话中的至少一个。
132.示例11是一种方法,包括:存储客户端设备的认证令牌,所述认证令牌具有与其相
关联的第一和第二认证凭证,其中第一和第二认证凭证彼此不同;以及在客户端设备处,与服务器协作以基于所述认证令牌访问会话。
133.示例12包括示例11的主题,其中第一和第二认证凭证中的一个包括用户凭证。
134.示例13包括示例11的主题,其中第一和第二认证凭证中的一个包括与客户端设备相关联的公共密钥。
135.示例14包括示例11的主题,其中客户端设备与服务器协作以进一步基于分配给计算设备的连接租契来访问所述会话。
136.示例15包括示例11的主题,其中第一和第二认证凭证存储在不同的位置。
137.示例 16 涉及一种计算设备,该计算设备包括存储器和处理器,所述处理器被配置为:与所述存储器协作以将认证令牌存储在所述存储器中,所述认证令牌具有与其相关联的第一和第二认证凭证,其中第一和第二认证凭证彼此不同;以及与服务器协作以基于分配给计算设备的连接租契基于认证来访问会话。
138.示例17包括示例16的主题,其中第一和第二认证凭证中的一个包括用户凭证。
139.示例18包括示例16的主题,其中第一和第二认证凭证中的一个包括与客户端设备相关联的公共密钥。
140.示例19包括示例18的主题,其中公共密钥由信任根(rot)签名。
141.示例20包括示例16的主题,其中认证令牌包括多态认证令牌。
142.如本领域技术人员在阅读上述公开后将领会的,本文中描述的各个方面可以体现为设备、方法或计算机程序产品(例如,具有用于执行所指出的操作或步骤的计算机可执行指令的非暂时性计算机可读介质)。因此,那些方面可以采取完全硬件实施例、完全软件实施例、或组合了软件和硬件方面的实施例的形式。
143.此外,这种方面可以采取由一个或多个计算机可读存储介质存储的计算机程序产品的形式,该计算机可读存储介质具有体现在存储介质中或其上的计算机可读程序代码或指令。可以利用任何合适的计算机可读存储介质,包括硬盘、cd
‑
rom、光学存储设备、磁性存储设备和/或其任何组合。
144.受益于前述描述和相关联附图中呈现的教导的本领域技术人员将想到许多修改和其它实施例。因此,要理解的是,前述内容不限于示例实施例,并且修改和其它实施例旨在被包括在所附权利要求的范围内。
再多了解一些
本文用于企业家、创业者技术爱好者查询,结果仅供参考。