CN111566619A - 虚拟桌面中的本地映射账户 - Google Patents
虚拟桌面中的本地映射账户 Download PDFInfo
- Publication number
- CN111566619A CN111566619A CN201980005117.XA CN201980005117A CN111566619A CN 111566619 A CN111566619 A CN 111566619A CN 201980005117 A CN201980005117 A CN 201980005117A CN 111566619 A CN111566619 A CN 111566619A
- Authority
- CN
- China
- Prior art keywords
- vda
- agent
- application
- user account
- client device
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 39
- 229940124447 delivery agent Drugs 0.000 claims abstract description 15
- 230000015654 memory Effects 0.000 claims description 35
- 238000004891 communication Methods 0.000 claims description 14
- 238000007726 management method Methods 0.000 abstract description 58
- 238000013507 mapping Methods 0.000 abstract description 9
- 239000003795 chemical substances by application Substances 0.000 description 86
- 230000008569 process Effects 0.000 description 23
- 238000012545 processing Methods 0.000 description 16
- 238000005192 partition Methods 0.000 description 15
- 230000003993 interaction Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000010354 integration Effects 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000001276 controlling effect Effects 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- VBMOHECZZWVLFJ-GXTUVTBFSA-N (2s)-2-[[(2s)-6-amino-2-[[(2s)-6-amino-2-[[(2s,3r)-2-[[(2s,3r)-2-[[(2s)-6-amino-2-[[(2s)-2-[[(2s)-6-amino-2-[[(2s)-2-[[(2s)-2-[[(2s)-2,6-diaminohexanoyl]amino]-5-(diaminomethylideneamino)pentanoyl]amino]propanoyl]amino]hexanoyl]amino]propanoyl]amino]hexan Chemical compound NC(N)=NCCC[C@@H](C(O)=O)NC(=O)[C@H](CCCCN)NC(=O)[C@H](CCCCN)NC(=O)[C@H]([C@@H](C)O)NC(=O)[C@H]([C@H](O)C)NC(=O)[C@H](CCCCN)NC(=O)[C@H](C)NC(=O)[C@H](CCCCN)NC(=O)[C@H](C)NC(=O)[C@H](CCCN=C(N)N)NC(=O)[C@@H](N)CCCCN VBMOHECZZWVLFJ-GXTUVTBFSA-N 0.000 description 1
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 1
- 240000002853 Nelumbo nucifera Species 0.000 description 1
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 108010068904 lysyl-arginyl-alanyl-lysyl-alanyl-lysyl-threonyl-threonyl-lysyl-lysyl-arginine Proteins 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本文中所描述的方面涉及允许作为远程访问或基于云的网络环境的一部分的客户端装置将外部用户身份映射到桌面和应用程序的方法、装置和系统。可以在虚拟递送代理上动态生成本地用户账户。所述本地用户账户到外部身份的映射可使用签名令牌来保护并且由代理机维护,所述代理机从所述虚拟递送代理分配用于将特定应用程序部署到所述客户端装置的资源。这允许删除对活动目录的任何从属性,以维护用户身份或联合登录服务,极大地简化了所述系统内用户身份的管理,并且实现跨客户端装置的更好的兼容性。
Description
相关申请的交叉引用
本申请要求于2018年11月2日提交的美国非临时专利申请第16/178,803号的优先权,其内容通过引用以其全文结合在此。
技术领域
本文中所描述的方面总体上涉及计算机和计算机网络。更具体地,本文中所描述的方面涉及连接到远程访问或基于云的网络环境中的资源并对其进行访问。
背景技术
远程访问环境和基于云的环境可以为装置提供对连接资源的访问。例如,资源可用于启动和执行可由装置使用的应用程序(例如,桌面),就好像装置本身正在执行应用程序一样。虚拟环境服务提供商可以为用户装置提供身份和访问管理,以访问基于云的环境中的各种服务和资源。许多组织和个人依赖于企业应用程序商店作为远程选择和下载应用程序的方式。重要的是确保用户访问这些企业应用程序商店的有效登录过程。然而,可能难以促进在混合云环境中操作的企业应用程序商店和用户装置之间的域传递认证。
发明内容
下文呈现本文所描述的各种方面的简化概述。此概述并非广泛综述,而且并非旨在标识必需或重要要素或划定权利要求的范围。以下概述仅以简化形式呈现一些概念,作为对下文提供的更详细描述的介绍性序言。
为了克服在阅读和理解本公开后将变得显而易见的其它限制,本文中所描述的方面涉及允许作为远程访问或基于云的网络环境的一部分的客户端装置将外部用户身份映射到桌面和应用程序的方法、装置和系统。可以在客户端装置和/或虚拟递送代理上动态生成本地用户账户。本地用户账户到外部身份的映射可使用签名令牌来保护并且由代理机维护,所述代理机从虚拟递送代理分配用于将特定应用程序部署到客户端装置的资源。
基于本公开的讨论将理解这些和额外方面。
附图说明
可通过参考结合附图的以下描述来获取对本文中所描述的方面和其优势的更完全理解,附图中相似附图标号指示相似特征,并且在附图中:
图1描绘可根据本文中描述的一个或多个说明性方面使用的说明性计算机系统架构。
图2描绘可根据本文中描述的一个或多个说明性方面使用的说明性远程访问系统架构。
图3描绘可根据本文中描述的一个或多个说明性方面使用的说明性虚拟化(管理程序)系统架构。
图4描绘可根据本文中描述的一个或多个说明性方面使用的说明性基于云的系统架构。
图5描绘可根据本文中所描述的一个或多个说明性方面使用的说明性企业移动性管理系统。
图6描绘可根据本文中所描述的一个或多个说明性方面使用的另一个说明性企业移动性管理系统。
图7描绘可根据本文中所描述的一个或多个方面使用的用于连接到远程访问或基于云的网络环境中的资源的示例框图。
图8是描绘根据本文中所描述的方面的用于生成用户账户的过程的流程图。
图9是描绘根据本文中所描述的方面用于建立虚拟桌面会话的过程的流程图。
图10是描绘根据本文中所描述的方面的用于与高可用性代理建立虚拟桌面会话的过程的流程图。
图11是描绘根据本文中所描述的各方面的用于单点登录到虚拟桌面会话的过程的流程图。
具体实施方式
在各种实施例的以下描述中,参考了上文指出且形成本发明的部分的附图,并且在附图中以说明方式示出其中可实践本文所描述的各方面的各种实施例。应理解,在不脱离本文所描述的范围的情况下,可利用其它实施例,并且可进行结构和功能修改。各个方面能够有其它实施例,并且能以各种不同方式实践或执行。
作为对以下更详细描述的主题的概述,本文中所描述的方面涉及连接到远程访问或基于云的网络环境中的资源并对其进行访问。本文中所描述的额外方面涉及远程访问或基于云的网络环境中的用户简档的管理。
由华盛顿州雷德蒙德(Redmond,WA)的微软公司(Microsoft Corp.)提供的活动目录(Active Directory)服务在Windows网络中提供各种与域相关的服务。同样由微软公司提供的活动目录联合服务(Federation Service)提供对窗口网络内的系统和应用程序的单点登录访问。活动目录联合服务利用多个域中的多个账户,并且提供这些不同域账户之间的映射。然而,设置身份联合极其复杂,并且会遇到互操作性问题,特别是对于不将Windows作为操作系统使用的装置。许多虚拟桌面环境要求将所有客户端、代理机和虚拟递送代理加入单个Windows域,从而导致复杂的目录从属性。当代理机托管在第三方服务器系统(例如,云)上而不是与Windows目录一起托管在本地时,尤其如此。
根据本文中所描述的方面的系统和方法提供了用于将外部用户身份映射到桌面和应用程序的机制。在各种实施例中,在虚拟递送代理上动态生成的本地用户账户经由签名令牌映射到在代理机上维护的外部身份。这允许删除对活动目录的任何从属性,以维护用户身份或联合登录服务。可以利用任意用户目录,并且可以以安全的方式为虚拟递送代理机上的目录动态生成用户账户。通过利用签名令牌,可以消除活动目录安全从属性,以便在用户的上下文中报告用户身份。另外,令牌的使用消除了对信任由虚拟递送代理机提供的用户身份的需要,从而为系统提供了更高的安全性,因为即使虚拟递送代理机已经受到损害,也可以通过多个会话安全地确认用户身份。
应理解,本文中所用措词和术语用于描述的目的,不应视为具有限制性。实际上,应对本文中使用的短语和术语给予其最广泛的解释和含义。对“包含”和“包括”以及其变体的使用意在涵盖其后所列项目和其等同物以及额外项目和其等同物。对术语“安装”、“连接”、“联接”、“定位”、“接合”和类似术语的使用意在包含直接和间接这两种安装、连接、联接、定位和接合。
计算架构
计算机软件、硬件和网络可用于各种不同的系统环境,包含独立的、联网的、远程访问(例如,允许装置远程访问桌面或其它应用程序)、虚拟化的和/或基于云的环境等。图1示出可用以在独立式和/或联网环境中实施本文所描述的一个或多个说明性方面的系统架构和数据处理装置的一个示例。各种网络节点103、105、107和109可通过互联网等广域网(WAN)101互连。还可以或替代地使用其它网络,包含私有内联网、公司网络、局域网(LAN)、城域网(MAN)、无线网络、个人网络(PAN)等等。网络101用于说明的目的,并且可由更少或额外计算机网络替换。局域网133可具有任何已知LAN拓扑中的一个或多个,并且可使用各种不同协议中的一种或多种,例如以太网。装置103、105、107、109和其它装置(未示出)可通过双绞线、同轴线缆、光纤、无线电波或其它通信介质连接到所述网络中的一个或多个。
如本文中所使用且在图中描绘的术语“网络”不仅指其中远程存储装置通过一个或多个通信路径联接在一起的系统,还指可不时地联接到具有存储能力的此类系统的独立装置。因此,术语“网络”不仅包含“物理网络”,还包含“内容网络”,其中包含驻存在所有物理网络中的归因于单个实体的数据。
部件可包含数据服务器103、网页服务器105和客户端计算机107、109。数据服务器103提供对用于执行本文描述的一个或多个说明性方面的数据库和控制软件的总体访问、控制和管理。数据服务器103可连接到网页服务器105,用户通过所述网页服务器与请求的数据交互和获得请求的数据。替代地,数据服务器103可充当网页服务器自身并且直接连接到互联网。数据服务器103可通过局域网133、广域网101(例如,互联网)通过直接或间接连接或通过某一其它网络连接到网页服务器105。用户可使用远程计算机107、109与数据服务器103交互,例如使用网页浏览器来通过由网页服务器105托管的一个或多个外露网站连接到数据服务器103。客户端计算机107、109可与数据服务器103配合使用以访问其中存储的数据,或可用于其它目的。例如,用户可以从客户端装置107使用Internet浏览器和/或通过执行在计算机网络(例如Internet)上与Web服务器105和/或数据服务器103通信的软件应用程序访问Web服务器105。
服务器和应用程序可在相同物理机器上组合,并且保留单独的虚拟或逻辑地址,或可驻存于单独的物理机器上。图1仅示出可使用的网络架构的一个示例,并且所属领域的技术人员应了解,所用的具体网络架构和数据处理装置可变化,且对于其提供的功能来说是次要的,如本文进一步描述。例如,由网页服务器105和数据服务器103提供的服务可在单个服务器上组合。
每个部件103、105、107、109可以是任一类型的计算机、服务器或数据处理装置。数据服务器103例如可包含控制数据服务器103的总体操作的处理器111。数据服务器103还可包含随机存取存储器(RAM)113、只读存储器(ROM)115、网络接口117、输入/输出接口119(例如键盘、鼠标、显示器、打印机等)和存储器121。输入/输出(I/O)119可包含各种接口单元和驱动器以用于读取、写入、显示和/或打印数据或文件。存储器121还可存储用于控制数据处理装置103的总体操作的操作系统软件123、用于发指令给数据服务器103以执行本文中描述的各方面的控制逻辑125以及其它应用程序软件127,所述其它应用程序软件提供可以或可能不结合本文中描述的方面使用的辅助、支持和/或其它功能。所述控制逻辑125在本文中还可称作数据服务器软件125。数据服务器软件125的功能可指基于编码到控制逻辑125中的规则而自动做出的操作或决策、通过用户对系统提供输入而手动做出的操作或决策,和/或基于用户输入(例如,查询、数据更新等)的自动处理的组合。
存储器121还可存储用于进行本文中描述的一个或多个方面的数据,所述存储器包含第一数据库129和第二数据库131。在一些实施例中,第一数据库129可以包含第二数据库131(例如,作为单独的表、报告等)。即,取决于系统设计,信息可存储在单个数据库中,或分到不同逻辑、虚拟或物理数据库中。装置105、107和109可具有如关于装置103所描述的类似或不同的架构。所属领域的技术人员应了解,本文中描述的数据处理装置103(或装置105、107、109)的功能可散布在多个数据处理装置上以例如将处理负荷分布在多个计算机上,从而基于地理位置、用户访问级别、服务质量(QoS)等来分隔事务。
一个或多个方面可由本文中描述的一个或多个计算机或其它装置执行的例如一个或多个程序模块中的计算机可用或可读数据和/或计算机可执行指令来体现。一般来说,程序模块包含在由计算机或其它装置中的处理器执行时执行特定任务或实施特定抽象数据类型的例程、程序、对象、部件、数据结构等。模块可用随后被编译供执行的源代码编程语言来编写,或可用例如(但不限于)超文本标记语言(HTML)或可扩展标记语言(XML)的脚本语言来编写。计算机可执行指令可存储在非易失性存储装置等计算机可读介质上。可利用任何合适的计算机可读存储介质,包含硬盘、CD-ROM、光学存储装置、磁性存储装置和/或其任何组合。另外,表示本文中描述的数据或事件的各种传输(非存储)媒体可按穿过信号传导介质的电磁波形式传送于源与目的地之间,所述信号传导介质例如金属线、光纤和/或无线传输介质(例如,空气和/或空间)。本文中描述的各种方面可体现为方法、数据处理系统或计算机程序产品。因此,各种功能可全部或部分地以软件、固件和/或硬件或硬件等同物体现,例如,集成电路、现场可编程门阵列(FPGA)等。可使用特定数据结构实施本文中描述的一个或多个方面,并且预期此类数据结构在本文中描述的计算机可执行指令和计算机可用数据的范围内。
另外参考图2,可在远程访问环境中实施本文中描述的一个或多个方面。图2描绘可根据本文所描述的一个或多个说明性方面使用的在说明性计算环境200中的包含计算装置201的示例系统架构。计算装置201可用作单服务器或多服务器桌面虚拟化系统(例如远程访问或云系统)中的服务器206a,所述桌面虚拟化系统配置成向客户端访问装置提供虚拟机。计算装置201可具有用于控制服务器206a和其相关联部件的总体操作的处理器203,所述相关联部件包含RAM 205、ROM 207、输入/输出(I/O)模块209和存储器215。
I/O模块209可包含计算装置201的用户可借以提供输入的鼠标、小键盘、触摸屏、扫描仪、光学读取器和/或触控笔(或其它输入装置),并且还可包含用于提供音频输出的一个或多个扬声器以及用于提供文本、视听和/或图形输出的一个或多个视频显示装置。软件可存储在存储器215和/或其它存储装置内以提供指令到处理器203,以将计算装置201配置成专用计算装置以便执行本文所描述的各种功能。例如,存储器215可存储由计算装置201使用的软件,例如操作系统217、应用程序219和相关联数据库221。
计算装置201可在联网环境中操作,所述联网环境支持与终端240(也称为客户端装置)等一个或多个远程计算机的连接。终端240可以是个人计算机、移动装置、笔记本电脑、平板计算机或服务器,其包含上文关于计算装置103或201所描述的许多或全部元件。图2中描绘的网络连接包含局域网(LAN)225和广域网(WAN)229,但也可包含其它网络。当用于LAN联网环境中时,计算装置201可通过网络接口或适配器223连接到LAN 225。当用在WAN联网环境中时,计算装置201可包含调制解调器或其它广域网接口227以在计算机网络230(例如互联网)等WAN 229上建立通信。应了解,所示网络连接是说明性的,并且可使用其它方式在计算机之间建立通信链路。计算装置201和/或终端240还可以是包含电池、扬声器和天线(未示出)等各种其它部件的移动终端(例如移动电话、智能电话、个人数字助理(PDA)、笔记本电脑等)。
本文中描述的方面也可与众多其它通用或专用计算系统环境或配置一起操作。可适合与本文中描述的方面一起使用的其它计算系统、环境和/或配置的示例包含但不限于个人计算机、服务器计算机、手持型或膝上型装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费型电子装置、网络个人计算机(PC)、微型计算机、大型计算机、包含以上系统或装置中的任一种的分布式计算环境,等等。
如图2中所示,一个或多个客户端装置240可与一个或多个服务器206a到206n(在本文中统称为“服务器206”)通信。在一个实施例中,计算环境200可包含安装在服务器206与客户端装置240之间的网络设备。所述网络设备可管理客户端/服务器连接,并且在一些情况下可使客户端连接在多个后端服务器206当中实现负载均衡。
在一些实施例中,客户端装置240可以称为单个客户端装置240或单个客户端装置群组240,而服务器206可以称为单个服务器206或单个服务器群组206。在各种实施例中,单个客户端装置240与多于一个服务器206通信。在许多实施例中,单个服务器206与多于一个客户端装置240通信。在若干实施例中,单个客户端装置240与单个服务器206通信。
在一些实施例中,客户端装置240可以由以下非穷尽性术语中的任一个引用:客户端装置;客户端;客户端计算机;客户端装置;客户端计算装置;本地机器;远程机器;客户端节点;端点;或端点节点。在一些实施例中,服务器206可以由以下非穷尽性术语中的任一个引用:服务器;本地机器;远程机器;服务器场或主机计算装置。
在一个实施例中,客户端装置240可以是虚拟机。虚拟机可以是任何虚拟机,而在一些实施例中,虚拟机可以是由1型或2型管理程序管理的任何虚拟机,所述管理程序例如,由Citrix系统、IBM、VMware开发的管理程序,或任何其它管理程序。在一些方面,虚拟机可由管理程序管理,而在其它方面,虚拟机可由服务器206上执行的管理程序或客户端240上执行的管理程序来管理。
一些实施例包含客户端装置240,其显示由服务器206或其它远程定位的机器上远程执行的应用程序生成的应用程序输出。在许多实施例中,客户端装置240可以执行虚拟机接收器程序(例如,虚拟递送代理)或应用程序,以在应用程序窗口、浏览器或其它输出窗口中显示输出。在一个示例中,应用程序是桌面,而在其它示例中,应用程序是生成或呈现桌面的应用程序。桌面可包含图形壳层,其向操作系统的实例提供用户界面,本地和/或远程应用程序可集成在所述操作系统中。如本文中所用的应用程序是在已加载操作系统(任选地,还有桌面)的实例之后执行的程序。
在一些实施例中,服务器206使用远程呈现协议或其它程序将数据发送到精简客户端或在客户端上执行的远程显示应用程序,以呈现由服务器206上执行的应用程序生成的显示输出。精简客户端或远程显示协议可以是以下非穷尽性协议列表中的任一个:由佛罗里达州劳德代尔堡(Fort Lauderdale,FL)的思杰系统公司(Citrix Systems,Inc.)开发的独立计算架构(ICA)协议;或由华盛顿州雷德蒙德的微软公司(Microsoft Corporation)制造的远程桌面协议(RDP)。
远程计算环境可包含多于一个服务器206a到206n,使得服务器206a到206n例如在云计算环境中一起逻辑分组为服务器集群206。服务器集群206可包含地理上分散但逻辑分组在一起的服务器206,或彼此位置接近同时逻辑分组在一起的服务器206。在一些实施例中,服务器集群206内的地理上分散的服务器206a到206n可使用WAN(广)、MAN(都市)或LAN(本地)进行通信,其中不同地理区域可表征为:不同大陆;大陆的不同区域;不同国家;不同州;不同城市;不同园区;不同房间;或前述地理位置的任何组合。在一些实施例中,可将服务器集群206作为单个实体管理,而在其它实施例中,服务器集群206可包含多个服务器集群。
在一些实施例中,服务器集群可包含执行大体上类似类型的操作系统平台(例如,WINDOWS、UNIX、LINUX、iOS、ANDROID、SYMBIAN等)的服务器206。在其它实施例中,服务器集群206可包含执行第一类型的操作系统平台的一个或多个服务器的第一群组,以及执行第二类型的操作系统平台的一个或多个服务器的第二群组。
服务器206可按需要配置为任一类型的服务器,例如,文件服务器、应用程序服务器、网页服务器、代理服务器、设备、网络设备、网关、应用程序网关、网关服务器、虚拟化服务器、部署服务器、安全套接层(SSL)VPN服务器、防火墙、网页服务器、应用程序服务器,或作为主应用程序服务器、执行活动目录的服务器,或执行提供防火墙功能、应用功能或负载均衡功能的应用加速程序的服务器。还可使用其它服务器类型。
一些实施例包含第一服务器206a,其接收来自客户端装置240的请求,将请求转发到第二服务器206b(未示出),并且通过来自第二服务器206b(未示出)的响应对由客户端装置240生成的请求进行响应。第一服务器206a可获取可用于客户端装置240的应用程序的列举,以及与托管所述应用程序列举内标识的应用程序的应用程序服务器206相关联的地址信息。接着,第一服务器206a可使用网页界面呈现对客户端请求的响应,并且与客户端240直接通信以向客户端240提供对所标识应用程序的访问权。一个或多个客户端240和/或一个或多个服务器206可以通过网络230传输数据。
图3示出说明性桌面虚拟化系统的高层级架构。如所示,桌面虚拟化系统可以是单服务器或多服务器系统或云系统,其包含配置成将虚拟桌面和/或虚拟应用程序提供到一个或多个客户端访问装置240的至少一个虚拟化服务器301。如本文所使用,桌面是指其中可托管和/或执行一个或多个应用程序的图形环境或空间。桌面可包含图形壳层,其向操作系统的实例提供用户界面,本地和/或远程应用程序可集成在所述操作系统中。应用程序可包含在已加载操作系统(任选地,还有桌面)的实例之后执行的程序。操作系统的每一实例可以是物理的(例如每一装置一个操作系统)或虚拟的(例如单个装置上运行的OS的许多实例)。每个应用程序可在本地装置上执行,或在位于远处的装置(例如,远程)上执行。
计算机装置301可配置为虚拟化环境中的虚拟化服务器,例如单服务器、多服务器和/或云计算环境。图3所示的虚拟化服务器301可部署为图2所示服务器206的一个或多个实施例,和/或由所述一个或多个实施例或由其它已知计算装置来实施。虚拟化服务器301中包含硬件层,所述硬件层可包含一个或多个物理磁盘304、一个或多个物理装置306、一个或多个物理处理器308和一个或多个物理存储器316。在一些实施例中,固件312可存储在物理存储器316中的存储器元件内,并且可由物理处理器308中的一个或多个执行。虚拟化服务器301还可包含操作系统314,所述操作系统可存储在物理存储器316中的存储器元件中并且由物理处理器308中的一个或多个执行。另外,管理程序302可存储在物理存储器316中的存储器元件中,并且可由物理处理器308中的一个或多个执行。
一个或多个虚拟机332A-C(统称332)可在物理处理器308中的一个或多个上执行。每个虚拟机332可具有虚拟磁盘326A-C和虚拟处理器328A-C。在一些实施例中,第一虚拟机332A可使用虚拟处理器328A执行包含工具堆栈324的控制程序320。控制程序320可称作控制虚拟机、Dom0、域0或用于系统管理和/或控制的其它虚拟机。在一些实施例中,一个或多个虚拟机332B-C可使用虚拟处理器328B-C执行客户机操作系统330A-B。
虚拟化服务器301可包含硬件层310,所述硬件层具有与虚拟化服务器301通信的一个或多个硬件。在一些实施例中,硬件层310可包含一个或多个物理磁盘304、一个或多个物理装置306、一个或多个物理处理器308和一个或多个物理存储器316。物理部件304、306、308和316可包含例如上文所描述的任一部件。物理装置306可包含例如网络接口卡、视频卡、键盘、鼠标、输入装置、监测器、显示装置、扬声器、光学驱动器、存储装置、通用串行总线连接、打印机、扫描仪、网元(例如,路由器、防火墙、网络地址转换器、负载均衡器、虚拟私有网络(VPN)网关、动态主机配置协议(DHCP)路由器等)或连接到虚拟化服务器301或与所述虚拟化服务器通信的任何装置。硬件层310中的物理存储器316可包含任何类型的存储器。物理存储器316可存储数据,并且在一些实施例中,可存储一个或多个程序或可执行指令集。图3示出固件312存储在虚拟化服务器301的物理存储器316内的实施例。存储在物理存储器316中的程序或可执行指令可由虚拟化服务器301的一个或多个处理器308执行。
虚拟化服务器301还可包含管理程序302。在一些实施例中,管理程序302可以是由虚拟化服务器301上的处理器308执行以创建并管理任何数目个虚拟机332的程序。管理程序302可称作虚拟机监控器或平台虚拟化软件。在一些实施例中,管理程序302可以是可执行指令与监测在计算机器上执行的虚拟机的硬件的任何组合。管理程序302可以是2型管理程序,其中所述管理程序在操作系统314内执行,所述操作系统在虚拟化服务器301上执行。然后,虚拟机可以在高于管理程序302的级别上执行。在一些实施例中,2型管理程序可在用户的操作系统的情境内执行,使得2型管理程序与用户的操作系统交互。在其它实施例中,虚拟化环境中的一个或多个虚拟化服务器301可改为包含1型管理程序(未示出)。1型管理程序可通过直接访问硬件层310内的硬件和资源而在虚拟化服务器301上执行。即,虽然2型管理程序302通过主机操作系统314访问系统资源,如所示,但1型管理程序可在无主机操作系统314的情况下直接访问所有系统资源。1型管理程序可直接在虚拟化服务器301的一个或多个物理处理器308上执行,并且可包含存储在物理存储器316中的程序数据。
在一些实施例中,以模拟能够直接访问系统资源的操作系统330或控制程序320的任何方式,管理程序302可将虚拟资源提供到在虚拟机332上执行的操作系统330或控制程序320。系统资源可以包含但不限于物理装置306、物理磁盘304、物理处理器308、物理存储器316以及包含在虚拟化服务器301的硬件层310中的任何其它部件。管理程序302可用于模拟虚拟硬件、分割物理硬件、虚拟化物理硬件和/或执行提供对计算环境的访问权的虚拟机。在其它实施例中,管理程序302可控制在虚拟化服务器301上执行的虚拟机332的处理器调度和存储器分割。管理程序302可包含:加利福尼亚州帕洛阿尔托(Palo Alto,California)的VMWare,Inc.制造的管理程序;XENPROJECT管理程序,其为在开源XenProject.org团体监督下开发的开源产品;由微软提供的HyperV、VirtualServer或虚拟PC管理程序,或其它管理程序。在一些实施例中,虚拟化服务器301可执行创建虚拟机平台的管理程序302,客户机操作系统可在所述虚拟机平台上执行。在这些实施例中,虚拟化服务器301可称作主机服务器。此类虚拟化服务器的示例是由佛罗里达州劳德代尔堡的思杰系统公司提供的XENSERVER。
管理程序302可创建一个或多个虚拟机332B-C(统称332),客户机操作系统330在所述虚拟机中执行。在一些实施例中,管理程序302可加载虚拟机图像以创建虚拟机332。在其它实施例中,管理程序302可执行虚拟机332内的客户机操作系统330。在其它实施例中,虚拟机332可执行客户机操作系统330。
除创建虚拟机332之外,管理程序302还可控制至少一个虚拟机332的执行。在其它实施例中,管理程序302可以向至少一个虚拟机332呈现由虚拟化服务器301提供的至少一种硬件资源(例如,硬件层310内可用的任何硬件资源)的抽象。在其它实施例中,管理程序302可控制虚拟机332访问虚拟化服务器301中可用的物理处理器308的方式。控制对物理处理器308的访问可包含确定虚拟机332是否应当具有对处理器308的访问权以及物理处理器能力被呈现给虚拟机332的方式。
如图3中所示,虚拟化服务器301可托管或执行一个或多个虚拟机332。虚拟机332是可执行指令集,其在由处理器308执行时可模仿物理计算机的操作,使得虚拟机332可极类似于物理计算装置来执行程序和进程。虽然图3示出虚拟化服务器301托管三个虚拟机332的实施例,但在其它实施例中,虚拟化服务器301可托管任何数目的虚拟机332。在一些实施例中,管理程序302可为每个虚拟机332提供可用于该虚拟机332的物理硬件、存储器、处理器和其它系统资源的独特虚拟视图。在一些实施例中,所述独特虚拟视图可基于虚拟机权限、将策略引擎应用于一个或多个虚拟机标识符、访问虚拟机的用户、在虚拟机上执行的应用程序、虚拟机访问的网络或任何其它所要准则中的一个或多个。例如,管理程序302可创建一个或多个不安全虚拟机332和一个或多个安全虚拟机332。可阻止不安全虚拟机332访问可准许安全虚拟机332访问的资源、硬件、存储器位置和程序。在其它实施例中,管理程序302可为每个虚拟机332提供可供此虚拟机332使用的物理硬件、存储器、处理器和其它系统资源的大体上类似的虚拟视图。
每个虚拟机332可以包含虚拟磁盘326A-C(通常为326)和虚拟处理器328A-C(通常为328)。在一些实施例中,虚拟磁盘326是虚拟化服务器301的一个或多个物理磁盘304或虚拟化服务器301的一个或多个物理磁盘304的一部分的虚拟化视图。物理磁盘304的虚拟化视图可由管理程序302生成、提供和管理。在一些实施例中,管理程序302为每个虚拟机332提供物理磁盘304的独特视图。因此,在这些实施例中,包含在每个虚拟机332中的特定虚拟磁盘326相比于其它虚拟磁盘326可以是独特的。
虚拟处理器328可以是虚拟化服务器301的一个或多个物理处理器308的虚拟化视图。在一些实施例中,物理处理器308的虚拟化视图可由管理程序302生成、提供和管理。在一些实施例中,虚拟处理器328具有至少一个物理处理器308的大体上所有相同特性。在其它实施例中,虚拟处理器308提供物理处理器308的修改视图,使得虚拟处理器328的至少一些特性不同于对应物理处理器308的特性。
另外参考图4,可在基于云的环境中实施本文中描述的一些方面。图4示出云计算环境(或云系统)400的示例。如图4中所见,客户端计算机411到414可与云管理服务器410通信以访问云系统的计算资源(例如,主机服务器403a到403b(本文统称为“主机服务器403”)、存储资源404a到404b(本文统称为“存储资源404”)和网元405a到405b(本文统称为“网络资源405”))。
管理服务器410可在一个或多个物理服务器上实施。管理服务器410可运行例如佛罗里达州劳德代尔堡的思杰系统公司的CLOUDPLATFORM或OPENSTACK等等。管理服务器410可管理各种计算资源,包含云硬件和软件资源,例如,主机计算机403、数据存储装置404和联网装置405。云硬件和软件资源可包含私有和/或公共部件。例如,云可配置为待由一个或多个特定客户或客户端计算机411到414和/或在私有网络上使用的私有云。在其它实施例中,公共云或混合公共-私有云可由其它客户在开放式或混合网络上使用。
管理服务器410可配置成提供用户接口,云操作员和云客户可通过所述用户接口与云系统400交互。例如,管理服务器410可为一组应用程序编程接口(API)和/或一个或多个云操作员控制台应用程序(例如,基于网络的或独立的应用程序)提供用户接口以允许云操作员管理云资源、配置虚拟化层、管理客户账户以及执行其它云管理任务。管理服务器410还可包含具有用户接口的一组API和/或一个或多个客户控制台应用程序,所述用户接口配置成通过客户端计算机411到414接收来自终端用户的云计算请求,例如创建、修改或毁坏云内的虚拟机的请求。客户端计算机411到414可通过互联网或某一其它通信网络连接到管理服务器410,并且可请求访问由管理服务器410管理的计算资源中的一个或多个。响应于客户端请求,管理服务器410可包含配置成基于客户端请求而选择和布建云系统的硬件层中的物理资源的资源管理器。例如,云系统的管理服务器410和额外部件可配置成在网络(例如,互联网)上为客户端计算机411到414处的客户布建、创建和管理虚拟机和其操作环境(例如,管理程序、存储资源、由网元提供的服务等),从而为客户提供计算资源、数据存储服务、联网能力以及计算机平台和应用程序支持。云系统还可配置成提供各种特定服务,包含安全系统、开发环境、用户接口等。
某些客户端411到414可相关,例如,代表同一最终用户或附属于同一公司或组织的不同用户创建虚拟机的不同客户端计算机。在其它示例中,某些客户端411到414可不相关,例如附属于不同公司或组织的用户。对于不相关客户端,可使任何一个用户的关于虚拟机或存储的信息对其它用户隐藏。
现参考云计算环境的物理硬件层,可用性区401到402(或区)可指物理计算资源的并置集合。可将区与计算资源的整个云中的其它区在地理上分开。例如,区401可以是位于加利福尼亚的第一云数据中心,而区402可以是位于佛罗里达的第二云数据中心。管理服务器410可位于一个可用性区处,或位于单独的位置。每个区可包含通过网关与管理服务器410等在所述区外的装置介接的内网。云的最终用户(例如,客户端411到414)可能察觉到或可能察觉不到区之间的区别。例如,最终用户可请求创建具有指定量的存储器、处理力和网络能力的虚拟机。管理服务器410可响应用户的请求,并且可在用户不知晓是使用来自区401还是区402的资源创建虚拟机的情况下分配资源以创建虚拟机。在其它示例中,云系统可允许最终用户请求将虚拟机(或其它云资源)分配在特定区中或区内的特定资源403到405上。
在此示例中,每个区401到402可包含各种物理硬件部件(或计算资源)403到405的布置,例如,物理托管资源(或处理资源)、物理网络资源、物理存储资源、交换器和可用于向客户提供云计算服务的额外硬件资源。云区401到402中的物理托管资源可包含一个或多个计算机服务器403,例如上文所描述的虚拟化服务器301,其可配置成创建和托管虚拟机实例。云区401或402中的物理网络资源可包含包括被配置成向云客户提供网络服务的硬件和/或软件的一个或多个网元405(例如,网络服务提供商),所述硬件和/或软件例如防火墙、网络地址转换器、负载均衡器、虚拟私有网络(VPN)网关、动态主机配置协议(DHCP)路由器等。云区401到402中的存储资源可包含存储磁盘(例如,固态驱动器(SSD)、磁性硬盘等)和其它存储装置。
图4中所示的示例云计算环境还可以包含虚拟化层(例如,如图1-图3中所示),所述虚拟化层具有被配置成创建和管理虚拟机以及使用云中的物理资源向客户提供其它服务的额外硬件和/或软件资源。虚拟化层可包含管理程序,如上文在图3中所描述,所述管理程序与其它部件一起提供网络虚拟化、存储虚拟化等。虚拟化层可作为与物理资源层分开的层,或可与物理资源层共享一些或全部相同硬件和/或软件资源。例如,虚拟化层可包含与物理计算资源一起安装在每个虚拟化服务器403中的管理程序。替代地,可使用已知云系统,例如,WINDOWS AZURE(华盛顿州雷德蒙德的微软公司)、AMAZON EC2(华盛顿州西雅图的亚马逊公司(Amazon.com Inc.))、IBM BLUE CLOUD(纽约州阿蒙克的IBM公司)等等。
企业移动性管理架构
图5表示用在“自带装置”(BYOD)环境中的企业移动性技术架构500。所述架构使移动装置502的用户能够从移动装置502访问企业或个人资源,以及将移动装置502用于个人用途。用户可使用由用户购买的移动装置502或由企业提供给用户的移动装置502访问此类企业资源504或企业服务508。用户可仅将移动装置502用于业务用途,或用于业务和个人用途。移动装置502可运行iOS操作系统、Android操作系统等等。企业可选择实施策略来管理移动装置502。可通过防火墙或网关实施策略,其方式使得移动装置502可被标识、保护或予以安全验证并且获得对企业资源(例如504和508)的选择性或全部访问权。所述策略可以是移动装置管理策略、移动应用程序管理策略、移动数据管理策略,或移动装置、应用程序和数据管理策略的某种组合。通过应用移动装置管理策略管理的移动装置502可称作已登记装置。
在一些实施例中,移动装置502的操作系统可分成受管理分割区510和未管理分割区512。受管理分割区510可有策略被应用以保护受管理分割区510上运行的应用程序和受管理分割区中存储的数据。受管理分割区510上运行的应用程序可以是安全应用程序。在其它实施例中,所有应用程序可根据与所述应用程序分开接收到的一个或多个策略文件的集合来执行,并且所述一个或多个策略文件限定一个或多个安全参数、特征、资源限制和/或当所述应用程序在装置502上执行时由移动装置管理系统施行的其它访问控制。通过根据其相应策略文件操作,可允许或限制每个应用程序与一个或多个其它应用程序和/或资源通信,由此创建虚拟分割区。因此,如本文所使用,分割区可指存储器的物理分割部分(物理分割区)、存储器的逻辑分割部分(逻辑分割区)和/或因如本文所描述跨多个应用程序施行一个或多个策略和/或策略文件所创建的虚拟分割区(虚拟分割区)。通过在受管理应用程序上实施策略,这些应用程序可能会被限制为只能与其它受管理应用程序和受信任的企业资源通信,从而创建未管理应用程序和装置无法访问的虚拟分割区。
安全应用程序可以是电子邮件应用程序、网页浏览应用程序、软件即服务(software-as-a-service,SaaS)访问应用程序、Windows应用访问应用程序等。安全应用程序可以是安全本机应用程序514、由安全应用程序启动器518执行的安全远程应用程序522、由安全应用程序启动器518执行的虚拟化应用程序526等等。安全本机应用程序514可由安全应用程序包装器520包装。安全应用程序包装器520可包含整合策略,当安全本机应用程序514在移动装置502上执行时,在移动装置502上执行所述整合策略。安全应用程序包装器520可包含元数据,所述元数据使移动装置502上运行的安全本机应用程序514指向企业处托管的资源(例如504和508),安全本机应用程序514可能需要所述资源来完成在执行安全本机应用程序514时请求的任务。可在安全应用程序启动器518内执行由安全应用程序启动器518执行的安全远程应用程序522。由安全应用程序启动器518执行的虚拟化应用程序526可利用移动装置502上、企业资源504处的资源等等。由安全应用程序启动器518执行的虚拟化应用程序526在移动装置502上使用的资源可包含用户交互资源、处理资源等等。用户交互资源可用以收集和传输键盘输入、鼠标输入、相机输入、触觉输入、音频输入、视觉输入、手势输入等等。处理资源可用于呈现用户界面、处理从企业资源504接收的数据等等。由安全应用程序启动器518执行的虚拟化应用程序526在企业资源504处使用的资源可包含用户界面生成资源、处理资源等等。用户界面生成资源可用以汇编用户界面、修改用户界面、刷新用户界面等等。处理资源可用于创建信息、读取信息、更新信息、删除信息等等。例如,虚拟化应用程序526可记录与图形用户界面(GUI)相关联的用户交互,并且将所述交互传达到服务器应用程序,其中服务器应用程序将把用户交互数据用作服务器上操作的应用程序的输入。在此类布置中,企业可选择维护服务器侧的应用程序,以及与所述应用程序相关联的数据、文件等。虽然企业可根据本文原理通过确保一些应用程序部署在移动装置502上来选择“调动”所述应用程序,但也可针对某些应用程序选择此布置。例如,虽然可确保一些应用程序用在移动装置502上,但其它应用程序可能未准备或可能不适合部署在移动装置502上,因此企业可选择通过虚拟化技术向移动用户提供对未准备的应用程序的访问。作为另一示例,企业可具有含有大型复杂数据集的大型复杂应用程序,其中可能极其难以或者不期望定制用于移动装置502的应用程序,因此企业可选择通过虚拟化技术提供对应用程序的访问。作为又一示例,企业可具有维护高度受保护的数据(例如,人力资源数据、客户数据、工程数据)的应用程序,企业可认为所述高度受保护的数据即便对于受保护的移动环境也是过于敏感的,因此企业可选择使用虚拟化技术来准许对此类应用程序和数据的移动访问。企业可选择在移动装置502上提供充分受保护且功能齐全的应用程序以及虚拟化应用程序526,以允许访问被认为在服务器侧操作更恰当的应用程序。在实施例中,虚拟化应用程序526可将移动装置502上的一些数据、文件等存储在一个安全存储位置中。例如,企业可选择允许在移动装置502上存储某些信息而不准许其它信息。
如本文所描述,结合虚拟化应用程序526,移动装置502可具有被设计成呈现GUI且接着记录用户与GUI的交互的虚拟化应用程序526。虚拟化应用程序526可将用户交互传达到服务器侧,以由服务器侧应用程序用作与所述应用程序的用户交互。作为响应,服务器侧的应用程序可将新GUI传输回到移动装置502。例如,新GUI可以是静态页面、动态页面、动画等,由此提供对远程定位的资源的访问。
安全应用程序514可访问存储在移动装置502的受管理分割区510中的安全数据容器528中的数据。安全数据容器528中受保护的数据可由安全本机应用程序514、安全应用程序启动器518所执行的安全远程应用程序522、安全应用程序启动器518所执行的虚拟化应用程序526等访问。存储于安全数据容器528中的数据可包含文件、数据库等等。存储于安全数据容器528中的数据可包含限于特定安全应用程序530的数据、安全应用程序532当中共享的数据等等。限于安全应用程序的数据可包含安全的通用数据534和高度安全的数据538。安全的通用数据可使用强的加密形式,例如高级加密标准(AES)128位加密等,而高度安全的数据538可使用极强的加密形式,例如AES 256位加密。在接收到来自装置管理器524的命令后,就可从移动装置502删除存储在安全数据容器528中的数据。安全应用程序(例如514、522和526)可具有双模式选项540。双模式选项540可向用户呈现选项以在无保护或未管理模式中操作受保护应用程序。在无保护或未管理模式中,安全应用程序可访问存储在移动装置502的未管理分割区512上的无保护数据容器542中的数据。存储在无保护数据容器中的数据可以是个人数据544。存储在无保护数据容器542中的数据还可由无保护应用程序546访问,所述无保护应用程序在移动装置502的未管理分割区512上运行。当从移动装置502删除存储在安全数据容器528中的数据时,存储在无保护数据容器542中的数据可保持在移动装置502上。企业可能想要从移动装置502删除选定的或所有由企业拥有、授权或控制的数据、文件和/或应用程序(企业数据),同时留下或以其它方式保留由用户拥有、授权或控制的个人数据、文件和/或应用程序(个人数据)。此操作可称作选择性擦除。在企业和个人数据根据本文所描述的方面布置的情况下,企业可执行选择性擦除。
移动装置502可连接到企业处的企业资源504和企业服务508,连接到公共互联网548,等等。移动装置502可通过虚拟私有网络连接来连接到企业资源504和企业服务508。虚拟专用网络连接,也称为microVPN或特定于应用程序的VPN,可以特定于特定应用程序(如microVPN 550所示)、特定装置、移动装置上的特定安全区域(如O/S VPN 552所示)等。例如,移动装置502的受保护区域中的每个包装应用程序可通过专用VPN访问企业资源,使得将基于与应用程序相关联的属性、可能结合用户或装置属性信息而准予对VPN的访问。虚拟私有网络连接可携载微软交换(Microsoft Exchange)业务、微软活动目录(MicrosoftActive Directory)业务、超文本传输协议(HTTP)业务、安全超文本传输协议(HTTPS)业务、应用程序管理业务等。虚拟私有网络连接可支持并实现单点登录认证过程554。单点登录过程可允许用户提供认证证书的单个集合,接着通过认证服务558来验证所述认证证书。认证服务558接着可准予用户访问多个企业资源504,而不需要用户将认证证书提供给每个个别企业资源504。
虚拟私有网络连接可由访问网关560建立和管理。访问网关560可包含管理、加速和改进企业资源504递送到移动装置502的性能增强特征。访问网关560还可将业务从移动装置502重新路由到公共互联网548,从而使移动装置502能够访问在公共互联网548上运行的公开可用和无保护应用程序。移动装置502可通过传输网络562连接到访问网关560。传输网络562可以使用一种或多种传输协议,并且可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、私有网络等。
企业资源504可包含电子邮件服务器、文件共享服务器、SaaS应用程序、网页应用程序服务器、Windows应用程序服务器等。电子邮件服务器可包含交换服务器、Lotus Notes服务器等等。文件共享服务器可包含ShareFile服务器等等。SaaS应用程序可包含Salesforce等等。Windows应用程序服务器可包含建构来提供预期在本地Windows操作系统等上运行的应用程序的任何应用程序服务器。企业资源504可以是基于场所的资源、基于云的资源等等。移动装置502可直接或通过访问网关560来访问企业资源504。移动装置502可通过传输网络562访问企业资源504。
企业服务508可包含认证服务558、威胁检测服务564、装置管理器服务524、文件共享服务568、策略管理器服务570、社交整合服务572、应用程序控制器服务574等等。认证服务558可包含用户认证服务、装置认证服务、应用程序认证服务、数据认证服务等。认证服务558可使用凭证。所述凭证可通过企业资源504等存储在移动装置502上。存储在移动装置502上的凭证可存储于移动装置502上的加密位置中,所述凭证可暂时存储在移动装置502上以在认证时等情况下使用。威胁检测服务564可包含入侵检测服务、未授权的访问尝试检测服务等等。未授权的访问尝试检测服务可包含对装置、应用程序、数据等的未授权尝试访问。装置管理服务524可包含配置、布建、安全、支持、监测、报告和停用服务。文件共享服务568可包含文件管理服务、文件存储服务、文件协作服务等等。策略管理器服务570可包含装置策略管理器服务、应用程序策略管理器服务、数据策略管理器服务等。社交整合服务572可包含联系人整合服务、协作服务、与Facebook、Twitter和LinkedIn等社交网络的整合,等等。应用程序控制器服务574可包含管理服务、布建服务、部署服务、指派服务、撤销服务、包装服务等。
企业移动性技术架构500可包含应用程序商店578。应用程序商店578可包含未包装应用程序580、预包装应用程序582等。应用程序可从应用程序控制器574充入应用程序商店578中。应用程序商店578可由移动装置502通过访问网关560、通过公共互联网548等访问。应用程序商店578可具有直观且易于使用的用户界面。
软件开发工具包584可使用户能够通过如先前在本说明书中所描述对应用程序进行包装来保护用户所选的应用程序。接着,可通过使用应用程序控制器574将已使用软件开发工具包584包装的应用程序充入应用程序商店578中来使所述应用程序可供移动装置502使用。
企业移动性技术架构500可包含管理和分析能力588。管理和分析能力588可提供关于使用资源的方式、使用资源的频率等的信息。资源可包含装置、应用程序、数据等。使用资源的方式可包含哪些装置下载哪些应用程序、哪些应用程序访问哪些数据,等等。使用资源的频率可包含应用程序被下载的频率、应用程序访问特定数据集的次数等。
图6是另一说明性企业移动性管理系统600。为简单起见,省略上文参考图5所描述的移动性管理系统500的一些部件。图6中描绘的系统600的架构在许多方面类似于上文参考图5所描述的系统500的架构,并且可包含上文未提到的额外特征。
在此情况下,左侧表示具有客户端代理604的已登记移动装置602,所述移动装置与网关服务器606(其包含访问网关和应用程序控制器功能)交互以访问各种企业资源608和服务609,例如交换、Sharepoint、公钥基础设施(PKI)资源、Kerberos资源、颁证服务,如在右侧上方所示。虽然未具体示出,但移动装置602还可与企业应用程序商店(StoreFront)交互以选择和下载应用程序。网关服务器606还可以提供代理服务(例如,代理机),所述代理服务能够认证用户账户、选择用于启动的资源和/或执行由客户端装置使用的应用程序。
客户端代理604充当在企业数据中心中托管的Windows应用程序/桌面的UI(用户界面)中间物,所述Windows应用程序/桌面使用高清用户体验(HDX)/ICA显示远程协议来访问。客户端代理604还支持移动装置602上的本机iOS或Android应用程序等本机应用程序的安装和管理。例如,上图所示的受管理应用程序610(邮件、浏览器、包装的应用程序)都是在移动装置602上本地执行的本机应用程序。此架构的客户端代理604和应用程序管理框架用以提供策略驱动管理能力和例如与企业资源/服务608的连接性和SSO(单点登录)等特征。客户端代理604处置对企业的主要用户认证,通常是对具有SSO到其它网关服务器部件的访问网关(AG)606的主要用户认证。客户端代理604从网关服务器606获得策略以控制移动装置602上的受管理应用程序610的行为。
本机应用程序610与客户端代理604之间的安全进程间通信(IPC)链路612表示管理信道,其可允许客户端代理供应待由“包装”每个应用程序的应用程序管理框架614施行的策略。IPC信道612还可允许客户端代理604供应证书和认证信息,从而实现到企业资源608的连接性和SSO。最后,IPC信道612可允许应用程序管理框架614调用由客户端代理604实施的用户接口功能,例如在线和离线认证。
客户端代理604与网关服务器606之间的通信基本上是管理信道从包装每个本机受管理应用程序610的应用程序管理框架614的扩展。应用程序管理框架614可向客户端代理604请求策略信息,所述客户端代理继而可向网关服务器606请求策略信息。应用程序管理框架614可请求认证,并且客户端代理604可登录网关服务器606的网关服务部分(也称为NETSCALER ACCESS GATEWAY)。客户端代理604还可在网关服务器606上呼叫支持服务,所述网关服务器606可产生输入资料以导出用于本地数据库616的加密密钥,或者可提供客户端证书,所述客户端证书可实现对PKI保护资源的直接认证。
应用程序管理框架614“包装”每个受管理应用程序610。这可通过显式建构步骤或通过后建构处理步骤来并入。应用程序管理框架614可在应用程序610的首次启动后与客户端代理604“配对”以初始化安全IPC信道612并获得用于此应用程序的策略。应用程序管理框架614可施行策略的本地适用的相关部分,例如客户端代理登录从属性以及一些限制可如何使用本地OS服务或其可如何与受管理应用程序610交互的遏制策略。
应用程序管理框架614可使用客户端代理604在安全IPC信道612上提供的服务以促进认证和内网访问。针对私有和共享数据库616(容器)的密钥管理也可通过受管理应用程序610与客户端代理604之间的适当交互来进行管理。在策略允许的情况下,库616仅可在线上认证之后可用,或仅可在离线认证之后可用。库616的首次使用可能需要在线认证,并且离线访问可能最多限于在再次需要在线认证之前的策略刷新周期。
对内部资源的网络访问可从个别受管理应用程序610通过访问网关606直接发生。在各种实施例中,访问网关606被称为代理、代理机或代理网关。应用程序管理框架614可负责代表每个受管理应用程序610来协调网络访问。客户端代理604可通过提供在线上认证之后获得的适当的限时辅助证书来促进这些网络连接。可使用多个模式的网络连接,例如反向web代理连接和端对端VPN式隧道618。
邮件和浏览器受管理应用程序610具有特殊状态,并且可使用可能通常不可用于任意包装应用程序的设施。例如,邮件应用程序610可以使用特殊的后台网络访问机制,所述机制允许邮件应用程序610在延长的周期内访问交换服务器608,而无需每次都进行重新认证。浏览器应用程序610可使用多个私有数据库616来分隔不同种类的数据。
此架构可支持各种其它安全特征的并入。例如,在一些情况下,网关服务器606(包含其网关服务)可能不需要验证活动目录(AD)口令。可让企业来判断在一些情况下是否可将AD口令用作一些用户的认证因素。在用户在线或离线(即,连接或未连接到网络)的情况下,可使用不同认证方法。
设置认证是这样一种特征:其中网关服务器606可标识允许具有对需要强认证的高度分类数据的访问权的受管理本机应用程序610,并且确保仅在执行适当认证后才准许访问这些应用程序,即使这意味着用户在先前较弱等级的登录后需要重认证也如此。
这种解决方案的另一安全特征是移动装置602上的数据库616(容器)的加密。库616可被加密,以使得包含文件、数据库和配置的所有装置上数据受到保护。对于在线库,可将密钥存储在服务器(网关服务器606)上,而对于离线库,密钥的本地副本可受到用户口令或生物特征识别验证保护。如果或当数据在移动装置602上本地存储在安全容器616中时,可优选利用最低限度的AES 256加密算法。
还可实施其它安全容器特征。例如,可包含记录特征,其中可记录在受管理应用程序610内部发生的安全事件并将其报告到后端。可支持数据擦除,例如,如果或当受管理应用程序610检测到篡改时,可用随机数据改写相关联的加密密钥,从而在文件系统上不留下用户数据被破坏过的提示。截屏保护可以是另一特征,其中应用程序可防止任何数据存储于截屏中。例如,可将密钥窗口的隐藏性质设置成YES。这可使当前显示于屏幕上的任何内容都被隐藏,从而产生其中任何内容通常会驻存的空白截屏。
可例如通过防止任何数据例如通过将其复制或将其发送到外部应用程序而在本地传送到应用程序容器外部来防止本地数据传送。键盘高速缓存特征可用以针对敏感文本框停用自动校正功能。SSL凭证验证可以是可操作的,因此应用程序专门验证服务器SSL凭证,而非将凭证存储于密钥链中。可使用加密密钥生成特征,使得使用由用户供应的密码或生物特征识别数据来生成用于加密移动装置602上的数据的密钥(如果需要离线访问)。如果不需要离线访问,则可将其与随机生成且存储于服务器侧的另一密钥进行异或运算。密钥导出函数可操作,使得从用户口令生成的密钥使用KDF(密钥导出函数,尤其是基于口令的密钥导出函数2(PBKDF2))而非创建其密码散列。后者使密钥易受蛮力或字典式攻击。
此外,可在加密方法中使用一个或多个初始化向量。初始化向量将使相同加密数据的多个副本产生不同密文输出,从而防止重放和密码分析攻击。这还将防止攻击者使用被盗的加密密钥解密任何数据。此外,可使用认证,然后解密,其中仅在用户已在应用程序内认证后才解密应用程序数据。另一个特征可能与存储器中的敏感数据有关,所述敏感数据仅在需要时才保留在存储器中(而不是磁盘中)。例如,可在登录之后从存储器擦除登录证书,并且不存储面向对象的C语言实例变量内部的加密密钥和其它数据,因为它们可能易于被引用。实际上,可针对这些特征手动分配存储器。可实施不活动超时,其中在不活动的策略限定周期之后,终止用户会话。
可以其它方式防止来自应用程序管理框架614的数据泄漏。例如,如果或当将受管理应用程序610置于后台时,则可以在预定(可配置)时间之后清除存储器。当在后台运行时,可获取上一次显示的应用程序屏幕的快照以稳固前台运行进程。屏幕截图可以包含机密数据,并且在各种实施例中被清除。
另一个安全特征可以涉及使用OTP(一次性口令)620而不使用目录622口令来访问一个或多个应用程序。在一些情况下,一些用户不知道(或不准许知道)其目录口令,因此这些用户可使用OTP 620认证,例如通过使用像SecurID的硬件OTP系统(OTP还可由不同供应商提供,例如Entrust或Gemalto)。在一些情况下,在用户通过用户ID认证之后,可将带有OTP 620的文本发送到用户。在一些情况下,这可仅针对在线使用而实施,其中提示是单个字段。
对于通过企业策略准许离线使用的那些受管理应用程序610,可实施离线口令以用于离线认证。例如,企业可能想要以此方式访问StoreFront。在此情况下,客户端代理604可能需要用户设置自定义离线口令,并且不使用目录口令。网关服务器606可提供策略来控制和施行关于例如由标准Windows服务器口令复杂度要求所描述的最小长度、字符类别组成和口令期限的口令标准,但这些要求可修改。
另一个特征可以涉及为某些应用程序610启用客户端侧凭证作为辅助证书以用于各种目的,例如经由应用程序管理框架微VPN特征访问PKI保护的网络资源。例如,受管理应用程序610可利用此类凭证。在此情况下,可支持基于凭证的认证,其中来自客户端代理604的凭证可由网关服务器606检索并且用于密钥链中。每个受管理应用程序610可具有一个相关联客户端凭证,其由网关服务器606中限定的标签标识。
网关服务器606可与企业专用网页服务交互以支持客户端凭证的发布,从而允许针对内部PKI保护资源认证相关受管理应用程序。
可增强客户端代理604和应用程序管理框架614以支持获得和使用客户端凭证以用于针对内部PKI保护网络资源的认证。可支持多于一个凭证,以便匹配各种层级的安全和/或分隔要求。所述凭证可由邮件和浏览器管理的应用程序610使用,并且最终由任意包装应用程序610使用(前提是,那些应用程序使用网页服务式通信模式,其中应用程序管理框架调节HTTPS请求是合理的)。
iOS上的应用程序管理客户端证书支持可依赖于在每个使用周期内将公钥密码术标准(PKCS)12BLOB(二进制大对象)导入到每个受管理应用程序610中的iOS密钥链内。应用程序管理框架客户端凭证支持可使用具有私有存储器内密钥存储的HTTPS实施方案。客户端凭证可能不存在于iOS密钥链中,并且除了潜在地在受到强保护的“仅在线”数据值中之外,可能不会被留存。
相互SSL或TLS也可以通过要求向企业认证移动装置602来实施,以提供额外安全性,反之亦然。还可实施针对网关服务器606的认证的虚拟智能卡。
有限和全Kerberos支持两者都可以是额外特征。完全支持特征可以包含使用目录口令或受信任的客户端凭证对目录622进行全Kerberos登录,并且获得Kerberos服务票证以响应HTTP协商认证挑战。有限支持特征可以包含思杰访问网关企业版(AGEE)中的受限委托,其中AGEE支持调用Kerberos协议转变,由此其可响应于HTTP协商认证质询而获得并且使用Kerberos服务票证(受制于受限委托)。此机制在反向web代理(也称为公司虚拟私有网络(CVPN))模式中以及当HTTP(但不是HTTPS)连接在VPN和MicroVPN模式中代理时起作用。
另一特征可涉及应用程序容器锁定和擦除,其可在越狱或生根检测后自动发生,并且作为来自管理控制台的推送命令而发生,且即使在受管理应用程序610未在运行时也可包含远程擦除功能。
可支持企业应用程序商店和应用程序控制器的多位点架构或配置,其在有故障的情况下允许从若干不同位置中的一个来服务用户。
在一些情况下,可允许受管理应用程序610通过API(例如OpenSSL)访问凭证和私钥。可允许企业的受信任的受管理应用程序610利用应用程序的客户端凭证和私钥执行特定公钥操作。因此,可标识和处理各种使用情况,例如,如果或当应用程序表现得像浏览器且不需要凭证访问时,如果或当应用程序读取“我是谁”的凭证时,如果或当应用程序使用凭证建构安全会话令牌时,以及如果或当应用程序使用私钥以用于重要数据(例如,交易记录)的数字签名或用于临时数据加密时。
网络基础设施概述
客户端可以登录到网络环境中的装置,以便在客户端装置上建立虚拟桌面会话。客户端可以使用外部代理用户账户登录到代理机,并且请求应用程序会话。代理机可以为客户端请求的外部用户创建和/或签名令牌。所述令牌可以与命令信息一起发送,以便为所述外部用户准备到虚拟递送代理(VDA)的会话。在若干实施例中,代理基础设施可以提供描述到客户端装置的会话连接的文件,例如.ica文件。所述文件可能包含Ticketing\LaunchRef,该Ticketing\LaunchRef可由VDA使用来查找由代理机发送到VDA的签名令牌。客户端装置可以利用所述文件来连接到VDA上的会话。VDA可利用所述文件来检索可由代理机验证的用户身份和/或签名令牌。在各种实施例中,代理机可以直接向VDA提供签名令牌和/或会话信息。标识用户身份的准备请求可以与签名令牌一起由代理机发送到VDA。VDA可以将启动请求映射到准备请求。VDA还可以为准备请求中所请求的用户身份创建本地账户,并且将客户端装置连接到本地账户。VDA还可以通过将来自准备请求的签名令牌发送(由VDA和/或客户端装置)到代理机来安全地确认本地账户中的用户身份。使用签名令牌,代理机可以代表VDA确认会话的用户身份。当VDA向代理机发送登录通知时,可以认证签名令牌,并且代理机可在重新连接到会话期间将正确的代理身份映射到由VDA提供的会话。登录通知可以包含由代理机向VDA提供的签名令牌。代理机可使用私钥加密信息来解码签名令牌以验证用户身份。可以使用目录来验证用户身份。
VDA可能无法联系代理机,因此需要退回到不同代理。通过同步由代理机建立的令牌签名私钥,所述高可用性代理机可以被配置为备用代理。VDA能够向高可用性代理机发送原始签名令牌以证明客户端装置的用户身份,从而允许将来通过高可用性代理机与会话交互。
在图7中,示出了简化的示例网络环境700,例如,可以与图1-6所示的网络环境配合使用。示例网络环境700可以使得一个或多个客户端装置能够提供和使用一个或多个基于云的服务或其它类型的远程访问服务。网络环境700包含代理基础设施710、客户端712、虚拟递送代理(VDA)714和高可用性代理716。VDA 714的一个示例是由佛罗里达州劳德代尔堡(Fort Lauderdale,Florida)的思杰系统公司(Citrix Systems,Inc.)开发的HDX服务器。位置中的每个可以经由广域网(例如,因特网)彼此通信和/或可以位于不同的地理位置。由网络环境700提供的基于云的服务中的一个或多个可以包含高可用性代理716和/或VDA 714。这些资源可以允许用户登录以及能够启动和执行由客户端装置使用的各种应用程序。客户端装置对由资源执行的应用程序的使用可以称为应用程序会话。可启动和使用的应用程序的一个示例是远程桌面应用程序。代理714和/或高可用性代理716可以认证用户登录尝试和/或准备应用程序的启动。
建立用户账户和连接VDA
如本文中所描述,通过在VDA(和/或客户端装置)上动态生成本地用户账户并且将所述用户账户经由签名令牌映射到在代理机上维护的外部身份,可以将外部用户身份映射到虚拟桌面和应用程序。现在转到图8,示出了根据本文中所描述的方面的用于自动生成用户账户的过程。过程800包含获得(810)对用户账户的请求。在各种实施例中,由代理机接收请求。对用户账户的请求可由多种装置中的任一种提供,包含(但不限于)VDA和客户端装置。过程800进一步包含生成(812)本地用户账户。本地用户账户可以在客户端装置和/或VDA上生成。过程800进一步包含在目录中自动生成(814)用户ID令牌,并且将用户账户映射(816)到用户ID令牌。
在一些实施例中,使用例如公钥基础设施(PKI)的公钥/私钥机制来签名令牌。这允许管理员选择任意目录来管理用户简档,并且以安全的方式从VDA上的目录动态生成用户。VDA还可以基于从代理机接收到的命令自动生成定制的本地机器账户。VDA维护本地机器账户到由代理机请求的用户身份的映射。所述映射是通过使用包含由代理机生成的代理身份的令牌来实现的。VDA将本地用户身份映射到令牌,并且能够通过所述令牌确认代理身份返回到原始代理机,或者可能返回到不同的备用高可用性代理机。在各种实施例中,令牌包含代理身份、时间戳、会话被代理到哪个VDA的指示符、发布令牌的代理机的指示符和/或唯一会话GUID。令牌可用于安全地报告用户身份(例如,用户ID)。在各种实施例中,用户身份包含来自活动目录的模拟用户账户。令牌可用于认证用户身份,从而允许即使使用不受信任的VDA也可以进行安全的重新连接。代理机可以使用其被分发给例如高可用性代理机的任何其它装置的私钥来签名令牌,使得VDA可以将所述令牌重放到不同的机器。
在各种实施例中,VDA是不受信任的装置,并且不信任VDA报告会话的正确用户身份,这会损害将与会话的重新连接。在许多实施例中,代理机负责向用户分配(例如,映射)桌面。但是,许多用户是其桌面的管理员,因此即使在VDA上运行的服务也不受代理机的信任,因为用户本身可能是恶意的。另外,VDA上的用户账户通常不能根据目录来验证。然而,通过利用由代理机签名的令牌,无需依赖例如活动目录的外部验证机制就可以验证用户账户。签名令牌向代理机证明客户端机器的身份,然后代理机可以代理客户端机器到VDA上的现有会话的连接。当用户连接到VDA时,例如当VDA与签名令牌一起向代理机提供登录通知时,代理机可以对令牌进行认证。当代理接收到用令牌签名的用户账户数据时,可解码用户账户数据以确定所提供的信息是否匹配。如果用户不存在,则可以即时创建本地用户账户。在许多实施例中,利用随机口令自动创建本地用户账户。在许多实施例中,本地客户端装置和/或VDA将仅接受来自代理机的创建用户账户的请求。在若干实施例中,可以将本地用户账户添加到用户群组和/或为其准予本地客户端装置和/或VDA上的特定权限。
现在转到图9,示出了根据本文中所描述的方面的用于建立虚拟桌面会话的过程。过程900包含获得(910)用户ID、定位(912)用户ID令牌以及验证(914)用户ID。如本文中所描述,可以从VDA和/或客户端装置获得用户ID。如本文中所描述,用户ID令牌可以在目录中维护和/或由代理机维护。过程900进一步包含建立(916)虚拟桌面会话。代理机和/或VDA可被配置成选择用于启动和执行由客户端装置在所建立的虚拟桌面会话中使用的应用程序的资源。通常,为了启动应用程序启动数据的准备,代理机可以基于所标识的资源群组和资源可用性信息的指示来选择用于执行应用程序的资源。例如,资源可用性信息可指示哪些资源可用于执行应用程序(例如,具有可为应用程序分配的处理器容量)。当启动应用程序和/或分配主机时,代理机可以跟踪和管理资源可用性信息。另外,每个资源可以指示哪些主机当前正在执行应用程序,或者可以指示哪些主机是资源的当前主机池的一部分。基于所述信息,代理机可确定哪些资源可用于执行应用程序和/或认证对特定用户账户的特定资源的访问。例如,如果资源具有能够执行应用程序并且空闲(例如,当前未执行应用程序)的至少一个主机,则所述资源是可用的。
使用令牌来验证用户ID还允许VDA向除了建立用户ID和令牌的代理机之外的代理机证明会话的代理用户身份,例如当它必须退回到高可用性代理机时。现在转到图10,示出了根据本文中所描述的方面的用于使用高可用性代理建立虚拟桌面会话的过程。过程1000包含获得(1010)用户ID、定位(1012)用户ID令牌以及使用令牌验证(1014)用户ID。在本文中,尤其是关于图8和图9,描述了用于获得用户ID、定位用户ID令牌以及基于令牌验证用户ID的各种过程。过程1000进一步包含向高可用性代理提供(1016)经验证的用户ID,并且建立(1018)虚拟桌面会话。如本文中所描述,用户可以启动会话,并且向代理机提供信息。如果会话断开(例如在网络中断的情况下),则客户端装置将不能与VDA通信。当客户端装置尝试重新连接到VDA时,需要将先前会话的证书重新映射到客户端装置。如果代理机具有适当的密钥,则它可以验证用户令牌。在若干实施例中,高可用性代理机与本地代理机同步,使得所有代理机都可以访问解码由代理机中的任一个发布的令牌签名的用户账户信息所必需的密钥。
本地账户的使用允许对虚拟桌面会话的单点登录,而无需依赖例如活动目录的目录,并且无需客户端装置和/或VDA的用户知道用于建立虚拟桌面会话的本地账户的证书(例如,用户名和口令)。现在转到图11,示出了根据本发明的方面的用于单点登录到虚拟桌面会话的过程。过程1100包含获得(1110)建立虚拟桌面会话的请求。请求可由登录到客户端装置的用户建立和/或由客户端装置自动建立,例如当用户登录到客户端装置时和/或当客户端装置通电时。可以检索本地证书(1112)。本地证书可以安全地存储在客户端装置和/或VDA上。可以从各种数据源(例如,基于Windows的客户端装置的WinLogon服务)中的任一种检索。可以向代理机提供本地证书(1114),所述代理机可以验证所述证书(1116),并且可以如本文中所描述建立虚拟桌面会话(1118)。这样,可以在用户不知道用于建立虚拟桌面会话的账户的用户名和/或口令的情况下建立虚拟桌面会话。
尽管已用特定于结构特征和/或方法动作的语言来描述主题,但应理解,所附权利要求书中限定的主题未必局限于上文所描述的具体特征或动作。实际上,上文所描述的具体特征和动作被描述为所附权利要求的示例实施方案。
Claims (20)
1.一种用于连接到虚拟桌面的方法,其包括:
使用代理机从客户端装置获得连接到虚拟递送代理(VDA)的请求,其中所述请求包括用户ID;
在所述VDA上自动生成用户账户,其中所生成的用户账户包括所述用户ID;
使用所述代理机为所述用户ID生成签名令牌;
向所述VDA提供所述签名令牌;
使用由所述VDA提供的登录通知来认证所述签名令牌;以及
当所述代理认证所述签名令牌时,将所述客户端装置重新连接到由所述VDA托管的现有会话。
2.根据权利要求1所述的方法,其进一步包括:
使用所述代理机向所述客户端装置提供文件;以及
使用所述客户端装置向所述VDA提供所述文件,其中所述VDA利用所述文件来标识所述签名令牌。
3.根据权利要求1所述的方法,其进一步包括使用所述代理机向所述VDA提供所述签名令牌。
4.根据权利要求1所述的方法,其中所述签名令牌是基于所述代理机的私钥生成的。
5.根据权利要求1所述的方法,其中在所述VDA上自动生成的所述用户账户不同于在所述客户端装置上签名的本地用户账户。
6.根据权利要求1所述的方法,其进一步包括:
生成使用所述代理机为所述用户ID创建所述本地用户账户的请求;
使用所述代理机向所述VDA提供所生成的请求;以及
基于所生成的请求,在所述VDA上自动创建所述本地用户账户。
7.根据权利要求6所述的方法,其中自动创建所述本地用户账户进一步包括为所述本地用户账户生成随机口令。
8.一种用于连接到虚拟桌面的系统,其包括:
代理机,所述代理机包括处理器和与所述代理机的所述处理器通信的存储器;
客户端装置,所述客户端装置包括处理器和与所述客户端装置的所述处理器通信的存储器;以及
虚拟递送代理(VDA),所述虚拟递送代理(VDA)包括处理器和与所述VDA的所述处理器通信的存储器;
其中,所述代理机:
从所述客户端装置获得连接到所述VDA的请求,其中所述请求包括用户ID;
为所述用户ID生成签名令牌;以及
基于从所述VDA接收到的登录通知来认证所述签名令牌;
其中所述VDA:
获得所述签名令牌;
向所述代理机提供登录通知;以及
当所述代理认证所述签名令牌时,将所述客户端装置重新连接到由所述VDA托管的现有会话。
9.根据权利要求8所述的系统,其中:
所述代理机进一步向所述客户端装置提供文件;
所述客户端装置进一步向所述VDA提供所述文件;以及
所述VDA利用所述文件来标识所述签名令牌。
10.根据权利要求8所述的系统,其中所述代理机进一步向所述VDA提供所述签名令牌。
11.根据权利要求8所述的系统,其中所述签名令牌是基于所述代理机的私钥生成的。
12.根据权利要求8所述的系统,其中在所述VDA上自动生成的所述用户账户不同于在所述客户端装置上签名的本地用户账户。
13.根据权利要求8所述的系统,其中:
所述代理机进一步:
生成为所述用户ID创建所述本地用户账户的请求;以及
向所述VDA提供所生成的请求;以及
基于所生成的请求,所述VDA在所述VDA上自动创建所述本地用户账户。
14.根据权利要求13所述的系统,其中自动创建所述本地用户账户进一步包括为所述本地用户账户生成随机口令。
15.一种存储用于控制处理器的指令的非暂时性计算机可读介质,所述指令使所述处理器执行以下步骤,所述步骤包括:
从客户端装置获得连接到虚拟递送代理(VDA)的请求,其中所述请求包括用户ID,并且在所述VDA上自动生成本地用户账户,其中所生成的用户账户包括所述用户ID;
为所述用户ID生成签名令牌;
向所述VDA提供所述签名令牌;
使用由所述VDA提供的登录通知来认证所述签名令牌;以及
当代理认证所述签名令牌时,将所述客户端装置重新连接到由所述VDA托管的现有会话。
16.根据权利要求15所述的非暂时性计算机可读介质,其中所述指令进一步使所述处理器执行包括向所述客户端装置提供文件的步骤,其中所述客户端装置向所述VDA提供所述文件,并且所述VDA利用所述文件来标识所述签名令牌。
17.根据权利要求15所述的非暂时性计算机可读介质,其中所述指令进一步使所述处理器执行包括向所述VDA提供所述签名令牌的步骤。
18.根据权利要求15所述的非暂时性计算机可读介质,其中所述签名令牌是基于私钥生成的。
19.根据权利要求15所述的非暂时性计算机可读介质,其中所述指令进一步使所述处理器执行以下步骤,所述步骤包括:
生成为所述用户ID创建所述本地用户账户的请求;
使用代理机向所述VDA提供所生成的请求;以及
基于所生成的请求,在所述VDA上自动创建所述本地用户账户。
20.根据权利要求19所述的非暂时性计算机可读介质,其中自动创建所述本地用户账户进一步包括为所述本地用户账户生成随机口令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/178,803 US10986082B2 (en) | 2018-11-02 | 2018-11-02 | Local mapped accounts in virtual desktops |
US16/178,803 | 2018-11-02 | ||
PCT/US2019/056679 WO2020092013A1 (en) | 2018-11-02 | 2019-10-17 | Local mapped accounts in virtual desktops |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111566619A true CN111566619A (zh) | 2020-08-21 |
Family
ID=68426904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980005117.XA Pending CN111566619A (zh) | 2018-11-02 | 2019-10-17 | 虚拟桌面中的本地映射账户 |
Country Status (7)
Country | Link |
---|---|
US (2) | US10986082B2 (zh) |
EP (1) | EP3673371B1 (zh) |
JP (1) | JP2021535521A (zh) |
CN (1) | CN111566619A (zh) |
AU (1) | AU2019356039B2 (zh) |
CA (1) | CA3084785A1 (zh) |
WO (1) | WO2020092013A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760546A (zh) * | 2021-08-20 | 2021-12-07 | 上海酷栈科技有限公司 | 一种离散分布聚合控制的云桌面管理方法及系统 |
WO2023193682A1 (en) * | 2022-04-05 | 2023-10-12 | International Business Machines Corporation | Local arrangement of remote deployment |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11190501B2 (en) * | 2017-08-22 | 2021-11-30 | Terawe Corporation | Hybrid single sign-on for software applications and services using classic and modern identity providers |
JP7289111B2 (ja) * | 2019-06-26 | 2023-06-09 | パナソニックIpマネジメント株式会社 | 通信装置、認証方法およびコンピュータプログラム |
US11509642B2 (en) * | 2019-08-21 | 2022-11-22 | Truist Bank | Location-based mobile device authentication |
US11595383B2 (en) * | 2020-06-05 | 2023-02-28 | Vmware, Inc. | Preauthorized domain join |
CN116132135A (zh) * | 2022-12-30 | 2023-05-16 | 中国人寿保险股份有限公司上海数据中心 | 一种不同架构的云桌面的统一控制方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160134616A1 (en) * | 2014-11-10 | 2016-05-12 | Amazon Technologies, Inc. | Desktop application fulfillment platform with multiple authentication mechanisms |
US20160132214A1 (en) * | 2014-11-11 | 2016-05-12 | Amazon Technologies, Inc. | Application delivery agents on virtual desktop instances |
US20160330288A1 (en) * | 2015-05-08 | 2016-11-10 | Citrix Systems, Inc. | Cross-Domain Brokering Protocol Cloud Proxy |
US20170257215A1 (en) * | 2016-03-07 | 2017-09-07 | Citrix Systems, Inc. | Encrypted password transport across untrusted cloud network |
CN107636715A (zh) * | 2015-09-09 | 2018-01-26 | 谷歌有限责任公司 | 用于提供内容的系统和方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8201214B1 (en) | 2005-09-30 | 2012-06-12 | Apple Inc. | Ad-hoc user account creation |
JP6471441B2 (ja) * | 2014-09-24 | 2019-02-20 | 富士ゼロックス株式会社 | 情報処理装置、システム及びプログラム |
US10841316B2 (en) * | 2014-09-30 | 2020-11-17 | Citrix Systems, Inc. | Dynamic access control to network resources using federated full domain logon |
US10459752B2 (en) * | 2017-07-12 | 2019-10-29 | Vmware, Inc. | Hybrid remote desktop logon |
US11057393B2 (en) * | 2018-03-02 | 2021-07-06 | Cloudentity, Inc. | Microservice architecture for identity and access management |
-
2018
- 2018-11-02 US US16/178,803 patent/US10986082B2/en active Active
-
2019
- 2019-10-17 JP JP2021523804A patent/JP2021535521A/ja active Pending
- 2019-10-17 WO PCT/US2019/056679 patent/WO2020092013A1/en unknown
- 2019-10-17 CN CN201980005117.XA patent/CN111566619A/zh active Pending
- 2019-10-17 CA CA3084785A patent/CA3084785A1/en active Pending
- 2019-10-17 EP EP19797960.2A patent/EP3673371B1/en active Active
- 2019-10-17 AU AU2019356039A patent/AU2019356039B2/en not_active Ceased
-
2021
- 2021-03-12 US US17/199,523 patent/US11522847B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160134616A1 (en) * | 2014-11-10 | 2016-05-12 | Amazon Technologies, Inc. | Desktop application fulfillment platform with multiple authentication mechanisms |
US20160132214A1 (en) * | 2014-11-11 | 2016-05-12 | Amazon Technologies, Inc. | Application delivery agents on virtual desktop instances |
US20160330288A1 (en) * | 2015-05-08 | 2016-11-10 | Citrix Systems, Inc. | Cross-Domain Brokering Protocol Cloud Proxy |
CN107636715A (zh) * | 2015-09-09 | 2018-01-26 | 谷歌有限责任公司 | 用于提供内容的系统和方法 |
US20170257215A1 (en) * | 2016-03-07 | 2017-09-07 | Citrix Systems, Inc. | Encrypted password transport across untrusted cloud network |
Non-Patent Citations (2)
Title |
---|
JINHO HWANG: "Adaptive dynamic priority scheduling for virtual desktop infrastructures" * |
刘宁;: "安全客户代理环境(SCAE)在电子商务应用中的研究" * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760546A (zh) * | 2021-08-20 | 2021-12-07 | 上海酷栈科技有限公司 | 一种离散分布聚合控制的云桌面管理方法及系统 |
CN113760546B (zh) * | 2021-08-20 | 2023-08-22 | 上海酷栈科技有限公司 | 一种离散分布聚合控制的云桌面管理方法及系统 |
WO2023193682A1 (en) * | 2022-04-05 | 2023-10-12 | International Business Machines Corporation | Local arrangement of remote deployment |
US11943115B2 (en) | 2022-04-05 | 2024-03-26 | International Business Machines Corporation | Locally debugging remote deployment of microservices |
Also Published As
Publication number | Publication date |
---|---|
US20210203654A1 (en) | 2021-07-01 |
EP3673371A1 (en) | 2020-07-01 |
US20200145404A1 (en) | 2020-05-07 |
US11522847B2 (en) | 2022-12-06 |
WO2020092013A8 (en) | 2020-07-02 |
JP2021535521A (ja) | 2021-12-16 |
AU2019356039A1 (en) | 2020-06-04 |
CA3084785A1 (en) | 2020-05-07 |
WO2020092013A1 (en) | 2020-05-07 |
AU2019356039B2 (en) | 2021-04-22 |
US10986082B2 (en) | 2021-04-20 |
EP3673371B1 (en) | 2021-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558721B (zh) | 客户端应用程序的安全单点登录和条件访问的方法和系统 | |
CN111133729B (zh) | 保护用于在两个端点之间通信的数据连接的安全性 | |
US11722465B2 (en) | Password encryption for hybrid cloud services | |
CN111052706B (zh) | 将单点登录扩展到联合登录提供者的依赖方的方法 | |
CN109155781B (zh) | 对托管应用程序的动态访问 | |
CN108028845B (zh) | 使用导出凭证注册企业移动装置管理服务的系统和方法 | |
CA3092975C (en) | Secure information exchange in federated authentication | |
CN112789841A (zh) | 在远程访问或基于云的网络环境中访问资源 | |
US11522847B2 (en) | Local mapped accounts in virtual desktops | |
US11711214B2 (en) | Enhanced token transfer | |
CN111066307B (zh) | 包装延续令牌以支持跨不同地理位置的多个服务器的分页 | |
WO2022026316A1 (en) | Secure token transfer between untrusted entities | |
US11366883B2 (en) | Reflection based endpoint security test framework | |
US11829505B2 (en) | High security one-time encryption |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200821 |
|
WD01 | Invention patent application deemed withdrawn after publication |