CN117501270A - 通过仅应用管理的移动vpn自动开启 - Google Patents

通过仅应用管理的移动vpn自动开启 Download PDF

Info

Publication number
CN117501270A
CN117501270A CN202280042751.2A CN202280042751A CN117501270A CN 117501270 A CN117501270 A CN 117501270A CN 202280042751 A CN202280042751 A CN 202280042751A CN 117501270 A CN117501270 A CN 117501270A
Authority
CN
China
Prior art keywords
mam
vpn
application
controlled app
app
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
Application number
CN202280042751.2A
Other languages
English (en)
Inventor
J·M·H·奥克利
N·A·雅各布森
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 CN117501270A publication Critical patent/CN117501270A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in 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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/37Managing security policies for mobile devices or for controlling mobile applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Automation & Control Theory (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

公开了一种用于在MAM环境中自动开启VPN的技术。经MAM控制的App在计算机系统上启动。策略被查询,并且是否自动开启VPN应用的确定基于策略被做出。基于该策略,VPN应用被自动开启,并且该VPN应用发起能够至少被该经MAM控制的App使用的VPN隧道。然后,向该经MAM控制的App传输或从该经MAM控制的App传输的网络通信通过该VPN隧道。

Description

通过仅应用管理的移动VPN自动开启
背景技术
“虚拟专用网络”(VPN)是一种保护通过网络连接传输的通信的服务的类型。特别是,VPN提供了一个加密隧道,数据包可以通过该加密隧道从一个点传送到另一个点。当客户端设备使用VPN以通过互联网连接向端点时,VPN连接有助于保护用户的数据,从而允许该用户以私密和安全的方式与数据交互。VPN还可被用于隐藏用户的IP地址,甚至隐藏该用户的物理地址。此外,通过对通过该VPN传输的数据包加密,可以保护这些数据包免受潜在恶意动作者的攻击。因此,许多商业企业希望用户使用VPN,尤其是当这些用户正在与该企业的数据交互时。因此,利用VPN的技术需要被改进。
本公开要求保护的主题并不限定于解决任何缺点或仅在诸如上述环境中操作的实施例。相反,提供本背景仅用于说明可以实施本公开描述的一些实施例的一个示例性技术领域。
发明内容
本公开的实施例涉及一种用于在移动应用管理(MAM)环境中自动开启虚拟专用网络(VPN)的系统、设备(例如,可穿戴设备、硬件存储设备等)和方法,该MAM环境正在计算机系统上操作。
一些实施例确定经MAM控制的App正在客户端设备上启动。在确定经MAM控制的App正在启动之后,该实施例查询策略并且基于策略来确定是否触发VPN应用。基于指示VPN应用将在经MAM控制的App的启动之后或与经MAM控制的App的启动同时被触发的策略,实施例自动触发VPN应用,VPN应用发起能够至少被经MAM控制的App使用的VPN隧道。该实施例还使向经MAM控制的App传输或从经MAM控制的App传输的网络通信通过VPN隧道。可选地,一些实施例使VPN应用在应用自动开启后的某个时间终止VPN隧道。
一些实施例确定经MAM控制的App正在客户端设备上启动。在确定经MAM控制的App正在启动之后,该实施例查询策略并且确定该策略指示在经MAM控制的App的用户界面(UI)正被带到该计算机系统的前台之后或同时,VPN应用将自动发起VPN隧道。响应于经MAM控制的App的UI当前或将随后被带到前台的指示,该实施例使VPN应用发起能够至少被经MAM控制的App使用的VPN隧道。此外,该实施例使向经MAM控制的App传输或从经MAM控制的App传输的网络通信通过由VPN应用提供的VPN隧道。
本发明内容旨在以简化的形式介绍下面在具体实施方式中进一步描述的概念选择。本发明内容并非为确定标识权利要求主题的关键特征或基本特征,也并非为用作确定权利要求主题范围的辅助工具。
附加的特征和优点将在下面的描述中阐述,部分特征和优点将从描述中显而易见,或可通过实践本公开的教导得知。本发明的特征和优点可以通过所附权利要求中特别指出的工具和组合来实现和获得。本发明的特征将从下面的描述和所附权利要求中变得更加明显,或者可以通过下文所述的本发明的实践来学习。
附图说明
为了描述可以获得上述和其他优点和特征的方式,将参考附图中说明的具体实施例,对上述简要描述的主题进行更具体的描述。理解到这些附图仅描绘了典型的实施例,因此不应被视为限定了范围,将通过使用附图对实施例进行更具体和详细的描述和说明,其中:
图1示出了“自带设备(BYOD)”体系结构的示例。
图2示出了移动设备管理(MDM)环境和移动应用管理(MAM)环境的差异。
图3示出了虚拟专用网络(VPN)的使用,该虚拟专用网络可被用于将一个设备或端点连接向另一个设备或端点。
图4示出了“微VPN应用”和“VPN应用”的区别。
图5示出了传统上VPN应用如何在MDM环境中被自动触发;然而,传统上,VPN应用不能在MAM环境中被自动触发或开启。
图6示出了根据所公开的原理VPN应用在MAM环境中被自动触发的示例实现方式。
图7示出了VPN应用在MAM环境中被自动触发的另一场景。
图8示出了可以触发VPN应用自动开启的示例条件。
图9示出了用于在MAM环境中自动开启VPN应用的示例方法的流程图。
图10示出了用于在MAM环境中自动开启VPN的示例方法的另一流程图。
图11示出了被配置为执行任何所公开的操作的计算机系统的示例。
具体实施方式
本公开的实施例涉及一种用于在移动应用管理(MAM)环境中自动开启虚拟专用网络(VPN)的系统、设备(例如,可穿戴设备、硬件存储设备等)和方法,该MAM环境正在计算机系统上操作。如本公开所用,术语“启动”可以指代应用已经开始操作或可选地,应用的特定组件已经开始操作的场景,例如用户界面(UI)被带到客户端设备上的前台或VPN已经开始操作的情况。“启动”还可以指代应用在先前处于暂停或后台状态时恢复前台操作的场景,例如应用UI原本在后台,但现在被带到前台的场景(例如,也许用户在应用没有终止的情况下导航离开应用,并且用户现在正在返回应用)。术语“自动开启”(及其变体)是指代VPN应用自动(即无需用户输入)开启(即启动)并自动触发以建立用于供经MAM控制的App连接的VPN隧道的场景,其中自动开启由策略促进。通过“自动开启”VPN应用,用户无需手动启动VPN应用;此外,VPN应用可能不需要向用户显示前台UI。相反,VPN应用可以被自动开启并可以在后台运行。
一些实施例确定经MAM控制的App正在客户端设备上启动。在确定经MAM控制的App正在启动之后,该实施例查询策略并且基于策略来确定是否触发VPN应用。基于指示VPN应用将在经MAM控制的App的启动之后或与经MAM控制的App的启动同时被触发的策略,实施例自动触发VPN应用,VPN应用发起能够至少被经MAM控制的App使用的VPN隧道。该实施例还使向经MAM控制的App传输或从经MAM控制的App传输的网络通信通过VPN隧道。可选地,一些实施例使VPN应用在应用自动开启后的某个时间终止VPN隧道。
一些实施例确定经MAM控制的App正在客户端设备上启动。在确定经MAM控制的App正在启动之后,该实施例查询策略并且确定该策略指示在经MAM控制的App的用户界面(UI)正被带到该计算机系统的前台之后或同时,VPN应用将自动发起VPN隧道。响应于经MAM控制的App的UI当前或将随后被带到前台的指示,该实施例使VPN应用发起能够至少被经MAM控制的App使用的VPN隧道。此外,该实施例使向经MAM控制的App传输或从经MAM控制的App传输的网络通信通过由VPN应用提供的VPN隧道。
技术优势、改进和实际应用的示例
以下部分概述了所公开的实施例提供的一些示例改进和实际应用。不过可以理解的是,这些仅仅是示例,本实施例并不仅仅限定于这些改进。
所公开的实施例为技术领域带来了众多实质性的好处。例如,通过使VPN能够在MAM环境中被自动开启,本实施例直接显著地改善了用户使用托管MAM环境的客户端设备的体验。举例说明,通过遵循所公开的原则,用户不再需要手动开启VPN。此外,用户和IT管理员可以确信VPN正在保护企业数据。从这个意义上说,自动开启的VPN为企业数据提供了更强的数据保护。
本实施例还改进了计算机系统的底层操作。例如,本实施例能够在VPN正在被使用时自动智能地开启和停止。通过这种智能,本实施例有助于最大限度地延长或至少改善设备的电池寿命,因为VPN是在需要时被使用,而不是始终打开。以类似的方式,实施例通过智能打开和关闭VPN的能力提高了内存的使用。这些优点和许多其他优点将在本公开内容的其余部分中详细描述。
BYOD架构
现在将注意力转向图1,图1示出了“自带设备”BYOD架构100的示例。例如,BYOD架构100包含客户端设备105,例如员工自己的个人设备(例如,智能手机、平板电脑、膝上型电脑等),以及企业环境110(例如,企业组织的网络基础设施)。设备105可以经由任何类型的网络115连接到企业环境110,例如因特网、局域网(LAN)或某种其他类型的广域网(WAN)。
在图1中,企业环境110被示为包含外围网络120和内联网125。外围网络120可以包含任意数量的服务器,例如中继服务器130。中继服务器130可以潜在地被用于选择内部服务器以便接收和处理请求,类似于负载平衡器。内联网125被示为包含任意数量的服务器,例如服务器135。例如,请求可以被中继服务器130接收。中继服务器130然后可以确定企业环境110的内联网125部分中的哪个服务器可被用于处理和处理请求。
在一些情况下,防火墙140可以在逻辑上被定位在企业环境110的前端,以便保护企业环境110免受各种类型的传入流量的影响。类似地,中间防火墙145可以被定位在外围网络120和内联网125之间,以便为内联网125中的内部服务器提供额外的保护。
通过这种架构,企业可以允许用户/员工使用他们自己的个人设备来处理与业务相关的事务。由于可以使用自己的设备为员工带来了便利,BYOD架构的趋势正在增长。企业组织也越来越希望在员工使用个人设备时确保数据安全。为了提供这些保障,各种结构已经被开发。这些结构包含MDM环境和MAM环境,如下所述。
MDM和MAM环境
如上所述,在BYOD架构中保障和控制企业数据有不同的技术。一种这样的技术被称为“移动设备管理”或“MDM”,而另一种技术被称为“移动应用管理”或“MAM”。图2示出了这两种技术的差异。
图2示出了经MDM 200控制的设备和经MAM 205控制的设备。通常,MDM 200是企业用于控制用户设备的管理技术。用户设备通常被配置为包含各种设备上的应用和/或配置、策略、令牌、后端基础设施和/或证书,这些应用和/或配置、策略、令牌、后端基础设施和/或证书旨在允许企业(例如,IT部门)以特定方式控制用户的设备,例如通过限定设备可以对企业的数据或访问进行的操作。MDM 200允许通过空中下载数据、应用、配置等在设备上实施策略。通常,MDM 200可以控制整个设备,如图2所示,覆盖整个设备的“监狱栏”。在这方面,MDM 200允许企业的IT管理员控制、保证、并实施用户设备上的策略。
利用MDM 200,通常情况是客户端代理被安装在用户的设备上。企业系统包含服务器和服务器代理。策略通过服务器被配置,然后服务器代理将策略推送或传输到设备上的代理。代理被配置为通过与设备的各种应用编程接口(API)和操作系统(OS)通信以实现策略。然后代理控制整个设备。
另一方面,MAM 205侧重于更细粒度或精细化的控制。也就是说,与有效控制整个设备的MDM 200相反,MAM 205控制被安装在设备上的特定应用。也就是说,每个应用可以包含嵌入式MAM组件,该组件然后实现策略并操作以控制该特定应用。
作为示例,MAM 205可以控制经控制的App 210(例如,可能是被用于访问企业数据的电子邮件应用),但可以限制控制App 215,App 215可以是被安装在用户设备上的游戏应用。经控制的App210可以具有用于实现企业策略的嵌入式MAM组件,而App 215可以不具有嵌入式MAM组件。
在这个意义上,MAM 205可被用于控制被安装在用户设备上的特定软件或应用,但不能控制整个设备。此外,MAM环境操作以限制220经MAM控制的App(例如,经控制的App210),但避免限制被安装在客户端设备上的其他应用(如App 215)。
虚拟专用网络
企业通常希望用户在与企业数据交互时使用虚拟专用网络(VPN)。也就是说,无论被安装在用户设备上的是MDM环境还是MAM环境,企业通常都希望使用VPN。通常,VPN在公共网络上建立专用网络(例如隧道)。VPN允许用户使用该VPN隧道发送和接收数据,其方式就像这些用户的设备直接被连接到特定端点,而不是通过公共网络(例如互联网)被连接。图3是说明性的。
图3示出了包含计算机系统305(例如,可能是客户端设备,例如图2中所示的那些)和接入点(AP)310(例如,可能是路由器)的示例架构300。架构300还包含网络315,例如公共互联网或一些其他广域网。实施例能够通过网络发起VPN隧道320,以使计算机系统305能够与另一个AP 325和计算机系统330连接,例如可能是企业服务器。VPN隧道320为两个计算机系统305、330传输数据包提供了安全途径。
图4示出了VPN的一些不同实现,在一种情况下,App A可以包含所谓的微VPN应用400,其被配置为发起VPN隧道405,以使网络通信(例如,网络通信410)能够仅向App A或从App A传输到服务器415。注意,微VPN应用400是App A的嵌入式组件或部分。
值得注意的是,微VPN应用400只限制为针对应用A而非任何其他应用传递通信。也就是说,如果设备包含应用B,应用B将无法使用微VPN应用400提供的VPN通道405。相反,应用B将不得不使用不同的VPN隧道。因此,如本公开所用,短语“微VPN应用”是指代提供服务的VPN,该服务仅为单个应用(例如应用A)提供专用隧道VPN。
在另一种情况下,VPN应用420(其与“微VPN应用”不同)可以被提供以使多个不同的应用能够使用相同的VPN隧道425。注意,VPN应用420是独立的应用,不一定是底层应用的嵌入式部分或组件。
图4示出了三个不同的应用(应用B、应用C和应用D),每个应用都在使用相同的VPN隧道425来发送和接收通信。为了说明,应用B正在发送或接收App B网络通信430;应用C正在发送或接收App C网络通信435;以及应用D正在向服务器445发送或接收App D网络通信440。因此,与微VPN应用400提供的VPN隧道405相比,VPN应用420提供的VPN隧道425可以被多个不同的应用使用,并且不专用于仅单个应用。
因为MDM可以控制整个设备,所以自动开启、启动、触发或发起VPN应用的能力传统上在MDM环境中可用。例如,MDM可以监视应用何时启动。MDM可以查阅策略以确定是否应将VPN用于该应用。基于该策略,MDM可以自动发起VPN以供应用使用。这些操作是可用的,因为MDM通常可以控制整个设备,包含该设备上的所有应用。在某些情况下,MDM代理可能实际上并不监视应用启动;相反,MDM代理只能使用OS提供的API(例如,仅对具有全设备MDM权限的代理可用的API)用“保持VPN一直运行”或“当此应用启动时自动开启VPN”等命令配置OS。实行这些命令的过程可以在OS级别完成。
但在MAM环境中,情况并非如此。回想一下,在MAM环境中,控制是仅在较低权限的应用级别进行的。尽管MAM有能力控制特定应用的操作,但传统上MAM无法像MDM控制其他应用(如VPN应用)那样"触及"和控制这些应用。因此,传统的MAM系统不包含响应于另一个应用启动而自动开启VPN应用的能力。
还应注意的是,微VPN应用传统上是如何在MDM环境或MAM环境中自动开启的。之所以如此,是因为微型VPN应用是应用的嵌入部分或组件。当底层应用开启时,微VPN应用也随之开启,无论该应用是经MDM控制的还是经MAM控制的。如前所述,本公开内容明确指出,“微VPN应用"有别于"VPN应用”。因此,VPN应用传统上无法在MAM环境中自动开启、启动、触发或发起。图5提供了进一步的细节。
图5示出了两个场景,一个涉及传统MDM环境,一个涉及传统MAM环境。具体而言,图5示出了具有MDM环境500的设备。因为MDM环境500可以控制整个设备(包含被安装在该设备上的任何应用),MDM环境500能够自动开启505VPN应用510,VPN应用510可以利用服务器520发起VPN隧道515。例如,当设备被用于与企业数据交互时,MDM环境500可以自动触发或开启VPN应用510。
传统上,MAM环境525不是这种情况。也就是说,尽管嵌入在应用中的客户端MAM代理可以控制该特定应用,但MAM代理没有能力控制甚至触发另一个应用的启动,例如VPN应用530;相反,用户传统上必须手动触发或开启VPN应用530,然后发起向服务器540的VPN隧道535。利用这些传统技术,用户需要执行额外的工作,从而增加了用户的挫败感和负担。此外,IT管理员经常感到沮丧,并担心用户可能因为不使用VPN而无法保障企业数据。因此,需要一种改进的技术来在MAM环境中自动开启、触发、启动、或者发起VPN应用,这样,VPN应用就可以为一个或潜在的多个经MAM控制的App提供VPN隧道。
换句话说,流行的移动设备平台针对应用提供了一种建立VPN连接的能力,(经最终用户同意后)该VPN连接将被用于从设备上的其他应用隧道传输流量。当MDM在使用时,MDM解决方案的管理员可以配置设备自动开启VPN应用。相比之下,当MAM仅在使用而不进行设备管理时,传统上设备平台上没有这样的自动开启配置。尽管如此,MAM部署的管理员还是希望能够在管理应用使用时自动开启VPN应用程。
MAM环境下自动开启VPN应用
根据所公开的原理,可以在经MAM控制的App或经MAM管理的应用中嵌入一个软件库,并且可以将该库配置为基于某些管理员配置设置或“策略”自动开启(即“自动开启”)一个独立的外部(相对于经MAM控制的App)VPN应用(即非微VPN应用),而无需设备平台或甚至是经MAM控制的App逻辑进行明确的操作。例如,经MAM控制的App可以在其中嵌入软件库或经MAM供应商创建的第三方开发工具“SDK”。SDK可以被配置为使用设备平台(例如操作系统)提供的标准机制,以在启动经MAM控制的App时运行代码。
当经MAM控制的App被启动时,SDK代码也被启动(作为被嵌入经MAM控制的App的结果),以及SDK代码查阅某些管理员提供的某些策略,这些策略可以在本地缓存,也可能以标准方式通过互联网检索。如果策略指示,SDK然后可以触发VPN应用的启动,然后可以生成VPN隧道。触发VPN应用的启动可以通过SDK发送消息来执行,该消息使用标准平台提供的IPC机制(例如,安卓平台上的互联网)发送到设备的OS。
收到此消息后,VPN应用然后可以建立向关联的远程服务器的连接,并且然后使用平台制定的方式配置VPN隧道接口。然后,经MAM控制的App的网络流量就可以流经VPN隧道,而人类用户无需手动启动VPN应用,经MAM控制的App的开发人员也无需为此编写代码。有了上述介绍,现在请看图6。
图6示出了针对在MAM环境中自动开启VPN应用的一个示例实现方式。特别地,图6示出了迄今为止所描述的客户端设备的代表的客户端设备600。客户端设备600包含操作系统(OS)605和经MAM控制的App 610,例如来自图2的经控制的App 210。
在一些示例场景中,经MAM控制的App 610被配置为包含MAM组件615,该MAM组件615被用于控制如前所述的经MAM控制的App 610的操作(例如,实现企业策略)。MAM组件615可以被装备或被配置为包含第三方开发工具SDK(aka库)620。在一些情况下,MAM组件615和SDK 620是相同的。相应地,在一些实施例中,经MAM控制的App 610包含MAM组件615,该MAM组件615根据MAM原则基于企业策略限定或限制经MAM控制的App的操作。作为这种限制的示例,该策略可以要求经MAM控制的App在与企业数据交互时仅使用VPN。作为限制的另一个示例,该策略可以要求经MAM控制的App需要对用户进行一定级别的身份验证。
如前所述,策略被用于控制经MAM控制的App 610的操作。SDK 620可以被配置为获取和实现该策略,包含规定应使用VPN通道的策略。
在一个示例技术中,SDK 620可以经由消息630与客户端设备600的存储625通信。存储625可以缓存或以其他方式存储策略635,该策略635可能在某个先前时间已经在客户端设备600被接收。在这个意义上,SDK 620可以查询本地存储库以便获取策略635。
在另一个示例中,SDK 620可以通过网络640与服务器645通信,以便获得对远程存储650的访问,远程存储650可以保留策略650A。在这个意义上,SDK 620可以从远程位置获得策略650A。
无论SDK 620如何获得策略635、650A,SDK 620使用该策略以执行多个操作。例如,该策略可以规定当经MAM控制的App610正在使用时,或者当经MAM控制的App 610的用户界面(UI)被带到客户端设备600的前台时,是否应该启动VPN隧道。实际上,该策略可以规定应该基于任何数量的指定条件或标准来启动VPN隧道,这将在后面更详细地描述。
因为SDK 620是经MAM控制的App 610的一部分(即SDK 620被嵌入在经MAM控制的App 610中),SDK 620将在经MAM控制的App 610启动时启动。SDK 620然后可以与OS 605通信以确定经MAM控制的App 610的各种状态,例如,当经MAM控制的App 610的UI将在何时表面化(即被带到客户端设备显示器的前台)。
因为SDK 620现在具有策略,该策略可以基于各种标准(例如,也许UI被带到前台)来描绘VPN应用655是否将被启动,SDK 620可以在标准或条件被满足或将在预定的即将到来的时间段内被满足时触发VPN应用655的自动开启660(又称启动660A)。关于这种自动开启的进一步细节将在后面被提供。
策略可以指定任何类型的条件或标准,以触发VPN应用的自动开启。如上所述,一个示例条件可以是当经MAM控制的App的UI被带到前台时。另一个示例条件可以包含经MAM控制的App正在发送或接收网络通信的场景。另一个示例条件可以包含客户端设备打开Wi-Fi功能的场景。因此,策略可以指定任何类型的条件或标准。当该条件或标准被满足时,SDK可以自动开启VPN应用。
SDK 620能够使VPN应用655自动开启660,因此VPN应用655然后可以发起潜在地向服务器645的VPN隧道665,来自或向经MAM控制的App 610的网络通信670可以通过该VPN隧道665。自动触发VPN应用655的过程然后发起VPN隧道665,可以使用标准平台提供的进程间通信(IPC)以执行,例如通过与OS 605通信或可能通过拦截与OS 605相关的通信。此外,VPN隧道665可以由在客户端设备600上执行的其他经MAM控制的App使用。
在这方面,即使客户端设备600正在托管或包含MAM环境,VPN应用655可以作为SDK620实现策略的结果自动被触发或开启。换句话说,VPN应用655发起VPN隧道665独立于为操作经MAM控制的App610而执行的逻辑。也就是说,一旦VPN应用655通过SDK 620被触发,VPN应用655就可以独立于SDK 620操作,以发起VPN隧道665。同样,关于该自动开启过程的进一步细节将被提供。
因此,在一些实施例中,与经MAM控制的App集成的库(例如,SDK)可以被配置为与客户端设备的操作系统通信。该库可以基于与操作系统的通信,确定何时经MAM控制的App的用户界面(UI)随后将被带到客户端设备的前台或何时发生某些其他具体条件。为此,该库可以与OS交互以确定UI何时将表面化、当前正在表面化或已经表面化。该库触发VPN应用以发起VPN隧道,响应于(i)UI随后将在确定的时间段内被带到前台的确定,(ii)UI当前正在被带到前台的确定,或(iii)UI已经被带到前台的确定。如果UI已经被带到前台,则库可以被配置为在UI已经表面化(即带到前台)后的确定时间段内触发VPN应用。该时间段可以被设置为任何时间段。
先前,微VPN应用被提及。传统上,微VPN应用可以在该微VPN应用的底层应用(即被嵌入微VPN应用的应用)启动时被自动开启。但值得注意的是,由于需要将VPN协议和网络拦截逻辑嵌入到该底层应用中,并且由于多个应用之间缺乏共享连接,微VPN应用(或简称“微VPN”)往往不太理想。另一方面,所公开的实施例可以自动开启VPN应用,该应用被配置为针对多个不同应用托管多个连接。
在这方面,VPN应用可以使用平台VPN框架,并且可以在有或没有设备管理的情况下被使用。此外,使用VPN应用避免了使用微VPN的缺点。因此,所公开的实施例能够在MAM环境中自动开启VPN应用。这些原则不同于自动开启微VPN(在MDM环境或MAM环境中),也不同于在MDM环境中自动开启VPN应用。从这个意义上说,所公开的原则提供了一个应用层管理器(即SDK),它可以利用本机操作系统和平台VPN功能来自动开启和管理共享VPN隧道。发起共享VPN隧道的VPN应用可以基于企业策略被自动触发或发起。此外,VPN应用可以使多个经MAM控制的App能够使用相同的VPN隧道。此外,如果VPN应用已经正在运行,管理层实际上不必做任何事情以将第二经MAM控制的App连接向VPN隧道。相反,这种连接可以通过OS机制自动发生,因为VPN应用是一个专用的VPN应用,它使用平台机制告诉OS它正在提供VPN功能。
图7示出了另一个场景,其中策略可以被获得以确定何时以及如何在MAM环境中自动开启VPN应用。具体而言,图7示出了作为经MAM控制的App 705的一部分被包含的客户端设备700、经MAM控制的App 705和SDK710。而在图6中,MAM组件615是经MAM控制的App 610的一部分,图7示出了MAM组件715不是经MAM控制的App 705的一部分,而是在客户端设备700上操作的独立组件的场景。在该场景中,MAM组件715可以作为客户端设备700上的中央控制组件来操作,并且可以潜在地控制多个经MAM控制的App,而图6的MAM组件615仅控制一个经MAM控制的App 610。话虽如此,MAM组件715仍然不具有对客户端设备700的完全控制;相反,MAM组件715具有限定的控制,因为它只能控制指定的应用。因此,在一些实施例中,客户端设备包含限定或限制经MAM控制的App的操作的MAM组件。
前面提到的SDK被配置为与OS通信,以确定经MAM控制的App的UI何时即将表面化或被带到前台。SDK还可以确定UI是否已经被带到前台或当前正在被带到前台。这样的场景可以是针对自动开启VPN应用的触发条件。图8是说明性的。
图8示出了最初处于客户端设备后台805位置的UI 800的示例。UI 800是经MAM控制应用的UI。前面提到的SDK能够与客户端设备的OS通信,以确定UI 800何时从后台805过渡到前台810。在某些情况下,SDK能够基于与OS的通信确定UI 800何时过渡的时间段815。在这方面,SDK可以确定UI 800当前是否正在过渡到前台810和/或可以确定UI 800随后何时过渡的即将到来的时间段。SDK还可以确定UI 800是否已经过渡到前台810。
在UI 800已经过渡到前台810之前、期间或之后的确定时间段内,SDK能够实现策略,该策略在被实现时导致VPN应用自动被激活或启动,如自动开启820所示。也就是说,SDK可以可选地与OS通信以触发VPN应用的自动开启。
类似地,当UI从前台825过渡到后台830时,SDK可以检测到这样的过渡(例如,通过与OS的通信),以然后自动停止或终止VPN隧道和/或VPN应用,如自动停止835所示。现在将结合图9和图10的流程图讨论关于这些特征的进一步细节。
示例方法
下面的讨论现在涉及到多个可以被执行的方法和方法动作。尽管可以按照一定的顺序讨论方法动作,或在流程图中将方法动作说明为按照特定的顺序进行,但除非特别说明,或由于某一动作依赖于在执行该动作之前完成另一动作,否则不需要特定的顺序。
图9示出了针对在客户端设备上操作的移动应用管理(MAM)环境中自动开启虚拟专用网络(VPN)的示例方法900的流程图。例如,方法900可以使用图6的客户端设备600或图7的客户端设备700实现。类似地,方法900可以在图1的BYOD架构100中实现。至少部分公开的操作可以由前面提到的SDK执行,SDK可以通过计算机处理器实现。此外,在更高级别上,公开的操作可以由计算机处理器执行。例如,处理器可以执行SDK的操作、OS的操作以及VPN应用的操作等。关于处理器的详细信息稍后将结合图11提供。
最初,有一个动作(动作905)是确定经MAM控制的App正在客户端设备上启动。术语"启动"应作广义解释,并且可以包含经MAM控制的App的初始启动,甚至可能包含经MAM控制的App正在恢复并且应用的UI被带到设备前台的场景。
确定经MAM控制的App正在启动的过程可以由前面提到的SDK执行。特别是,SDK可以在经MAM控制的App启动时被触发。类似地,SDK可以与OS通信以确定有关经MAM控制的App的附加信息,例如,或许何时经MAM控制的App的UI从后台过渡到前台。
在确定经MAM控制的App正在启动之后,动作910涉及查询策略,并基于该策略来确定是否自动开启VPN应用。例如,图6的SDK 620可以查询被存储或本地缓存在客户端设备上的策略635,和/或可以查询被远程存储的策略650A。该策略是企业策略,可以描绘在经MAM控制的App使用时VPN是否应该被使用。SDK(或库)可以解释该策略,然后应用该策略,例如通过促进VPN应用的自触发或自动开启,然后可以发起VPN隧道(即VPN应用被配置为发起VPN隧道)。当策略被远程存储时,查询策略的过程可以可选地触发从远程服务器向客户端设备下载本地策略。
基于指示VPN应用将在经MAM控制的应的启动(包含将UI带到前台的场景)之后或同时自动开启的策略,动作915包含自动触发或自动开启VPN应用,从而发起至少经MAM控制的App可以使用的VPN隧道。例如,图6中的策略635,650A可以指示当经MAM控制的App 610的UI被带到前台时应使用VPN。
在某些情况下,VPN应用在确定经MAM控制的App的UI随后将被带到客户端设备的前台之后发起VPN隧道。例如,通过与OS通信(或者可能拦截来自OS的通信),SDK可以确定何时UI随后将被带到前台。例如,通信可以被拦截或接收,其中通信指示在指定的时间段内(例如,也许1毫秒(ms)、2毫秒、3毫秒、4毫秒、5毫秒等),UI将被表面化并被带到前台。基于这种通信,SDK然后可以触发VPN应用的启动或自动开启。
从这个意义上说,被集成在经MAM控制的App中的库(例如,SDK)标识何时经MAM控制的App的用户界面(UI)随后将被带到客户端设备的前台。此外,该库可以提交消息以查询策略,从而确定VPN应用是否将自动开启。
在某些情况下,VPN应用会在经MAM控制的App启动之后、经MAM控制的App的UI被带到前台之前发起VPN隧道。在某些情况下,VPN应用在UI被带到前台之后的指定时间范围内发起VPN隧道。例如,指定的时间范围可能是1毫秒(ms)、2毫秒、3毫秒、4毫秒、5毫秒等。
动作920然后涉及使向经MAM控制的App传输或从经MAM控制的App传输的网络通信通过由VPN应用提供的VPN隧道,VPN应用是基于与经MAM控制的App相关联的策略被自动触发或自动开启的。为了说明,在图6的VPN隧道665已经由VPN应用655发起之后,网络通信670可以通过VPN隧道665被传输。VPN应用提供的VPN隧道可以被配置为托管来自在客户端设备上执行的多个不同应用(例如,多个不同的经MAM控制的App)的多个网络通信。
可选地(如虚线边框所示),动作925可以包含使VPN应用在VPN应用被自动开启之后的某个时间点终止VPN隧道。这种终止可以由于以下原因而发生:(i)由于经MAM控制的App已经被关闭或已经停止操作或也许正在被关闭过程中的确定,(ii)由于UI正在从前台过渡(或已经过渡)到后台的确定,或者(iii)由于某些其他条件正在被满足。另一个条件的示例可以是用户锁定了他/她的设备或设备已经进入睡眠状态的场景。
图10示出了还可以被所公开的SDK执行的示例方法1000的另一个流程图。具体而言,方法1000列举了针对在移动应用管理(MAM)环境中自动开启虚拟专用网络(VPN)的各种操作,该移动应用管理(MAM)环境是在计算机系统上操作的,例如所公开的客户端设备。
动作1005包含确定经MAM控制的App正在计算机系统上启动。如前所述,此类操作可以由与设备OS交互的SDK执行,以确定经MAM控制的App如何启动。启动包含将经MAM控制的App的UI带到前台的场景。
在确定经MAM控制的App正在启动后,动作1010包含查询策略。动作1015然后包含确定该策略指示VPN应用将在经MAM控制的App的用户界面(UI)正在被带到计算机系统前台之后或同时自动发起VPN隧道。该策略由企业控制,SDK可以在客户端设备上实现该策略。
响应于经MAM控制的App的UI随后将被带到前台的指示,动作1020包含使VPN应用发起能够至少被经MAM控制的App使用的VPN隧道。在一些实施例中,该指示可以指示经MAM控制的App的UI将被带到前台。此外,该指示可以由计算机系统的操作系统提供。
另外,动作1025包含使向经MAM控制的App传输或从经MAM控制的App传输的网络通信通过由VPN应用提供的VPN隧道。因此,所公开的实施例带来众多且实质性的益处,特别是作为能够在MAM环境中自动开启VPN应用的结果。
示例计算机/计算机系统
现在将注意力转向图11,图11示出了其可以包含和/或被用于执行本公开所述的任何操作的示例计算机系统1100。计算机系统1100可以采用各种不同的形式。例如,计算机系统1100可以体现为平板电脑1100A、台式机或膝上型电脑1100B、可穿戴设备1100C、移动设备或独立设备。省略号1100D指示计算机系统1100还可以采用任何其他形式。计算机系统1100还可以是分布式系统,其包含与计算机系统1100通信的一个或多个连接的计算组件/设备。
在其最基本的配置中,计算机系统1100包含各种不同的组件。图11示出了计算机系统1100包含一个或多个处理器1105(又称“硬件处理单元”)和存储1110。
关于处理器1105,应当理解,可以理解的是,本文所描述的功能至少部分可以由一个或多个硬件逻辑组件(如处理器1105)执行。例如,在不限定的情况下,可以使用的硬件逻辑组件/处理器的说明性类型包含现场可编程门阵列(“FPGA”)、程序专用或应用专用集成电路(“ASIC”)、程序专用标准产品(“ASSP”)、片上系统(“SOC”)、复杂可编程逻辑器件(“CPLD”)、中央处理单元(“CPU”)、图形处理单元(“GPU”)或任何其他类型的可编程硬件。
如本公开所使用的术语“可执行模块”、“可执行组件”、“组件”、“模块”、“引擎”或甚至“SDK”可以指代硬件处理单元或可在计算机系统1100上执行的软件对象、例程或方法。本公开所描述的不同组件、模块、引擎和服务可以作为在计算机系统1100上执行的对象或处理器(例如作为独立的线程)被实现。
存储1110可以是物理系统存储,其可以是易失性的、非易失性的或两者的某种组合。术语“存储”在本公开中还可以被用于指代非易失性大容量存储,例如物理存储介质。如果计算机系统1100是分布式的,则处理、存储和/或存储能力还可以是分布式的。
存储1110被示出为包含可执行指令1115。可执行指令1115表示可由计算机系统1100的处理器1105的指令,以执行所公开的操作,例如在各种方法中描述的操作。
所公开的实施例可以包括或使用包含计算机硬件的专用或通用计算机,例如,一个或多个处理器(例如处理器1105)和系统存储(例如存储1110),下文将详细讨论。实施例还包含被用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是通用或专用计算机系统可以访问的任何可用介质。以数据形式存储计算机可执行指令的计算机可读介质是“物理计算机存储介质”或“硬件存储设备”。携带计算机可执行指令的计算机可读介质是“传输介质”。因此举例说明而非限定,本发明的实施例可以包括至少两种截然不同的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质(又名“硬件存储设备”)是计算机可读硬件存储设备,例如RAM、ROM、EEPROM、CD-ROM、基于RAM的固态驱动器("SSD")、闪存、相变存储("PCM")或其他类型的9存储,或其他光盘存储、磁盘存储或其他磁性存储设备,或任何其他介质,或可被用于以计算机可执行指令、数据或数据结构的形式存储所需程序代码手段,并且可被通用或专用计算机访问。
计算机系统1100还可以通过网络1120被连接(通过有线或无线连接)向外部传感器(例如,一个或多个远程摄像机)或设备。例如,计算机系统1100可以与任何数量的设备或云服务通信以获得或处理数据。在某些情况下,网络1120本身可以是云网络。此外,计算机系统1100还可以通过一个或多个有线或无线网络连接到远程/单独的计算机系统,这些计算机系统被配置为执行关于计算机系统1100所描述的任何处理。
“网络”,如网络1120,被定义为一个或多个数据链路和/或数据交换机,使得能够在计算机系统、模块和/或其他电子设备传输电子数据。当信息通过网络(硬连线、无线或硬连线和无线的组合)被传输或提供向计算机时,计算机正确地将连接视为传输介质。计算机系统1100将包含被用于与网络1120通信的一个或多个通信通道。传输介质包含可以被用于以计算机可执行指令的形式或以数据结构的形式携带数据或所需程序代码手段的网络。此外,这些计算机可执行指令可以由通用或专用计算机访问。上述的组合也应包括在计算机可读介质的范围内。
在到达各种计算机系统组件时,计算机可执行指令或数据结构形式的程序代码手段可以从传输介质被自动传输到计算机存储介质(反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以在网络接口模块(例如,网络接口卡或“NIC”)内的RAM缓冲,然后最终传输到计算机系统RAM和/或计算机系统处的较不易失性计算机存储介质。因此,应该理解,计算机存储介质可以包含在也(甚至主要)使用传输介质的计算机系统组件中。
例如,计算机可执行(或计算机可解释)指令包括使通用计算机、专用计算机或专用处理设备执行某种功能或某组功能的指令。计算机可执行指令可以是,例如,二进制文件、诸如汇编语言的中间格式指令,甚至是源代码。尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求中定义的主题并不一定限定于上述描述的特征或动作。相反,所描述的特征和动作是作为实现权利要求的示例形式而公开的。
本领域技术人员将理解,本实施例可以在具有多种类型的计算机系统配置的网络计算环境中实施,包含个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器或可编程消费电子产品、网络PC、微型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等。本实施例还可以在分布式系统环境中实施,其中通过网络链接(通过硬连线数据链路、无线数据链路或通过硬连线和无线数据链路的组合)的本地和远程计算机系统各自执行任务(例如云计算、云服务等)。在分布式系统环境中,程序模块可以位于本地和远程内存存储设备中。
鉴于上述情况,本发明可体现为多种不同的配置,如上所述,并通过以下方面加以说明。
1.一种用于在移动应用管理(MAM)环境中自动开启虚拟专用网络(VPN)的方法,所述MAM环境正在客户端设备上操作,所述方法包括:
确定经MAM控制的App正在所述客户端设备上启动;
在确定所述经MAM控制的App正在启动之后,查询策略并且基于所述策略来确定是否自动开启VPN应用;
基于指示所述VPN应用将在所述经MAM控制的App的启动之后或与所述经MAM控制的App的所述启动同时被自动开启的所述策略,自动开启所述VPN应用,所述VPN应用被配置为发起能够至少被所述经MAM控制的App使用的VPN隧道;
以及
使向所述经MAM控制的App传输或从所述经MAM控制的
App传输的网络通信通过所述VPN隧道。
2.根据前述方面1所述的方法,其中在所述经MAM控制的App的用户界面(UI)随后将被带到所述客户端设备的前台的确定之后,所述VPN应用发起所述VPN隧道。
3.根据前述方面1至2所述的方法,其中在所述经MAM控制的App启动之后并且在所述经MAM控制的App的用户界面(UI)被带到所述客户端设备的前台之前,所述VPN应用发起所述VPN隧道。
4.根据前述方面1至3所述的方法,其中被集成在所述经MAM控制的App内的库标识何时所述经MAM控制的App的用户界面(UI)随后将被带到所述客户端设备的前台,并且其中所述库提交消息以查询所述策略。
5.根据前述方面1至4所述的方法,其中所述策略被本地缓存在所述客户端设备上。
6.根据前述方面1至5所述的方法,其中查询所述策略触发从远程服务器向所述客户端设备本地下载所述策略。
7.根据前述方面1至6所述的方法,其中与所述经MAM控制的App集成的库与所述客户端设备的操作系统通信,其中所述库基于与所述操作系统的通信来确定何时所述经MAM控制的App的用户界面(UI)随后将被带到所述客户端设备的前台,并且其中响应于所述UI随后将在确定的时间段内被带到所述前台的确定,所述库触发所述VPN应用以发起所述VPN隧道。
8.根据前述方面1至7所述的方法,其中由所述VPN应用提供的所述VPN隧道被配置为托管来自在所述客户端设备上执行的多个不同应用的多个网络通信。
9.根据前述方面1至8所述的方法,其中所述MAM环境操作以限制所述经MAM控制的App,但避免限制被安装在所述客户端设备上的第二应用。
10.根据前述方面1至9所述的方法,其中所述方法还包括使所述VPN应用终止所述VPN隧道。
11.一种计算机系统,被配置为在移动应用管理(MAM)环境中自动开启虚拟专用网络(VPN),所述MAM环境正在所述计算机系统上操作,所述计算机系统包括:
处理器;以及
计算机可读硬件存储设备,所述计算机可读硬件存储设备存储能够被所述处理器执行的指令,以使所述计算机系统至少:
确定经MAM控制的App正在所述计算机系统上启动;
在确定所述经MAM控制的App正在启动之后,查询策略并且基于所述策略来确定是否自动开启VPN应用;
基于指示所述VPN应用将在所述经MAM控制的App的启动之后或与所述经MAM控制的App的所述启动同时被自动开启的所述策略,自动开启所述VPN应用,所述VPN应用被配置为发起能够至少被所述经MAM控制的App使用的VPN隧道;
使向所述经MAM控制的App传输或从所述经MAM控制的App传输的网络通信通过所述VPN隧道;以及
使所述VPN应用终止所述VPN隧道。
12.根据前述方面11所述的计算机系统,其中响应于所述经MAM控制的App已经停止操作的确定,所述VPN应用终止所述VPN隧道。
13.根据前述方面11至12所述的计算机系统,其中响应于所述经MAM控制的App的用户界面(UI)已经从所述计算机系统的前台转变到所述计算机系统的后台的确定,所述VPN应用终止所述VPN隧道。
14.根据前述方面11至13所述的计算机系统,其中响应于所述经MAM控制的App已经被关闭的确定,所述VPN应用终止所述VPN隧道。
15.根据前述方面11至14所述的计算机系统,其中所述经MAM控制的App包括限定所述经MAM控制的App的操作的MAM组件。
16.根据前述方面11至15所述的计算机系统,其中所述计算机系统包括限定所述经MAM控制的App的操作的MAM组件。
17.根据前述方面11至16所述的计算机系统,其中所述VPN应用发起所述VPN隧道,所述VPN隧道独立于为操作所述经MAM控制的App而执行的逻辑。
18.根据前述方面11至17所述的计算机系统,其中自动触发所述VPN应用通过使用标准平台提供的进程间通信(IPC)被执行,所述VPN应用然后发起所述VPN隧道的。
19.一种计算机系统,被配置为在移动应用管理(MAM)环境中自动开启虚拟专用网络(VPN),所述MAM环境正在所述计算机系统上操作,所述计算机系统包括:
处理器;以及
计算机可读硬件存储设备,所述计算机可读硬件存储设备存储能够被所述处理器执行的指令,以使所述计算机系统至少:
确定经MAM控制的App正在所述计算机系统上启动;
在确定所述经MAM控制的App正在启动之后,查询策略;
确定所述策略指示所述VPN应用将在所述经MAM控制的App的用户界面(UI)正在被带到所述计算机系统的前台之后或同时自动发起VPN隧道;
响应于所述经MAM控制的App的所述UI随后将被带到所述前台的指示,使所述VPN应用发起能够至少被所述经MAM控制的App使用的所述VPN隧道;以及
使向所述经MAM控制的App传输或从所述经MAM控制的App传输的网络通信通过由所述VPN应用提供的所述VPN隧道。
20.根据前述方面19所述的计算机系统,其中指示所述经MAM控制的App的所述UI将被带到所述前台的所述指示由所述计算机系统的操作系统提供。
本发明可以在不脱离其特征的情况下以其他具体形式体现。所描述的实施例在各方面仅应视为说明性的,而非限制性的。因此,本发明的范围由所附的权利要求书而不是上述描述来说明。在权利要求书的含义和等同范围内的所有变化都应包含在其范围内。

Claims (15)

1.一种用于在移动应用管理(MAM)环境中自动开启虚拟专用网络(VPN)的方法,所述MAM环境正在客户端设备上操作,所述方法包括:
确定经MAM控制的App正在所述客户端设备上启动;
在确定所述经MAM控制的App正在启动之后,查询策略并且基于所述策略来确定是否触发VPN应用;
基于指示所述VPN应用将在所述经MAM控制的App的启动之后或与所述经MAM控制的App的所述启动同时被触发的所述策略,自动触发所述VPN应用,所述VPN应用发起能够至少被所述经MAM控制的App使用的VPN隧道;以及
使向所述经MAM控制的App传输或从所述经MAM控制的App传输的网络通信通过由所述VPN应用提供的所述VPN隧道,所述VPN应用是基于与所述经MAM控制的App相关联的所述策略被自动触发的。
2.根据权利要求1所述的方法,其中在所述经MAM控制的App的用户界面(UI)随后将被带到所述客户端设备的前台的确定之后,所述VPN应用发起所述VPN隧道。
3.根据权利要求1所述的方法,其中在所述经MAM控制的App启动之后并且在所述经MAM控制的App的用户界面(UI)被带到所述客户端设备的前台之前,所述VPN应用发起所述VPN隧道。
4.根据权利要求1所述的方法,其中被集成在所述经MAM控制的App内的库标识何时所述经MAM控制的App的用户界面(UI)随后将被带到所述客户端设备的前台,并且其中所述库提交消息以查询所述策略。
5.根据权利要求1所述的方法,其中所述策略被本地缓存在所述客户端设备上。
6.根据权利要求1所述的方法,其中查询所述策略触发从远程服务器向所述客户端设备本地下载所述策略。
7.根据权利要求1所述的方法,其中与所述经MAM控制的App集成的库与所述客户端设备的操作系统通信,
其中所述库基于与所述操作系统的通信来确定何时所述经MAM控制的App的用户界面(UI)随后将被带到所述客户端设备的前台,并且
其中响应于所述UI随后将在确定的时间段内被带到所述前台的确定,所述库触发所述VPN应用以发起所述VPN隧道。
8.根据权利要求1所述的方法,其中由所述VPN应用提供的所述VPN隧道被配置为托管来自在所述客户端设备上执行的多个不同应用的多个网络通信。
9.根据权利要求1所述的方法,其中所述MAM环境操作以限制所述经MAM控制的App,但避免限制被安装在所述客户端设备上的第二应用。
10.根据权利要求1所述的方法,其中所述方法还包括使所述VPN应用终止所述VPN隧道。
11.一种计算机系统,被配置为在移动应用管理(MAM)环境中自动开启虚拟专用网络(VPN),所述MAM环境正在所述计算机系统上操作,所述计算机系统包括:
处理器;以及
计算机可读硬件存储设备,所述计算机可读硬件存储设备存储能够被所述处理器执行的指令,以使所述计算机系统至少:
确定经MAM控制的App正在所述计算机系统上启动;
在确定所述经MAM控制的App正在启动之后,查询策略并且基于所述策略来确定是否触发VPN应用;
基于指示所述VPN应用将在所述经MAM控制的App的启动之后或与所述经MAM控制的App的所述启动同时被触发的所述策略,自动触发所述VPN应用,所述VPN应用发起能够至少被所述经MAM控制的App使用的VPN隧道;
使向所述经MAM控制的App传输或从所述经MAM控制的App传输的网络通信通过由所述VPN应用提供的所述VPN隧道,所述VPN应用是基于与所述经MAM控制的App相关联的所述策略被自动触发的;以及
使所述VPN应用终止所述VPN隧道。
12.根据权利要求11所述的计算机系统,其中响应于所述经MAM控制的App已经停止操作的确定,所述VPN应用终止所述VPN隧道。
13.根据权利要求11所述的计算机系统,其中响应于所述经MAM控制的App的用户界面(UI)已经从所述计算机系统的前台转变到所述计算机系统的后台的确定,所述VPN应用终止所述VPN隧道。
14.根据权利要求11所述的计算机系统,其中响应于所述经MAM控制的App已经被关闭的确定,所述VPN应用终止所述VPN隧道。
15.根据权利要求11所述的计算机系统,其中所述经MAM控制的App包括限定所述经MAM控制的App的操作的MAM组件。
CN202280042751.2A 2021-06-15 2022-05-18 通过仅应用管理的移动vpn自动开启 Pending CN117501270A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/348,541 US11909723B2 (en) 2021-06-15 2021-06-15 Mobile VPN autostart through app-only management
US17/348,541 2021-06-15
PCT/US2022/029733 WO2022265791A1 (en) 2021-06-15 2022-05-18 Mobile vpn autostart through app-only management

Publications (1)

Publication Number Publication Date
CN117501270A true CN117501270A (zh) 2024-02-02

Family

ID=82058311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280042751.2A Pending CN117501270A (zh) 2021-06-15 2022-05-18 通过仅应用管理的移动vpn自动开启

Country Status (5)

Country Link
US (2) US11909723B2 (zh)
EP (1) EP4356277A1 (zh)
KR (1) KR20240021816A (zh)
CN (1) CN117501270A (zh)
WO (1) WO2022265791A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220417217A1 (en) * 2021-06-29 2022-12-29 Charter Communications Operating, Llc Method and Apparatus for Automatically Switching Between Virtual Private Networks

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8578443B2 (en) * 2011-06-01 2013-11-05 Mobileasap, Inc. Real-time mobile application management
US9043480B2 (en) * 2011-10-11 2015-05-26 Citrix Systems, Inc. Policy-based application management
US8806570B2 (en) * 2011-10-11 2014-08-12 Citrix Systems, Inc. Policy-based application management
US20140032733A1 (en) * 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management
US20140109176A1 (en) * 2012-10-15 2014-04-17 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US20140109171A1 (en) * 2012-10-15 2014-04-17 Citrix Systems, Inc. Providing Virtualized Private Network tunnels
US10277578B2 (en) * 2015-01-05 2019-04-30 Citrix Systems, Inc. Securing network activity managed by operating systems
US9735943B2 (en) * 2015-05-11 2017-08-15 Citrix Systems, Inc. Micro VPN tunneling for mobile platforms
US10678867B2 (en) * 2017-08-16 2020-06-09 Citrix Systems, Inc. Systems and methods for web collaboration
US9948612B1 (en) * 2017-09-27 2018-04-17 Citrix Systems, Inc. Secure single sign on and conditional access for client applications
US10761863B2 (en) * 2018-09-28 2020-09-01 Citrix Systems, Inc. Mobile application management by run-time insertion of a replacement instrumentation object into a mobile application process
US10698703B2 (en) * 2018-09-28 2020-06-30 Citrix Systems, Inc. Mobile application management by run-time insertion of a substitute application class loader into a mobile application process

Also Published As

Publication number Publication date
US20240137343A1 (en) 2024-04-25
US11909723B2 (en) 2024-02-20
KR20240021816A (ko) 2024-02-19
US20220400100A1 (en) 2022-12-15
WO2022265791A1 (en) 2022-12-22
EP4356277A1 (en) 2024-04-24

Similar Documents

Publication Publication Date Title
CN109478134B (zh) 用跨账户别名执行按需网络代码
US11146569B1 (en) Escalation-resistant secure network services using request-scoped authentication information
CN107533470B (zh) 一种用于从虚拟计算群提供低延时计算能力的系统及计算机实施的方法
US9240977B2 (en) Techniques for protecting mobile applications
JP2019016396A (ja) 複数の操作モードを有するアプリケーションのデータ管理
US20210314144A1 (en) Modifiable client-side encrypted data in the cloud
JP2019526842A (ja) 仮想ブラウザ統合
US11303641B2 (en) Methods and systems for accessing remotely stored files using virtual applications
EP3265949B1 (en) Operating system management
JP2012531676A (ja) 仮想モバイル機器
US11356295B2 (en) Per-app virtual private network tunnel for multiple processes
US20240137343A1 (en) Mobile vpn autostart through app-only management
US11544415B2 (en) Context-aware obfuscation and unobfuscation of sensitive content
GB2601582A (en) Method to encrypt the data at rest for data residing on Kubernetes persistent volumes
CN113316924A (zh) 用于saas应用的推送通知服务的系统和方法
WO2022109506A1 (en) Snap-in secret server support
US10310696B1 (en) Supporting a consistent user interface within a virtualized environment
US11720291B2 (en) Methods and systems for accessing remotely stored files using virtual applications
US11606689B1 (en) Systems and methods for authenticating application points of entry to prevent unauthorized use of locked mobile applications
JP7027612B2 (ja) ヘルパを介したクライアントデバイスの匿名セッションへの接続
Abahussain et al. People and Mobile Computing: Architecture and Concerns
US20220405389A1 (en) Image steganography detection

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