CN111226429A - 经由嵌入式浏览器拦截和增强saas应用调用的***和方法 - Google Patents

经由嵌入式浏览器拦截和增强saas应用调用的***和方法 Download PDF

Info

Publication number
CN111226429A
CN111226429A CN201980003123.1A CN201980003123A CN111226429A CN 111226429 A CN111226429 A CN 111226429A CN 201980003123 A CN201980003123 A CN 201980003123A CN 111226429 A CN111226429 A CN 111226429A
Authority
CN
China
Prior art keywords
application
client
web
api
client application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201980003123.1A
Other languages
English (en)
Other versions
CN111226429B (zh
Inventor
V·博卡
S·萨姆帕斯
D·沙玛
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN111226429A publication Critical patent/CN111226429A/zh
Application granted granted Critical
Publication of CN111226429B publication Critical patent/CN111226429B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

所描述的实施例包括用于经由客户端应用的嵌入式浏览器为网络应用调用客户端应用的应用编程接口的***和方法。该方法包括由客户端设备上的客户端应用建立与经由客户端应用的嵌入式浏览器访问的一个或多个网络应用的一个或多个会话。客户端应用提供多个应用编程接口(API)。客户端应用可以拦截由一个或多个网络应用中的网络应用调用的第一API,并识别用于使用客户端应用的多个API的策略。客户端应用可以至少基于该策略来确定多个API中的第二API以用于被拦截的第一API,并且针对被拦截的第一API调用,执行客户端应用的多个API中的第二API。

Description

经由嵌入式浏览器拦截和增强SAAS应用调用的***和方法
相关申请的交叉引用
本申请要求于2018年9月21日提交的,序列号为16/138,076,名称为“SYSTEMS ANDMETHODS FOR INTERCEPTING AND ENHANCING SAAS APPLICATION CALLS VIA EMBEDDEDBROWSER”的美国专利申请的优先权和权益,其内容通过引用全部并入本文用于所有目的。
技术领域
本申请总的涉及应用的管理,包括但不限于用于使用嵌入式浏览器管理和监视web和软件即服务(SaaS)应用的***和方法。
背景技术
随着企业的劳动力变得更加流动,并在各种条件下工作,个人可以使用一个或多个客户端设备(包括个人设备)来访问网络资源,例如web应用。由于客户端设备和网络资源访问方式的不同,企业在管理对网络资源的访问和监视潜在的资源滥用方面面临着重大挑战。
发明内容
本公开涉及通过嵌入式浏览器为网络应用调用客户端应用的应用编程接口(API)。客户端应用可以在客户端设备上执行,并且可以通过客户端应用的嵌入式浏览器,为客户端设备建立与一个或多个网络应用的一个或多个会话。客户端应用可以拦截网络应用对API的调用,并增强被调用的API,或者提供与网络应用调用的API相比具有更大功能的不同API。不同的API可以包括最初调用的API不包括的功能,例如但不限于安全特性和/或访问控制。例如,在会话期间,网络应用(例如,web应用、软件即服务(SaaS)应用)可以经由客户端应用的嵌入式浏览器调用API。该API可以包括打印API。客户端应用可以增强或优化所调用的打印API,以改进打印API的功能。例如,客户端应用可以修改打印API,使打印API直接打印,而不是执行典型的浏览器打印流程。客户端应用可以提供第二种不同的打印API,该打印API被配置为直接打印。
客户端应用可以提供API,网络应用可以调用这些API来访问客户端资源、客户端驱动器和/或客户端设备(例如但不限于与客户端设备和生物特征耦合的USB设备),和/或与客户端设备本地或本机的应用通信。在一些实施例中,客户端应用可以在客户端设备和网络应用之间的会话上应用一个或多个策略来实施某些限制,即使特定网络应用不支持相应的一个或多个策略。例如,在一个实施例中,即使网络应用不支持智能卡认证,客户端应用也可以应用策略来对网络应用实施智能卡认证。
客户端应用可以拦截由网络应用作出的调用,以建立与本机端点应用(例如但不限于客户端驱动器和/或***设备)的集成。客户端应用可以实施用于数据丢失预防的策略和/或限制对网络应用某些部分的访问。客户端应用可以通过控制网络应用的加载和/或呈现方式来优化网络应用性能,并对网络应用的使用提供更细粒度的访问控制。
在一方面,本公开涉及一种经由客户端应用的嵌入式浏览器为网络应用调用客户端应用的应用编程接口的方法。该方法包括由客户端设备上的客户端应用建立与一个或多个网络应用的一个或多个会话,所述一个或多个网络应用经由客户端应用的嵌入式浏览器被访问。客户端应用提供多个应用编程接口(API)。该方法还包括由客户端应用拦截由一个或多个网络应用中的网络应用调用的第一应用编程接口(API);以及由客户端应用针对网络应用,识别用于使用客户端应用的多个API的策略。该方法还包括由客户端应用至少基于该策略,确定客户端应用的多个API中的第二API,以用于被拦截的第一API;以及由客户端应用针对被拦截的第一API调用,执行客户端应用的多个API中的第二API。
嵌入式浏览器可以集成到客户端应用中。一个或多个网络应用可以包括托管在服务器上的应用,所述服务器由客户端设备经由网络访问。该方法可以包括由客户端应用拦截第一API,所述第一API包括客户端应用的浏览器中的网络应用的网页的超文本标记语言API。该方法可以包括识别分配给网络应用、客户端设备或者网络应用或客户端设备的用户的策略。该策略可以由客户端应用从一实体的服务器获得,所述实体不同于网络应用的实体。
该方法可以包括由嵌入式浏览器执行在客户端应用中的第二API。客户端应用的第二API提供经由网络应用的第一API不可用的功能。
在另一方面,本公开涉及一种用于经由客户端应用的嵌入式浏览器为网络应用调用客户端应用的应用编程接口的***。该***包括在客户端设备上可执行的客户端应用。该客户端应用提供多个应用编程接口(API),所述多个应用编程接口由客户端应用经由嵌入式浏览器可执行。客户端应用可以被配置为建立与一个或多个网络应用的一个或多个会话,所述一个或多个网络应用经由客户端应用的嵌入式浏览器被访问;拦截由一个或多个网络应用中的网络应用调用的第一应用编程接口(API)。客户端应用还可以被配置为针对网络应用,识别用于使用客户端应用的多个API的策略;以及至少基于该策略确定客户端应用的多个API中的第二API,以用于被拦截的第一API;以及针对被拦截的第一API调用,执行客户端应用的多个API中的第二API。
客户端应用还可以被配置为拦截第一API,所述第一API包括客户端应用的浏览器中一个或多个网络应用的至少一个网络应用的网页的超文本标记语言API。客户端应用还可以被配置为识别分配给一个或多个网络应用中的至少一个网络应用、客户端设备或者至少一个网络应用或客户端设备的用户的策略。客户端应用还可以被配置为由嵌入式浏览器执行在客户端应用中的第二API。客户端应用的第二API提供了经由网络应用的第一API不可用的功能。
在另一方面,本公开涉及一种经由网络应用在客户端应用的嵌入式浏览器中调用客户端应用的应用编程接口的方法。该方法包括由客户端设备上的客户端应用建立与网络应用的会话,所述网络应用经由客户端应用的嵌入式浏览器被访问。客户端应用提供客户端应用经由嵌入式浏览器可执行的多个应用编程接口(API)。该方法还包括由嵌入式浏览器接收网络应用的网页。该网页包括客户端应用的多个API中的API。该方法还包括由客户端应用针对网络应用,识别用于使用客户端应用的API的策略;以及由客户端应用基于该策略,确定网络应用有权执行客户端应用的API。该方法还包括由客户端应用针对网络应用的网页,执行客户端应用的API。
该方法可以包括由嵌入式浏览器确定网页调用的API是客户端应用的API。该方法可以包括识别分配给网络应用、客户端设备或者网络应用或客户端设备的用户的策略。
附图说明
通过参考下面的描述并结合附图,本解决方案的上述和其他对象、方面、特性和优点将变得更加明显和更好地理解,其中:
图1是计算设备的实施例的框图;
图2是用于访问资源的云服务的示意性实施例的框图;
图3是企业移动性管理***的示例实施例的框图;
图4是嵌入式浏览器的***400的框图;
图5是用于使用安全浏览器的***的示例实施例的框图;
图6是使用安全浏览器插件的浏览器重定向的实现的示例表示;
图7是使用安全浏览器的***的示例实施例的框图;
图8是用于使用本地嵌入式浏览器和托管的安全浏览器的***的示例实施例的框图;
图9是用于使用本地嵌入式浏览器和托管的安全浏览器的示例处理流程;以及
图10是用于管理用户对网页的访问的***的示例实施例。
图11是用于经由嵌入式浏览器为网络应用调用客户端应用的应用编程接口(API)的***的示例实施例的框图;
图12是为客户端设备提供API的客户端应用内的嵌入式浏览器的框图的示例实施例;
图13是用于经由嵌入式浏览器为网络应用调用客户端应用的应用编程接口的方法的示例实施例的流程图;以及
图14是用于经由网络应用在客户端应用的嵌入式浏览器中调用客户端应用的API的方法的示例实施例的流程图。
结合附图,根据以下详细描述,可以更清楚地了解本解决方案的特点和优点,其中相同的参考字符始终标识相应的元素。在附图中,相同的附图标记通常表示相同、功能相似和/或结构相似的元件。
具体实施方式
为了阅读下面各种实施例的描述,以下对说明书各部分及其各自内容的描述可能会有所帮助:
A部分描述了可用于实践本文所描述实施例的计算环境。
B部分描述了嵌入式浏览器的***和方法。
C部分描述了用于通过嵌入式浏览器为网络应用调用客户端应用的应用编程接口(API)的***和方法。
A.计算环境
在讨论本文B部分中详述的***和方法的实施例的细节之前,讨论可在其中部署此类实施例的计算环境可能有帮助。
如图1所示,计算机101可以包括一个或多个处理器103、易失性存储器122(例如,随机存取存储器(RAM))、非易失性存储器128(例如,一个或多个硬盘驱动器(HDD)或其他磁或光存储介质、一个或多个固态驱动器(SSD)(例如闪存驱动器或其他固态存储介质)、一个或多个磁性和固态混合驱动器、和/或一个或多个虚拟存储卷(例如云存储)、或此类物理存储卷和虚拟存储卷或其阵列的组合)、用户界面(UI)123、一个或多个通信接口118和通信总线150。用户界面123可以包括图形用户界面(GUI)124(例如触摸屏、显示器等)和一个或多个输入/输出(I/O)设备126(例如鼠标、键盘、麦克风、一个或多个扬声器、一个或多个摄像机、一个或多个生物特征扫描仪、一个或多个环境传感器、一个或多个加速度计等)。非易失性存储器128存储操作***115、一个或多个应用116和数据117,使得例如,操作***115和/或应用116的计算机指令由缺失易失性存储器122的处理器103执行。在一些实施例中,易失性存储器122可包括一种或多种类型的RAM和/或高速缓冲存储器,其可提供比主存储器更快的响应时间。数据可以使用GUI 124的输入设备输入或从I/O设备126接收。计算机101的各种元件可以经由一个或多个通信总线进行通信,如通信总线150所示。
如图1所示的计算机101仅作为示例示为客户端、服务器、中间装置和其他网络设备,可以由任何计算或处理环境来实现,并且可以使用任何类型的机器或机器组来实现,这些机器或机器组可以具有能够如本文所述操作的适当硬件和/或软件。处理器103可以由一个或多个可编程处理器实现,以执行一个或多个可执行指令,如计算机程序,从而执行***的功能。如本文所使用的,术语“处理器”描述执行功能、操作或操作序列的电路。功能、操作或操作序列可以硬编码到电路中,或者以存储设备中的指令形式进行软编码并由电路执行。“处理器”可以使用数字值和/或使用模拟信号来执行功能、操作或操作序列。在一些实施例中,“处理器”可以体现在一个或多个应用专用集成电路(ASIC)、微处理器、数字信号处理器(DSP)、图形处理单元(GPU)、微控制器、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、多核处理器,或具有相关联的存储器的通用计算机中。“处理器”可以是模拟、数字或混合信号。在一些实施例中,“处理器”可以是一个或多个物理处理器或一个或多个“虚拟”(例如,远程定位或“云”)处理器。包括多个处理器核的处理器和/或多个处理器可以提供并行、同时执行指令或在多个数据片上并行、同时执行一条指令的功能。
通信接口118可以包括一个或多个接口,以使计算机101能够通过各种有线和/或无线或蜂窝连接来访问计算机网络,例如局域网(LAN)、广域网(WAN)、个人区域网(PAN)或互联网。
在所描述的实施例中,计算设备101可以代表客户端计算设备的用户执行应用。例如,计算设备101可以执行虚拟机,虚拟机提供执行会话(例如托管的桌面会话),在执行会话中,应用代表用户或客户端计算设备而执行。计算设备101还可以执行终端服务会话以提供托管的桌面环境。计算设备101可以提供对计算环境的访问,该计算环境包括以下中的一个或多个:一个或多个应用、一个或多个桌面应用以及一个或多个桌面会话,一个或多个应用可以在桌面会话中执行。
网络环境、计算机101以及客户端和服务器计算机的实现和操作的其他细节,可以如佛罗里达州劳德代尔堡的思杰***公司(Citrix Systems)公司于2017年1月3日公告的,序列号为9,538,345的美国专利所描述的,其教示通过引用方式并入本文。
B.嵌入式浏览器的***和方法
本公开涉及嵌入式浏览器的***和方法。在客户端设备上执行的客户端应用可以允许用户访问从一个或多个服务器提供和/或托管在一个或多个服务器上的应用(APP),例如web应用和软件即服务(SaaS)应用(以下有时统称为网络应用)。嵌入式的或与客户端应用集成的浏览器可以向用户呈现经由客户端应用访问或请求的网络应用,并且可以启用用户与网络应用之间的交互。该浏览器有时被称为嵌入式浏览器,而具有嵌入式浏览器的客户端应用(CEB)有时被称为工作区应用。客户端应用可以建立到一个或多个服务器的安全连接,以提供应用会话,供用户使用客户端设备和嵌入式浏览器访问网络应用。嵌入式浏览器可以与客户端应用集成,以确保与网络应用相关的流量通过客户端应用路由和/或在客户端应用中进行处理,这可以向客户端应用提供对流量的实时可见性(例如,当通过客户端应用解密时)以及用户交互和行为。由于经由(由客户端应用和嵌入式浏览器共享的)用户界面请求网络应用并在同一用户界面中通过嵌入式浏览器呈现,因此嵌入式浏览器可以向用户提供无缝的体验。
客户端应用可以终止与网络应用的服务器建立的安全连接(例如,安全套接字层(SSL)虚拟专用网(VPN)连接)的一端。客户端应用可以从网络应用接收加密的流量,并且可以在进一步处理(例如,由嵌入式浏览器呈现)之前解密流量。客户端应用可以监视接收到的流量(例如,以加密分组的形式),并且还具有对解密的数据流和/或SSL堆栈的完全可见性。这种可见性可以允许客户端应用执行或促进基于策略的管理(例如,包括数据丢失预防(DLP)功能)、应用控制(例如,提高性能、服务级别)以及分析的收集和生成。例如,本地CEB可以向信息技术(IT)管理员提供一个受控***,用于通过CEB部署web和SaaS应用,并允许IT管理员经由CEB设置用于执行上述任一活动的策略或配置。
许多web和SaaS交付的应用从web服务器连接到用户的通用浏览器(如InternetExplorer、Firefox等)。一旦通过认证,这样的网络应用的整个会话都被加密。然而,在这种情况下,管理员可能无法查看、分析或控制从用户的数字工作区进入网络应用的内容或离开网络应用进入用户的数字工作区的内容。此外,在通用浏览器中查看的网络应用的内容可以(例如,由用户或程序)复制或下载到任何潜在的任意应用或设备,从而导致数据安全可能受到破坏。
本***和方法可以确保与网络应用相关联的流量通过CEB进行信道传输。举例来说,当用户访问例如启用了安全断言标记语言(SAML)的SaaS web服务时,可以将相应的访问请求转发到指定的网关服务,该网关服务确定、检查或验证是否使用CEB作出访问请求。响应于确定使用CEB作出访问请求,网关服务可以执行或提供认证和单点登录(SSO),并可以允许CEB直接连接到SaaS web服务。加密(例如,标准加密)可用于CEB和SaaS web服务之间的应用会话。当来自web服务的内容在CEB中未加密到经由嵌入式浏览器查看的内容时,和/或当输入经由CEB被输入时,CEB可以例如针对选择性应用相关信息提供附加服务用于控制和分析。例如,可以在CEB中嵌入分析代理或应用编程接口(API),以提供或执行附加服务。
CEB(有时称为工作区应用或接收器)可以与一个或多个网关服务、中间装置和/或网络服务器(有时统称为云服务或Citrix云)进行互操作,以提供对网络应用的访问。下面描述与云服务的实施例的操作相关的环境的特征和元素。
图2示出了用于访问资源(包括网络应用)的云服务的实施例。云服务可以包括企业移动技术架构200,在一个示意性实施例中,企业移动技术架构200可以包括接入网关260。例如,该架构可以用于自带设备(BYOD)环境中。该架构可以使客户端设备204(例如,移动或其他设备)的用户能够从客户端设备202访问企业资源或个人资源,并且将客户端设备204用于个人用途。用户可以经由在客户端设备204上执行的客户端应用来访问这样的企业资源204或企业服务208。用户可以使用自己购买的客户端设备204或由企业提供给用户的客户端设备202来访问这样的企业资源204或企业服务208。用户可将客户端设备202仅用于业务用途,或用于业务和个人用途。客户端设备可以运行iOS操作***和Android操作***等。企业可以选择实施管理客户端设备204的策略。这些策略可以通过防火墙或网关植入,从而可以识别、保护或安全验证客户端设备,并提供对企业资源的选择性或完全访问。这些策略可以是客户端设备管理策略,移动应用管理策略,移动数据管理策略,或者客户端设备、应用和数据管理策略的某些组合。通过应用客户端设备管理策略进行管理的客户端设备204可以被称为注册设备。例如,可以经由客户端应用来应用客户端设备管理策略。
在一些实施例中,客户端设备的操作***可以分为受管分区210和非受管分区212。受管分区210可以应用有策略,以保护运行在受管分区上的应用和存储在受管分区中的数据。在受管分区上运行的应用可能是安全的应用。在其它实施例中,所有应用可根据一组独立于应用接收的一个或多个策略文件来执行,该组策略文件定义一个或多个安全参数、特征、资源限制,和/或当该应用在设备上执行时由客户端设备管理***实施的其他访问控制。通过根据各自的策略文件进行操作,可以允许或限制每个应用与一个或多个其他应用和/或资源通信,从而创建虚拟分区。因此,如本文所使用的,分区可指存储器的物理分区部分(物理分区)、存储器的逻辑分区部分(逻辑分区)和/或由于在本文所述的多个应用中实施一个或多个策略和/或策略文件而创建的虚拟分区(虚拟分区)。换句话说,通过对受管应用实施策略,这些应用可能被限制为只能与其他受管应用和可信的企业资源通信,从而创建非受管应用和设备无法访问的虚拟分区。
安全应用可以是电子邮件应用、web浏览应用、软件即服务(SaaS)访问应用、Windows应用访问应用等。客户端应用可以包括安全应用启动器218。安全应用可以是安全本机应用214、由安全应用启动器218执行的安全远程应用222、由安全应用启动器218执行的虚拟化应用226等。安全本机应用214可以由安全应用封装器220封装。安全应用封装器220可以包括当在设备上执行安全本机应用时在客户端设备202上执行的集成策略。安全应用封装器220可以包括元数据,该元数据将在客户端设备202上运行的安全本机应用214指向在企业处托管的资源,安全本机应用214可能需要这些资源来完成在执行安全本机应用214时请求的任务。由安全应用启动器218执行的安全远程应用222可以在安全应用启动器应用218内执行。由安全应用启动器218执行的虚拟化应用226可以利用客户端设备202、企业资源204等处的资源。由安全应用启动器218执行的虚拟化应用226在客户端设备202上使用的资源可以包括用户交互资源、处理资源等。用户交互资源可用于收集和传输键盘输入、鼠标输入、摄像机输入、触觉输入、音频输入、视觉输入、手势输入等。处理资源可用于呈现用户界面、处理从企业资源204接收的数据等。由安全应用启动器218执行的虚拟化应用226在企业资源204处使用的资源可以包括用户界面生成资源、处理资源等。用户界面生成资源可用于组装用户界面、修改用户界面、刷新用户界面等。处理资源可用于创建信息、读取信息、更新信息、删除信息等。例如,虚拟化应用可以记录与图形用户界面(GUI)相关联的用户交互,并将这些用户交互传送至服务器应用,其中服务器应用可以使用用户交互数据作为在服务器上操作的应用的输入。在这种配置中,企业可以选择在服务器侧维护应用以及与应用相关联的数据、文件等。虽然企业可以根据本文的原则选择“动员”一些应用,方法是确保它们在客户端设备上部署(例如,经由客户端应用),但是对于某些应用,也可以为选择这种配置。例如,虽然一些应用可以安全地在客户端设备上使用,但其他应用可能未准备好或不适合在客户端设备上部署,因此企业可以选择通过虚拟化技术向移动用户提供对未准备好的应用的访问。作为另一个示例,企业可能拥有具有大型复杂数据集的大型复杂应用(例如,材料资源规划应用),在这些应用中,为客户端设备定制应用可能非常困难或者不可取,因此企业可以选择通过虚拟化技术提供对应用的访问。作为另一个示例,企业可能具有维护高度安全数据(例如,人力资源数据、客户数据、工程数据)的应用,这些数据可能被企业视为对即使安全的移动环境来说也过于敏感,因此企业可以选择使用虚拟化技术来允许移动访问此类应用和数据。企业可以选择在客户端设备上提供完全安全的和功能齐全的应用。企业可以使用客户端应用(可以包括虚拟化应用)来允许访问被认为在服务器侧操作更合适的应用。在一个实施例中,虚拟化应用可以将移动电话上的一些数据、文件等存储在一个安全的存储位置中。例如,企业可以选择允许在电话上存储某些信息,而不允许存储其他信息。
关于虚拟化应用,如本文所述,客户端设备可以具有虚拟化应用,该虚拟化应用被设计成呈现GUI,然后记录与GUI的用户交互。虚拟化应用可以将用户交互传送到服务器侧,以供服务器侧应用用作与应用的用户交互。作为响应,服务器侧的应用可以将新的GUI传输回客户端设备。例如,新的GUI可以是静态页面、动态页面、动画等,从而提供对远程定位资源的访问。
安全应用可以访问存储在客户端设备的受管分区210中的安全数据容器228中的数据。安全数据容器中受保护的数据可由安全封装的应用214、由安全应用启动器222执行的应用、由安全应用启动器218执行的虚拟化应用226等访问。存储在安全数据容器228中的数据可以包括文件、数据库等。存储在安全数据容器228中的数据可以包括受限于特定安全应用230的数据,在安全应用232之间共享的数据,等等。受限于安全应用的数据可以包括安全通用数据234和高度安全数据238。安全通用数据可以使用强加密形式,如高级加密标准(AES)128位加密等,而高度安全数据238可能使用非常强的加密形式,如AES 256位加密。存储在安全数据容器228中的数据可以在接收到来自设备管理器224的命令后从设备中删除。安全应用可以具有双模式选项240。双模式选项240可以向用户提供在非安全或非受管模式下操作安全应用的选项。在非安全或非受管模式下,安全应用可以访问存储在客户端设备202的非受管分区212上的非安全数据容器242中的数据。存储在非安全数据容器中的数据可以是个人数据244。存储在非安全数据容器242中的数据也可以由在客户端设备202的非受管分区212上运行的非安全应用248访问。当从客户端设备202删除存储在安全数据容器228中的数据时,存储在非安全数据容器242中的数据可以保留在客户端设备202上。企业可能希望从客户端设备删除企业拥有、授权或控制的所选的数据或所有数据、文件和/或应用(企业数据),而保留或保存用户拥有、授权或控制的个人数据、文件和/或应用(个人数据)。此操作可称为选择性擦除。根据本文描述的方面整理企业和个人数据后,企业可以执行选择性擦除。
客户端设备202可以连接到企业的企业资源204和企业服务208、公共互联网248等。客户端设备可以通过虚拟专用网络连接连接到企业资源204和企业服务208。虚拟专用网络连接,也称为微VPN(microVPN)或特定于应用的VPN,可以特定于特定应用(例如,如微VPN 250所示)、特定设备、客户端设备上的特定安全区域(例如,如O/S VPN 252所示)等。例如,电话的安全区域中的每个封装的应用可以通过特定于应用的VPN访问企业资源,以便基于与应用相关联的属性(可能与用户或设备属性信息一起)授予对VPN的访问权限。虚拟专用网络连接可以承载微软交换(Microsoft Exchange)流量、微软活动目录(MicrosoftActive Directory)流量流量、超文本传输协议(HTTP)流量、超文本传输协议安全(HTTPS)流量、应用管理流量等。虚拟专用网络连接可以支持和启用单点登录认证过程254。单点登录过程可以允许用户提供单组认证凭证,然后由认证服务258验证这些凭证。认证服务258随后可以授予用户对多个企业资源204的访问权限,而不需要用户向每个个别的企业资源204提供认证凭证。
虚拟专用网络连接可以由接入网关260建立和管理。接入网关260可以包括管理、加速和改进将企业资源204交付到客户端设备202的性能增强特性。接入网关还可以将流量从客户端设备202重新路由到公共互联网248,使客户端设备202能够访问在公共互联网248上运行的公共可用和非安全的应用。客户端设备可以经由传输网络262连接到接入网关。传输网络262可以使用一个或多个传输协议,并且可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、专用网络等。
企业资源204可以包括电子邮件服务器、文件共享服务器、SaaS/Web应用、Web应用服务器、Windows应用服务器等。电子邮件服务器可以包括交换(Exchange)服务器、LotusNotes服务器等。文件共享服务器可以包括文件共享(ShareFile)服务器等。SaaS应用可以包括Salesforce等。Windows应用服务器可以包括任何应用服务器,该应用服务器被建立为提供要在本地Windows操作***上运行的应用,等等。企业资源204可以是基于前提的资源、基于云的资源等。企业资源204可以由客户端设备202直接或通过接入网关260来访问。企业资源204可以由客户端设备202经由传输网络262访问。传输网络262可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、专用网络等。
云服务可以包括接入网关260和/或企业服务208。企业服务208可以包括认证服务258、威胁检测服务264、设备管理器服务224、文件共享服务268、策略管理器服务270、社交整合服务272、应用控制器服务274等。认证服务258可以包括用户认证服务、设备认证服务、应用认证服务、数据认证服务等。认证服务258可以使用证书。证书可以由企业资源204等存储在客户端设备202上。存储在客户端设备202上的证书可以存储在客户端设备上的加密位置,证书可以临时存储在客户端设备202上以供在认证时使用,等等。威胁检测服务264可以包括入侵检测服务、未经授权的访问尝试检测服务等。未经授权的访问尝试检测服务可以包括对设备、应用、数据等的未经授权的访问尝试。设备管理服务224可以包括配置、供应、安全、支持、监视、报告和退役服务。文件共享服务268可以包括文件管理服务、文件存储服务、文件协作服务等。策略管理器服务270可以包括设备策略管理器服务、应用策略管理器服务、数据策略管理器服务等。社交整合服务272可以包括联系人整合服务、协作服务、与诸如Facebook、Twitter和LinkedIn等社交网络的整合等。应用控制器服务274可以包括管理服务、供应服务、部署服务、指派服务、撤销服务、封装服务等。
企业移动技术架构200可以包括应用商店278。应用商店278可以包括未封装的应用280、预封装的应用282等。应用可以从应用控制器274植入到应用商店278中。客户端设备202可以通过接入网关260、通过公共互联网248等来访问应用商店278。应用商店可以提供直观和易于使用的用户界面。
软件开发工具包284可以通过在应用周围提供安全封装来向用户提供由用户选择安全应用的能力。然后,使用软件开发工具包284封装的应用可以通过使用应用控制器274将其植入到应用商店278中而使客户端设备202可用。
企业移动技术架构200可以包括管理和分析能力。管理和分析能力可以提供与资源使用方式、资源使用频率等相关的信息。资源可以包括设备、应用、数据等。资源的使用方式可以包括哪些设备下载哪些应用、哪些应用访问哪些数据等等。资源的使用频率可以包括应用被下载的频率、应用访问特定数据集的次数等等。
图3描述了企业移动性管理***300的示意性实施例。为了简单起见,省略了上面参考图2描述的移动性管理***200的一些组件。图3中描述的***300的架构在许多方面与上面参考图2描述的***200的架构相似,并且可以包括上面未提及的其他特征。
在这种情况下,左侧表示具有客户端代理304的注册客户端设备302,客户端代理304与网关服务器306交互以访问各种企业资源308和服务309,例如Web或SasS应用、Exchange、Sharepoint、公钥基础设施(PKI)资源、Kerberos资源、证书颁发服务,如上图右侧所示。网关服务器306可以包括云服务的特性和功能的实施例,例如接入网关260和应用控制器功能。尽管未具体示出,但客户端代理304可以是客户端应用的一部分,和/或与客户端应用交互,可操作为用于选择和/或下载网络应用的企业应用商店(店面)。
客户端代理304可以充当托管在企业数据中心中的Windows应用/桌面的UI(用户界面)中间装置,使用高清用户体验(HDX)或独立计算架构(ICA)显示远程处理协议来访问这些应用/桌面。客户端代理304还可以支持在客户端设备302上安装和管理本机应用,例如本机iOS或Android应用。例如,上图中所示的受管应用310(电子邮件、浏览器、封装的应用)是在设备上本地执行的本机应用。此架构的客户端代理304和应用管理框架用于提供策略驱动的管理功能和特性,例如到企业资源/服务308的连接和SSO(单点登录)。客户端代理304处理对企业的主要用户认证,例如通过SSO接入网关(AG)到其他网关服务器组件。客户端代理304从网关服务器306获取策略,以控制客户端设备302上的受管应用310的行为。
本机应用310和客户端代理304之间的安全进程间通信(IPC)链路312表示管理信道,该信道允许客户端代理提供由应用管理框架314“封装”每个应用来实施的策略。IPC信道312还允许客户端代理304提供凭证和认证信息,使得能够连接和SSO到企业资源308。最后,IPC信道312允许应用管理框架314调用由客户端代理304实现的用户界面功能,例如在线和离线认证。
客户端代理304和网关服务器306之间的通信本质上是来自封装每个本机受管应用310的应用管理框架314的管理信道的扩展。应用管理框架314从客户端代理304请求策略信息,客户端代理304又从网关服务器306请求策略信息。应用管理框架314请求认证,并且客户端代理304登录到网关服务器306(也称为NetScaler接入网关)的网关服务部分。客户端代理304还可以调用网关服务器306上的支持服务,其可以产生输入材料以获得本地数据保存库316的加密密钥,或者提供客户端证书,客户端证书可以启用对PKI保护的资源的直接认证,如下面更充分地解释的。
更详细地说,应用管理框架314“封装”每个受管的应用310。这可以经由显式的建立步骤或建立后处理步骤进行合并。应用管理框架314可在应用310首次启动时与客户端代理304“配对”,以初始化安全IPC信道并获取该应用的策略。应用管理框架314可以实施在本地应用的策略的相关部分,例如客户端代理登录依赖项和一些限制如何使用本地OS服务或它们可以如何与应用310交互的包含策略。
应用管理框架314可以使用客户端代理304通过安全IPC信道312提供的服务来促进认证和内部网络接入。私有和共享数据保存库316(容器)的密钥管理也可以通过受管应用310和客户端代理304之间的适当交互来管理。保存库316可能只在在线认证之后才可用,或者如果策略允许,可以在离线认证之后可用。首次使用保存库316可能需要在线认证,并且离线访问可被限制为最多在再次需要在线认证之前的策略刷新期间。
对内部资源的网络访问可以通过接入网关306直接从各个受管应用310进行。应用管理框架314负责代表每个应用310编排网络访问。客户端代理304可以通过提供在在线认证之后获得的适当的有时间限制的辅助凭证来促进这些网络连接。可以使用多种网络连接模式,例如反向web代理连接和端到端VPN式隧道318。
电子邮件和浏览器管理的应用310可以具有特殊的状态,并且可以利用通常不可用于任意封装的应用的设施。例如,电子邮件应用可以使用特殊的后台网络访问机制,该机制允许电子邮件应用在长时间内访问Exchange,而不需要完全的AG登录。浏览器应用可以使用多个私有数据保存库来隔离不同类型的数据。
此架构可以支持各种其他安全特性的合并。例如,网关服务器306(包括其网关服务)在某些情况下可能不需要验证活动目录(AD)密码。在某些情况下,是否将AD密码用作某些用户的认证因素,可以由企业自行决定。如果用户在线或离线(即连接或未连接到网络),则可以使用不同的认证方法。
递升式认证是其中网关服务器306可以识别允许使用强认证访问更敏感数据的受管本机应用310的特性,并且确保仅在执行适当认证之后才允许访问这些应用,即使这意味着在先前较弱的登录级别之后,将根据用户请求重新认证。
该解决方案的另一个安全特性是对客户端设备302上的数据保存库316(容器)进行加密。可以对保存库316进行加密,以便保护包括剪贴板/高速缓存数据、文件、数据库和配置在内的所有设备上数据。对于在线保存库,密钥可以存储在服务器(网关服务器306)上,对于离线保存库,密钥的本地副本可以通过用户密码或生物特征验证进行保护。当数据本地存储在设备302上的安全容器316中时,优选至少使用AES 256加密算法。
还可以实现其他安全容器特性。例如,可以包括日志记录特性,其中,应用310内发生的所有安全事件被记录并报告给后端。可以支持数据擦除,例如,如果应用310检测到篡改,则可以用随机数据覆写相关联的加密密钥,在文件***上不留下用户数据被破坏的提示。屏幕截图保护是另一个特性,应用可以防止任何数据被存储在屏幕截图中。例如,可以将关键窗口的隐藏属性设置为“是”。这可能会导致屏幕上当前显示的任何内容被隐藏,从而导致出现空白屏幕截图,其中任何内容可能通常驻留在屏幕截图中。
可以防止本地数据传输,例如通过防止任意数据被本地传输到应用容器外部,例如通过复制它或将它发送到外部应用。键盘缓存特性可用于针对敏感文本字段禁用自动更正功能。SSL证书验证可以操作,因此应用专门验证服务器SSL证书,而不是将其存储在密钥链中。可以使用加密密钥生成特性,使得用于加密设备上的数据的密钥是使用由用户提供的密码短语或生物特征数据生成的(如果需要离线访问)。如果不需要离线访问,则可以与另一个随机生成的并存储在服务器侧的密钥进行异或处理。密钥派生函数的操作可以使得从用户密码生成的密钥使用KDF(密钥派生函数,特别是基于密码的密钥派生函数2(PBKDF2)),而不是创建其密码散列。后者使密钥容易受到暴力破解或字典攻击。
此外,可以在加密方法中使用一个或多个初始化向量。初始化向量可能导致同一加密数据的多个副本产生不同的密码文本输出,从而防止重播攻击和密码分析攻击。这还可以防止攻击者解密任何数据,即使使用被盗的加密密钥。此外,可以使用认证然后解密,其中,只有在用户在应用内被认证之后,才解密应用数据。另一个特性可能与存储器中的敏感数据有关,这些数据可能只在需要时保存在存储器(而不是盘)中。例如,登录后可以从存储器中擦除登录凭证,并且不会存储objective-C实例变量中的加密密钥和其他数据,因为它们很容易被引用。相反,可以手动为它们分配存储器。
可以经由CEB实现非活动超时,其中在策略定义的非活动期间之后,终止用户会话。
可以通过其他方式防止来自应用管理框架314的数据泄漏。例如,当应用310被置于后台时,可以在预定的(可配置的)时间段之后清除存储器。当被置于后台时,可以获取应用最后一个显示屏幕的快照,以加快前台操作过程。屏幕截图可能包含机密数据,因此应该被清除。
另一个安全特性涉及使用OTP(一次性密码)320而不使用AD(活动目录)322密码来访问一个或多个应用。在某些情况下,一些用户不知道(或不被允许知道)他们的AD密码,因此这些用户可以使用OTP 320进行认证,例如使用诸如安全令牌(SecurID)的硬件OTP***(OTP也可以由不同的供应商提供,例如Entrust或Gemalto)。在某些情况下,在用户使用用户ID进行认证之后,用OTP 320向用户发送文本。在某些情况下,这可能只为在线使用而实现,提示符是单个字段。
对于那些经由企业策略允许离线使用的应用310,可以实现用于离线认证的离线密码。例如,企业可能希望以这种方式访问店面。在这种情况下,客户端代理304可以要求用户设置定制离线密码,并且不使用AD密码。网关服务器306可以提供策略来控制和实施关于最小长度、字符类组成和密码年龄的密码标准,如由标准Windows服务器密码复杂性要求所描述的,尽管这些要求可以修改。
另一个特性涉及对某些应用310启用客户端侧证书作为辅助凭证(为了经由应用管理框架微VPN功能访问PKI保护的web资源)。例如,应用可以利用这样的证书。在这种情况下,可以支持使用ActiveSync协议的基于证书的认证,其中来自客户端代理304的证书可以由网关服务器306检索并在密钥链中使用。每个受管应用可以具有一个相关联的客户端证书,该证书由网关服务器306中定义的标签标识。
网关服务器306可以与企业专用web服务交互,以支持颁发客户端证书,从而允许相关的受管应用认证到内部PKI保护的资源。
可以增强客户端代理304和应用管理框架314,以支持获取和使用客户端证书向内部PKI保护的网络资源进行认证。可以支持多个证书,例如匹配不同级别的安全和/或分离需求。证书可以由电子邮件和浏览器管理的应用使用,最终可以由任意封装的应用使用(前提是这些应用使用web服务风格的通信模式,在这种模式下,应用管理框架可以合理地调解https请求)。
iOS上的应用管理客户端证书支持可能依赖于在每个受管应用的每个使用期间将公钥加密标准(PKCS)12BLOB(二进制大对象)导入到iOS密钥链中。应用管理框架客户端证书支持可以使用具有专用内存密钥存储的HTTPS实现。客户端证书可能永远不会出现在iOS密钥链中,并且可能不会持久化,除非可能存在于受强保护的“仅在线”数据值中。
还可以实现相互SSL或TLS以通过要求向企业认证客户端设备302来提供额外的安全性,反之亦然。还可以实现用于向网关服务器306进行认证的虚拟智能卡。
有限的和完全的Kerberos支持可以是附加特性。完全支持特性涉及使用AD密码或可信的客户端证书完全Kerberos登录到活动目录(AD)322并获取Kerberos服务票证以响应HTTP协商认证挑战的能力。有限支持特性与Citrix接入网关企业版(AGEE)中的受限委派相关,其中AGEE支持调用Kerberos协议转换,以便它可以获取和使用Kerberos服务票证(受限于受限委派),以响应HTTP协商认证挑战。这种机制在反向web代理(又称企业虚拟专用网络(CVPN))模式下工作,并且当http(而不是https)连接在VPN和微VPN模式下代理时也是如此。
另一个特性涉及应用容器锁定和擦除,该锁定和擦除可在越狱或根检测时自动发生,并作为来自管理控制台的推送命令而发生,并且可包括即使应用310未运行时的远程擦除功能。
可以支持企业应用商店和应用控制器的多站点架构或配置,以允许用户在发生故障时从数个不同位置之一获得服务。
在一些情况下,可以允许受管应用310经由API(例如OpenSSL)访问证书和私钥。可以允许企业的可信受管应用310使用应用的客户端证书和私钥来执行特定的公钥操作。可以相应地识别和处理各种用例,例如当应用的行为类似于浏览器并且不使用证书访问时,当应用读取“我是谁”的证书时,当应用使用证书来建立安全会话令牌时,以及当应用使用私钥对重要数据(如事务日志)进行数字签名或临时数据加密时。
现在参考图4,示出了嵌入式浏览器的***400的框图。简要概述,***400可以包括具有用户数字工作区的客户端设备402、客户端应用404、在至少一个网络设备432上操作的云服务408、以及从一个或多个服务器430服务和/或托管在一个或多个服务器430上的网络应用406。例如,客户端应用404可以包括以下至少一个:嵌入式浏览器410、网络代理412、云服务代理414、远程会话代理416或安全容器418。例如,云服务408可以包括:安全浏览器420、接入网关422(或CIS,例如用于注册和/或认证客户端应用和/或用户)或分析服务424(或CAS,例如用于从客户端应用接收信息以进行分析)中的至少一个。网络应用406可以包括经批准的应用426和未经批准的应用428。
在一个或多个实施例中,以硬件或硬件与软件的组合来实现上述元件或实体中的每一个。***200的每个组件可以使用硬件或以上结合图1详细说明的硬件或软件的组合来实现。例如,这些元件或实体中的每一个可以包括在客户端设备402、至少一个网络设备432和/或一个或多个服务器430的硬件上执行的任何应用、程序、库、脚本、任务、服务、进程或任何类型和形式的可执行指令。在一个或多个实施例中,硬件包括电路,例如一个或多个处理器。例如,至少一个网络设备432和/或一个或多个服务器430可以包括上面结合例如至少图1描述的计算设备的任何元件。
例如,客户端设备402可以包括上面结合至少图1描述的计算设备的任一实施例。客户端设备402可以包括任一用户设备,例如台式计算机、膝上型计算机、平板设备、智能电话或任何其他移动或个人设备。客户端设备402可以包括用户的数字工作区,其可以包括文件***、高速缓存或存储器(例如,包括电子剪贴板)、容器、应用和/或客户端设备402上的其他资源。数字工作区可以包括或扩展到客户端设备402可访问的一个或多个网络,例如内联网和互联网,包括经由一个或多个网络可访问的文件***和/或其他资源。例如,可以经由使用带有嵌入式浏览器410的客户端应用404(CEB)来保护数字工作区的一部分。数字工作区的***分可以包括例如文件***、高速缓存或存储器(例如,包括电子剪贴板)、应用、容器和/或分配给CEB和/或由CEB分配给经由CEB访问的网络应用406的其他资源。数字工作区的***分还可以包括CEB(经由一个或多个策略)指定以包含在数字工作区的***分中的资源(例如,特定的本地应用可以经由策略指定为允许接收从网络应用获得的数据)。
客户端应用404可以包括一个或多个组件,例如嵌入式浏览器410、网络代理412、云服务代理414(有时称为管理代理)、远程会话代理416(有时称为HDX引擎)和/或安全容器418(有时称为安全缓存容器)。例如,可以将一个或多个组件安装为客户端应用404或CEB的软件建立或发布的一部分,或者单独获取或下载并安装/集成到客户端应用404或CEB的现有安装中。例如,客户端设备可以从网络设备432下载或以其他方式接收客户端应用404(或任何组件)。在一些实施例中,客户端设备可以向网络设备432发送针对客户端应用404的请求。例如,客户端设备的用户可以发起对客户端应用的请求、下载和/或安装。网络设备432反过来可以将客户端应用发送到客户端设备。在一些实施例中,网络设备432可以将客户端应用的设置或安装应用发送到客户端设备。在接收时,客户端设备可以将客户端应用安装到客户端设备的硬盘上。在一些实施例中,客户端设备可以运行设置应用来拆包或解压缩客户端应用的包。在一些实施例中,客户端应用可以是安装在客户端设备上的另一应用(例如,网络代理414)的扩展(例如,附加模块、外接程序、小程序或插件)。客户端设备可以安装客户端应用以与预安装的应用进行接口或交互操作。在一些实施例中,客户端应用可以是独立的应用。客户端设备可以安装客户端应用作为单独的进程来执行。
嵌入式浏览器410可以包括web浏览器应用或引擎的元素和功能。嵌入式浏览器410可以作为客户端应用的组件或扩展本地呈现网络应用。例如,嵌入式浏览器410可以在CEB内部呈现SaaS/Web应用,这可以向CEB提供应用会话的完全可见性和控制。嵌入式浏览器可以经由任何方式嵌入或合并到客户端应用中,例如直接集成(例如,编程语言或脚本***)到客户端应用的可执行代码中,或者经由插件安装。例如,嵌入式浏览器可以包括基于Chromium的浏览器引擎或其他类型的浏览器引擎,这些浏览器引擎可以嵌入到客户端应用中,例如使用Chromium嵌入式框架(CEF)。嵌入式浏览器可以包括基于HTML5的布局图形用户界面(GUI)。嵌入式浏览器可以为包含各种编程语言的客户端应用提供HTML呈现和JavaScript支持。例如,嵌入式浏览器的元素可以绑定到包含C、C++、Delphi、GO、Java、.NET/Mono、Visual Basic 6和/或Python的客户端应用。
在一些实施例中,嵌入式浏览器包括安装在客户端应用上的插件。例如,插件可以包含一个或多个组件。一个这样的组件可以是ActiveX控件、Java控件或任何其他类型和/或形式的可执行指令,这些指令能够加载到客户端应用中并在客户端应用中执行。举例而言,客户端应用可以例如在客户端应用的存储器空间或上下文中加载并运行嵌入式浏览器的Active X控件。在一些实施例中,嵌入式浏览器可以作为客户端应用上的扩展安装,并且用户可以选择启用或禁用插件或扩展。嵌入式浏览器(例如,经由插件或扩展)可以形成或操作为安全浏览器,用于保护、使用和/或访问数字工作区的***分内的资源。
嵌入式浏览器可以合并除了标准或典型浏览器中可用或可能的代码和功能之外的代码和功能。例如,嵌入式浏览器可以与安全容器418绑定或被分配安全容器418,以定义用户数字工作区的***分的至少一部分。嵌入式浏览器可以与客户端设备的高速缓存的一部分绑定或被分配客户端设备的高速缓存的一部分以形成安全剪贴板(例如,客户端设备的本地或可扩展到其他设备),该安全剪贴板可以是安全容器418的至少一部分。嵌入式浏览器可以与客户端应用集成,以确保与网络应用相关的流量通过客户端应用路由和/或在客户端应用中处理,这可以向客户端应用提供对流量的实时可见性(例如,当经由客户端应用解密时)。这种对流量的可见性可以允许客户端应用执行或促进基于策略的管理(例如,包括数据丢失预防(DLP)功能)、应用控制以及分析的收集和生成。
在一些实施例中,嵌入式浏览器合并客户端应用404的一个或多个其他组件,例如云服务代理414、远程会话代理416和/或安全容器418。例如,用户可以使用嵌入式浏览器的云服务代理414与接入网关422(有时称为CIS)互操作以访问网络应用。例如,云服务代理414可以在嵌入式浏览器中执行,并且可以从嵌入式浏览器接收导航命令并将其发送到托管的网络应用。云服务代理可以使用远程表示协议将网络应用生成的输出显示到嵌入式浏览器。例如,云服务代理414可以包括HTML5 web客户端,该客户端允许终端用户访问嵌入式浏览器上的远程桌面和/或应用。
客户端应用404和CEB在客户端设备的操作(OSI)堆栈的应用层上操作。客户端应用404可以包括和/或执行与云服务408互操作的一个或多个代理。客户端应用404可以接收、获取、检索或以其他方式访问各种策略(例如,企业的定制、指定或内部策略或规则)和/或数据(例如,来自可由企业管理的云服务408的接入网关422和/或网络设备或其他服务器)。客户端应用404可以访问策略和/或数据以控制和/或管理网络应用(例如SaaS、web或远程托管的应用)。网络应用406的控制和/或管理可以包括对网络应用406的各个方面的控制和/或管理,诸如访问控制、会话交付、可用特性或功能、服务水平、流量管理和监视等。网络应用406可以来自企业的提供商或供应商(例如salesforce.com、SAP、Microsoft Office365)、来自企业本身或来自另一实体(例如Dropbox或Gmail服务)。
例如,云服务代理414可以提供与网络应用406的使用和/或访问相关的策略驱动的管理能力和特性。例如,云服务代理414可以包括策略引擎,用于应用(例如,从云服务接收的)一个或多个策略以确定对资源(诸如网络应用406)的访问控制和/或连接。例如,当在客户端应用406和提供例如SaaS应用的服务器430之间建立会话时,云服务代理414可以应用一个或多个策略来控制会话的流量级别和/或流量类型(或其他方面),以例如管理SaaS应用的服务级别。可以控制或管理的应用流量的其他方面可以包括应用于该流量的加密级别和/或加密类型、允许用户的交互级别、对网络应用的某些特性(例如打印屏幕、保存、编辑或复制功能)的有限访问,对使用或传输从网络应用获得的数据的限制,限制对两个或更多个网络应用406的并发访问,限制对某些文件存储库或其他资源的访问等等。
云服务代理414可以向云服务408的分析服务424传送或馈送信息,例如关于CEB可见的SaaS交互事件的信息。使用CEB的这种配置可以监视或捕获用于分析的信息,而无需具有位于客户端设备402和服务器430之间的内联设备或代理,或者使用SaaS API网关“带外”方法。在一些实施例中,云服务代理414不在嵌入式浏览器中执行。在这些实施例中,用户可以类似地使用云服务代理414与接入网关(或CIS)422互操作以访问网络应用。例如,云服务代理414可以向接入网关(或CIS)422注册和/或认证,并且可以从接入网关(或CIS)422获取网络应用的列表。云服务代理414可以包括和/或操作作为用于用户选择和/或下载网络应用的应用商店(或店面)。在登录以访问网络应用时,云服务代理414可以拦截并将导航命令从嵌入式浏览器发送到网络应用。云服务代理可以使用远程表示协议,将网络应用生成的输出显示到嵌入式浏览器。例如,云服务代理414可以包括HTML5 web客户端,该客户端允许终端用户访问嵌入式浏览器上的远程桌面和/或应用。
在一些实施例中,云服务代理414为用户和/或客户端设备402提供单点登录(SSO)能力以访问多个网络应用。例如,云服务代理414可以通过与接入网关422通信来执行用户认证以访问网络应用以及其它网络资源和服务。例如,云服务代理414可以向接入网关422认证或注册,以访问云服务408的其他组件和/或网络应用406。响应于认证或注册,接入网关422可以针对(或代表)用户和/或客户端应用对网络应用执行认证和/或SSO。
客户端应用404可以包括网络代理412。网络代理412有时被称为软件定义的广域网(SD-WAN)代理、mVPN代理或微VPN代理。网络代理412可以在客户端应用和一个或多个资源(例如,提供网络应用的服务器430)之间建立或促进建立网络连接。网络代理412可以对从客户端应用请求的连接执行握手以访问网络应用,并且可以建立请求的连接(例如,安全的或加密的连接)。网络代理412可以例如经由虚拟专用网(VPN)连接到企业资源(包括服务)。例如,网络代理412可以在客户端应用和提供网络应用406的服务器430之间建立安全套接字层(SSL)VPN。VPN连接,有时称为微VPN或特定于应用的VPN,可以特定于特定网络应用、特定设备、客户端设备上的特定安全区域等,例如,如上文结合图3讨论的那样。例如,这样的VPN连接可以承载Microsoft Exchange流量、微软活动目录(Microsoft ActiveDirectory)流量、超文本传输协议(HTTP)流量、超文本传输协议安全(HTTPS)流量。
远程会话代理416(有时称为HDX引擎)可以包括上面结合例如图2讨论的客户端代理304的特征,以支持显示远程协议(例如HDX或ICA)。在一些实施例中,远程会话代理416可以根据各种协议(例如远程桌面协议(RDP)、设备链路协议(ALP)、远程帧缓冲(RFB)协议和ICA协议)建立远程桌面会话和/或远程应用会话。例如,远程会话代理416可以为客户端设备的用户建立远程应用会话以访问企业网络应用。远程会话代理416可以在例如由网络代理412建立的安全连接(例如VPN)内或之上建立远程应用会话。
客户端应用或CEB可以包括或与安全容器418相关联。安全容器可以包括在客户端设备内可访问和/或客户端设备可访问的一种或多种资源类型的逻辑或虚拟描述。例如,安全容器418可以指数字工作区的***分的全部,或***分的特定方面。在一些实施例中,安全容器418对应于安全高速缓存(例如,电子或虚拟剪贴板),并且可以动态地合并受保护或安全(例如,加密)的用户的每个客户端设备的本地高速缓存的一部分和/或用户的基于云的高速缓存。安全容器可以定义文件***的一部分,和/或描述分配给CEB和/或经由CEB访问的网络应用的资源。安全容器可以包括上文结合例如图2讨论的安全数据容器228的元件。CEB可以(例如,经由策略)被配置为限制、禁止或禁用对识别为安全容器内的资源和/或数据的某些操作或活动。安全容器可以被定义为指定监视安全容器内的资源和/或数据是否被误用、滥用和/或溢出。
在某些实施例中,安全容器有关于或涉及实现各种企业安全特性的安全浏览器(例如,嵌入式浏览器410或安全浏览器420)的使用。被配置为在安全浏览器中运行的网络应用(或安全浏览器访问的网页(web page))可以有效继承安全浏览器实现的安全机制。可以认为这些网络应用包含在安全容器内。使用这样一个安全浏览器可以使企业实现一个内容过滤策略,例如,阻止员工从其客户端设备访问某些网站。例如,可以使用安全浏览器使客户端设备用户无需VPN即可访问公司内部网。
在一些实施例中,安全容器可以支持用于保护企业资源的各种类型的补救措施。一种这样的补救方法是锁定客户端设备或客户端设备上存储要保护的数据的安全容器,以便客户端设备或安全容器例如只能使用管理员提供的有效代码解锁。在一些实施例中,这些和其他类型的补救方法可以基于在客户端设备上检测到的条件而自动调用(例如经由策略的应用),或者可以由管理员远程启动。
在一些实施例中,安全容器可以包括用于文档的安全文档容器。文档可以包括任何计算机可读文件,包括文本、音频、视频和/或其他类型的信息或媒体。文档可以包含这些媒体类型的任何单个或组合。如本文所述,安全容器可以帮助防止企业信息传播到客户端设备的不同应用和组件,以及传播到其他设备。企业***(其可以部分或完全在云网络中)可以将文档传输到各种设备,这些设备可以存储在安全容器中。安全容器可以防止未经授权的应用和客户端设备的其他组件访问安全容器中的信息。对于允许用户使用自己的客户端设备访问、存储和使用企业数据的企业而言,在客户端设备上提供安全容器有助于保护企业数据。例如,在客户端设备上提供安全容器可以将企业数据集中在每个客户端设备上的一个位置,并且可以在需要时帮助从每个客户端设备选择性地或完全地删除企业数据。
安全容器可以包括实现存储文档和/或其他类型文件的文件***的应用。文件***可以包括客户端设备的计算机可读存储器的一部分。文件***可以从逻辑上与客户端设备的计算机可读存储器的其他部分分离。这样,例如,企业数据可以存储在安全容器中,并且私有数据可以存储在客户端设备的计算机可读存储器的单独部分中。安全容器可以允许CEB、经由CEB访问的网络应用、本地安装的应用和/或客户端设备的其他组件从文件***中读取、写入和/或删除信息(如果获得授权)。从安全容器中删除数据可以包括删除存储在安全容器中的实际数据、删除指向存储在安全容器中的数据的指针、删除用于解密存储在安全容器中的数据的加密密钥等。安全容器可以由客户端应用、管理员或客户端设备制造商安装。安全容器可以允许删除存储在文件***中的部分或全部企业数据,而无需修改存储在安全容器外部的客户端设备上的私有数据。文件***可以帮助从文件***中选择性删除或完全删除数据。例如,企业***的授权组件可以基于(例如)编码规则从文件***中删除数据。在一些实施例中,客户端应用可以响应于从企业***接收删除命令而从文件***中删除数据。
安全容器可以包括访问管理器,它控制应用和客户端设备的其他组件对文件***的访问。对文件***的访问可以基于客户端应用在文档和/或文件***中维护的文档访问策略(例如,编码规则)来管理。文档访问策略可以基于以下内容来限制对文件***的访问:(1)客户端设备的哪个应用或其他组件正在请求访问,(2)正在请求哪些文档,(3)时间或日期,(4)客户端设备的地理位置,(5)请求的应用或其他组件是否提供了正确的证书或凭证,(6)客户端设备的用户是否提供了正确的凭证,(7)其他条件,或其任何组合。用户的凭证可以包括,例如密码,一个或多个安全问题的答案(例如,你高中的吉祥物是什么?),生物特征信息(例如指纹扫描、眼睛扫描)等。因此,通过使用访问管理器,可以将安全容器配置为仅由授权访问安全容器的应用访问。例如,访问管理器可以使安装在客户端设备上的企业应用能够访问存储在安全容器中的数据,并防止非企业应用访问存储在安全容器中的数据。
对文档访问的时间和地理限制可能是有用的。例如,管理员可以部署一个文档访问策略,该策略将文档(存储在安全容器中)的可用性限制在指定的时间窗口和/或地理区域(例如,由GPS芯片确定)内,客户端设备必须位于该区域内才能访问文档。此外,在指定的时间段到期时,或者如果客户端设备被带出限定的地理区域之外,文档访问策略可以指示安全容器或客户端应用从安全容器中删除文档,或者以其他方式使它们不可用。
有些文档可能具有访问策略,所述访问策略禁止将文档保存在安全容器内。在这些实施例中,仅当用户例如经由云服务登录或认证时,文档才可用于在客户端设备上查看。
访问管理器还可以被配置为实施远程设备(例如,企业资源或其他企业服务器)和安全容器之间的某些连接模式。例如,访问管理器可以要求安全容器从远程设备接收的文档和/或从安全容器发往远程设备的文档例如通过安全隧道/连接进行传输。访问管理器可以要求对传输到安全容器和从安全容器传输的所有文档进行加密。客户端应用或访问管理器可以被配置为加密从安全容器发出的文档,并解密发送到安全容器的文档。安全容器中的文档也可以以加密形式存储。
安全容器可以被配置为防止文档或者文档或安全容器中包含的数据被客户端设备或其他设备的未经授权的应用或组件使用。例如,可以对具有从安全容器访问文档的权限的客户端设备应用进行编程,以防止用户复制文档的数据并将其粘贴到另一个文件或应用接口中,或者将文档或文档数据本地保存为安全容器外的新文件。类似地,安全容器可以包括不允许此类复制/粘贴和本地保存操作的文档查看器和/或编辑器。此外,访问管理器可以被配置为防止此类复制/粘贴和本地保存操作。此外,安全容器和被编程和授权从安全容器访问文档的应用可以被配置为防止用户将此类文档附加到电子邮件或其他形式的通信中。
可以对一个或多个应用(例如,安装在客户端设备上的应用和/或经由CEB访问的网络应用)进行编程或控制(例如,经由基于策略的实施),以便仅将企业相关数据写入安全容器。例如,可以为应用的源代码提供安全容器的资源名称。类似地,远程应用(例如,在客户端设备以外的设备上执行)可以被配置为仅向安全容器(相对于客户端设备的其他组件或存储器位置)发送数据或文档。例如,在应用、客户端应用和/或安全浏览器的控制下,可以自动将数据存储到安全容器。客户端应用可以被编程为加密或解密存储或将要存储在安全容器中的文档。在某些实施例中,安全容器只能被编程为识别和使用安全容器并且具有这样做的权限的应用(在客户端设备或远程设备上)使用。
网络应用406可以包括经批准的网络应用426和未经批准的网络应用428。作为一个非限制性的例子,经批准的网络应用426可以包括来自Workday、Salesforce、Office365、SAP等的网络应用,而未经批准的网络应用426可以包括来自Dropbox、Gmail等的网络应用。例如,图4示出了经由CEB访问经批准的应用426的情况。在操作(1)中,安装在客户端设备402上的客户端应用404的用户实例可以向云服务408的接入网关422注册或认证。例如,用户可以向客户端设备认证用户并登录到客户端设备402。客户端应用可以自动执行,也可以由用户激活。在一些实施例中,用户可以登录到客户端应用(例如,通过向客户端应用认证用户)。响应于登入或登录,客户端应用可以向接入网关422注册或认证用户和/或客户端应用。
在操作(2)中,响应于注册或认证,接入网关422可以识别或检索可用的或预先分配给用户的枚举网络应用的列表,并且可以将该列表提供给客户端应用。例如,响应于注册或认证,接入网关可以识别用户和/或检索用户的用户配置文件。根据身份和/或用户配置文件,接入网关可以确定列表(例如,检索与用户配置文件和/或用户的身份匹配的网络应用的存储列表)。该列表可以对应于为用户批准的网络应用列表。接入网关可以将列表发送到客户端应用或嵌入式浏览器,该列表可以经由客户端应用或嵌入式浏览器呈现给用户(例如,在店面用户界面中)以进行选择。
在操作(3)中,用户可以通过从呈现给用户的网络应用列表中选择来启动到经批准的网络应用(例如,SaaS应用)的连接。例如,用户可以点击经由客户端应用或嵌入式浏览器显示的经批准的网络应用的图标或其他表示。此用户操作可以触发CEB向提供网络应用的服务器传输连接或访问请求。该请求可以包括对服务器(例如SaaS提供商)的请求,以与接入网关通信从而对用户进行认证。例如,服务器可以向接入网关发送对用户进行认证的请求。
在操作(4)中,接入网关可以对服务器执行SSO,以对用户进行认证。例如,响应于服务器对用户进行认证的请求,接入网关可以向服务器430提供用户的用于SSO的凭证,以访问所选网络应用和/或其他经批准的网络应用。在操作(5)中,用户可以基于SSO(例如,使用凭证)登录到所选的网络应用。客户端应用(例如,网络代理412和/或远程会话代理416)可以建立与服务器430的安全连接和会话,以访问所选的网络应用。CEB可以解密经由安全连接接收的应用流量。CEB可以监视经由CEB发送的流量以及到服务器430的安全连接。
在操作(6)中,客户端应用可以向云服务408的分析服务424提供用于分析处理的信息。例如,客户端应用404的云服务代理414可以监视或捕获与所选的网络应用的用户交互事件。云服务代理414可以将用户交互事件传送到分析服务424,以进行处理从而产生分析。
图5描述了用于使用安全浏览器的***的示例实施例。简要概述,该***包括云服务408、网络应用406和客户端设备402。在一些实施例中,***的各种元件类似于上面针对图4所描述的元件,但是客户端应用(具有嵌入式浏览器)在客户端设备402中不可用。在客户端设备上可以使用标准或典型的浏览器,用户可以从该浏览器发起访问例如经批准的网络应用的请求。网络应用可以经由可由管理员设置或自动(例如经由人工智能)设置的策略被指定为经批准的或未经批准的。
例如,在操作(1)中,用户可以使用标准浏览器登录到网络应用。为了访问经批准的网络应用,用户可以经由标准浏览器访问提供网络应用的服务器的预定义URL和/或相应网页,以发起访问网络应用的请求。在一些实施例中,请求可以被转发到指定网关服务或被指定网关服务拦截(例如,在请求的数据路径中)。例如,网关服务可以驻留在客户端设备上(例如,作为可执行程序),或者可以驻留在例如云服务408的网络设备432上。在一些实施例中,接入网关可以对应于或包括所述网关服务。网关服务可以确定所请求的网络应用是否是经批准的网络应用。网关服务可以确定CEB是否启动了请求。网关服务可以检测或以其他方式确定请求是从客户端设备中的源发起的(例如,由标准浏览器发起),而不是从CEB发起的。在一些实施例中,不要求指定的网关服务检测或确定请求是否从CEB发起,例如,如果请求的网络应用被批准,该用户经由标准浏览器发起请求,和/或访问预定义的URL和/或相应的网页。
在操作(2)中,服务器可以经由云服务408的接入网关认证用户。服务器可以响应于请求与接入网关通信以对用户进行认证。例如,请求可以包括对服务器的指示,以便与接入网关通信以对用户进行认证。在一些实施例中,服务器被预先配置为与接入网关通信以认证用户,以便请求访问经批准的网络应用。服务器可以向接入网关发送请求以对用户进行认证。响应于服务器对用户进行认证的请求,接入网关可以向服务器430提供用户的凭证。
在操作(3)中,网关服务和/或服务器可以将所有流量定向(或重定向)到提供安全浏览服务的安全浏览器420。这可能是对以下至少一项的响应:确定所请求的网络应用是经批准的网络应用,确定该请求是从CEB以外的源发起的,确定所请求的网络应用是经批准的,确定用户正在经由标准浏览器发起请求,和/或确定访问预定义URL和/或相应网页。
用户的URL会话可以被重定向到安全浏览器。例如,服务器、网关服务和/或接入网关可以响应于所述确定而生成和/或向标准浏览器发送URL重定向消息。标准浏览器的安全浏览器插件可以接收URL重定向消息,并且可以例如向安全浏览器420发送访问未经批准的网络应用的请求。安全浏览器420可以将请求定向到未经批准的网络应用的服务器。URL重定向消息可以指示标准浏览器(和/或安全浏览器插件)将流量(例如,目的地为网络应用)从标准浏览器定向到托管在网络设备上的安全浏览器420。这可以通过安全浏览器服务经由动态路由提供无客户端的访问和控制。在一些实施例中,在对服务器执行用户的认证(例如,使用SSO)之前,发起或配置到安全浏览器420的所有流量的重定向。
在一些实施例中,网关服务可以指示或请求所请求的网络应用的服务器与安全浏览器420通信。例如,网关服务可以指示服务器和/或安全浏览器在服务器和安全浏览器之间建立安全连接,以便为网络应用建立应用会话。
在一些实施例中,安全浏览器420包括托管在云服务408的网络设备432上的浏览器。安全浏览器420可以包括上文至少结合例如图4描述的安全浏览器420的一个或多个特性。托管的浏览器可以包括托管在网络设备432而不是客户端设备上的CEB的嵌入式浏览器。托管的浏览器可以包括托管在网络设备432上的CEB的托管虚拟化版本的嵌入式浏览器。与安装在客户端设备上的CEB类似,流量通过托管在网络设备上的CEB路由,这允许管理员通过CEB查看流量,并保持对安全策略控制、分析和/或性能管理的控制。
图6示出了使用安全浏览器插件的浏览器重定向的示例实现。简要概述,该实现包括在客户端设备上操作的具有安全浏览器插件516的web浏览器512,以及驻留在网络设备上的托管web浏览器(或安全浏览器)522。web浏览器512可以对应于标准浏览器,而不是如上面结合例如图4讨论的嵌入式浏览器。安全浏览器插件516可以在第一网络510内执行并访问第二网络530中的服务器532。第一网络510和第二网络530用于示意的目的,并且可以用更少或更多的计算机网络替换。安全浏览器插件516可以安装在标准浏览器512上。插件可以包括一个或多个组件。一个这样的组件可以包括ActiveX控件或Java控件,或者任何其他类型和/或形式的可执行指令,这些指令能够加载到标准浏览器中并在标准浏览器中执行。例如,标准浏览器可以在标准浏览器的存储器空间或上下文中,加载并运行安全浏览器插件516的Active X控件。在一些实施例中,安全浏览器插件可以作为扩展安装在标准浏览器上,并且用户可以选择启用或禁用该插件或扩展。安全浏览器插件可以与安全浏览器420通信和/或操作,用于保护、使用和/或访问数字工作区的***分内的资源。
通过使用在标准浏览器512内操作的安全浏览器插件516,可以将经由标准浏览器512访问的网络应用重定向到托管的安全浏览器。例如,安全浏览器插件516可以被实现和/或设计成检测网络应用正在经由标准浏览器被访问,并且可以将来自客户端设备的与网络应用相关联的流量定向/重定向到托管的安全浏览器。托管的安全浏览器可以将从网络应用接收到的流量定向到安全浏览器插件516和/或客户端代理514,用于例如呈现和/或显示。客户端代理514可以在web浏览器512和/或安全浏览器插件内执行,并且可以包括上面至少结合例如图4讨论的客户端应用404的某些元件或特性。例如,客户端代理514可以包括用于在web浏览器512处呈现网络应用的远程会话代理418。在一些实施例中,网络应用在托管的安全浏览器处呈现,并且呈现的数据被传送或镜像到安全浏览器插件516和/或客户端代理514以进行处理和/或显示。
举例而言,用户可以远程工作,并且当用户在连接到非安全网络的计算设备上工作时,可能希望访问安全的企业网络内部的网络应用。在这种情况下,用户可以利用在第一网络510中执行的标准浏览器512,其中第一网络510可能包括非安全的网络。用户想要访问的服务器430可以在第二网络530上,其中第二网络530包括例如安全的企业网络。用户可能无法通过点击安全网站532的内部统一记录***(URL)从非安全的第一网络510访问服务器430。即,用户在从外部非安全网络510执行标准浏览器512时可能需要利用不同的URL(例如,外部URL)。外部URL可以被定向到或可以寻址一个或多个托管的web浏览器522,这些浏览器被配置为访问第二网络530(例如,安全网络)内的服务器430。为了维护安全访问,安全浏览器插件516可以将内部URL重定向到托管的安全浏览器的外部URL。
安全浏览器插件516可以实现网络检测,以识别是否将内部URL重定向到外部URL。标准浏览器512可以接收包含用于在安全网络内执行的网站的内部URL的请求。例如,标准浏览器512可以响应于用户在标准浏览器中输入web地址(例如,用于安全网站532)而接收请求。安全浏览器插件516可以将用户web浏览器应用512从内部URL重定向到托管的web浏览器应用的外部URL。例如,安全浏览器插件516可以将内部URL替换为在安全网络530内执行的托管的web浏览器应用522的外部URL。
安全浏览器插件516可以允许客户端代理514连接到托管的web浏览器应用522。客户端代理514可以包括插件组件,例如ActiveX控件或Java控件或任何其他类型和/或形式的可执行指令,这些指令能够加载到标准浏览器512中并在标准浏览器512中执行。例如,客户端代理514可以包括由标准浏览器512例如在用户web浏览器应用512的存储器空间或上下文中加载并运行的ActiveX控件。客户端代理514可以预先配置为在用户web浏览器应用512中呈现托管的web浏览器应用522的内容。
客户端代理514可以使用瘦客户端或远程显示协议连接到服务器或云/托管web浏览器服务520,以呈现由在服务520上执行的托管的web浏览器应用522生成的显示输出。瘦客户端或远程显示协议可以是以下非详尽协议列表中的任意一个:佛罗里达州劳德代尔堡的思杰***公司开发的独立计算架构(ICA)协议;或华盛顿州雷德蒙德的微软公司生产的远程桌面协议(RDP)。
托管的web浏览器应用522可以以全屏模式导航到所请求的网络应用,并且可以呈现所请求的网络应用。客户端代理514可以以无缝和透明的方式在web浏览器应用512上呈现网络应用的内容或格式副本(rendition),使得内容看起来是由标准浏览器512显示的,例如,基于以全屏模式显示的内容。换句话说,可以给用户留下这样的印象,即网站内容是由用户web浏览器应用512显示的,而不是由托管的web浏览器应用522显示的。客户端代理514可以使用瘦客户端或远程显示协议将由用户web浏览器应用512生成的导航命令传输到托管的web浏览器应用522。由于导航命令而对托管的web浏览器应用522的显示输出的改变可以由客户端代理514反映在用户web浏览器应用512中,给用户留下导航命令是由用户web浏览器应用512执行的印象。
再次参考图5,并且在操作(4)中,可以在标准浏览器上打开新的浏览器选项卡,以呈现或显示安全浏览器会话。例如,可以通过安全浏览器插件建立或打开新的浏览器选项卡。安全浏览器插件和/或客户端代理可以从安全浏览器会话接收数据,并且可以在上面结合例如图6所讨论的新浏览器选项卡内呈现网络应用。
在操作(5)中,安全浏览器可以经由网络应用将所有用户交互事件反馈给分析服务进行处理。安全浏览器插件可以监视和拦截定向到浏览器选项卡中网络应用的格式副本的任何用户交互事件。因此,用户可以经由云服务和安全浏览器的互操作(在没有客户端应用的情况下)使用本机(或标准)浏览器访问网络应用,同时允许查看网络应用的流量。
图7描述了使用安全浏览器的***的另一示例实施例。简要概述,该***包括云服务408、网络应用406和客户端设备402。在一些实施例中,***的各种元件类似于上面针对图5描述的元件。具有嵌入式浏览器的客户端应用在客户端设备402中不可用。客户端设备上可用标准或典型(如HTML5)浏览器,用户可以从中发起访问未经批准的网络应用的请求。网络应用可以经由可被管理员设置或自动设置(例如,经由人工智能)的策略指定为经批准的或未经批准的。
在操作(1)中,用户可以尝试使用标准浏览器登录到未经批准的网络应用。用户可以尝试访问提供网络应用的服务器的网页,并发起访问网络应用的请求。在一些实施例中,请求可以被转发到指定网关服务或被指定网关服务拦截(例如,在请求的数据路径中)。例如,网关服务(有时称为SWG)可以驻留在客户端设备(例如,作为可执行程序)上,或者可以驻留在例如云服务408的网络设备432上。网关服务可以检测或以其他方式确定请求的网络应用是否是经批准的网络应用。网关服务可以确定CEB是否发起了请求。网关服务可以检测或以其他方式确定请求是从客户端设备中的源发起的(例如,由标准浏览器发起),而不是从CEB发起的。
在操作(2)中,网关服务检测到请求的网络应用是未经批准的网络应用。例如,网关服务可以从请求中提取信息(例如,目的地地址、请求的网络应用的名称),并将该信息与来自经批准和/或未经批准的网络应用数据库的信息进行比较。网关服务可以基于该比较确定请求的网络应用是未经批准的网络应用。
在操作(3)中,响应于所述确定,网关服务可以例如通过阻止请求来阻止对所请求的网络应用的访问。网关服务可以响应于所述确定,生成和/或向标准浏览器发送URL重定向消息。在操作(3)中,URL重定向消息可以类似于图5中从服务器发送到标准浏览器的URL重定向消息。标准浏览器的安全浏览器插件可以接收URL重定向消息,并且可以例如向安全浏览器420发送访问未经批准的网络应用的请求。安全浏览器420可以将请求定向到未经批准的网络应用的服务器。
未经批准的网络应用的服务器可以经由云服务408的接入网关(例如,响应于从安全浏览器接收请求)来认证用户。响应于所述请求,服务器可以与接入网关通信以对用户进行认证。服务器可以向接入网关发送请求以对用户进行认证。响应于服务器对用户进行认证的请求,接入网关可以向服务器430提供用户的凭证。认证后,安全浏览器(或相应的CEB)可以与服务器建立安全连接和应用会话。
在操作(4)中,可以在标准浏览器上打开新的浏览器选项卡,以呈现或显示安全浏览器的应用会话。例如,可以由安全浏览器插件建立或打开新的浏览器选项卡。安全浏览器插件和/或客户端代理可以从安全浏览器会话接收数据,并且可以在如上面结合例如图5-6所讨论的新浏览器选项卡内呈现网络应用。
在操作(5)中,安全浏览器可以经由网络应用将所有用户交互事件反馈给分析服务进行处理。安全浏览器插件可以监视和拦截定向到浏览器选项卡中网络应用的格式副本的任何用户交互事件。因此,用户可以经由云服务和安全浏览器的互操作(在没有客户端应用的情况下)使用本机(或标准)浏览器访问网络应用,同时允许查看网络应用的流量。
在一些实施例中,在客户端设备上没有或不可用CEB的情况下,执行浏览器重定向,以便经由相应的托管安全浏览器(或托管CEB)访问每个请求的网络应用以进行处理,而不是通过单个托管安全浏览器(或托管CEB)重定向所有流量。每个专用的安全浏览器都可以提供分区和改进的安全性。
CEB的使用,无论是托管的还是客户端设备本地的,都可以实现应用流量的端到端可见性,用于分析、服务级别协议(SLA)、资源利用率、审核等。除了这种可见性之外,CEB还可以配置有用于管理和控制任何这些方面以及其他方面的策略。例如,可以支持DLP特性,以例如控制“复制和粘贴”活动、下载文件、共享文件和实现水印。作为另一个示例,CEB可以配置有用于管理和控制对本地驱动器和/或设备资源(如***设备)的访问的策略。
现在参考图8,描述了用于使用本地嵌入式浏览器和托管安全浏览器的***的示例实施例。所示的环境可以使用不同类型的客户端设备402A、402B(例如,在BYOD上下文中),使得一个客户端设备可以本地配备合适的CEB,而另一个客户端设备可能没有安装合适的本地CEB。在这样的环境中,图4、5和7中描述的***可用于基于本地安装的和合适的CEB的可用性来支持每个客户端设备。
图9描述了用于使用本地嵌入式浏览器和托管的安全浏览器的示例处理流程。可以在上述图8的环境中使用该处理流程,以确定针对每个客户端设备应该使用嵌入式浏览器还是托管的安全浏览器来访问网络应用。例如,在操作901中,HTTP客户端可以尝试访问web服务(例如,网络应用的服务器)。在操作903中,web服务可以将HTTP客户端重定向到网关服务以进行认证。在操作906中,网关服务可以确定HTTP客户端是否是CEB。如果是,则在操作909中,网关服务可以确定CEB是否合适的CEB,例如,是否能够实施定义的应用策略。如果是,在操作911中,CEB被允许访问web服务,并且可以实施定义的策略。
如果网关服务确定HTTP客户端不是CEB,则在操作907中,网关服务可以使CEB的虚拟化版本在远程服务器(例如,云服务408的网络设备432)上初始化并托管。在一些实施例中,这样的托管CEB可能已经在网络设备432上可用,并且可以被选择使用。例如,在操作911中,CEB被允许访问web服务,并可以实施定义的策略。
如果网关服务确定HTTP客户端是CEB,但CEB不是合适的CEB,则网关服务可以在操作907中使CEB的虚拟化版本在远程服务器(例如,云服务408的网络设备432)上初始化并托管。在一些实施例中,这样的托管CEB可能已经在网络设备432上可用,并且可以被选择使用。例如,在操作911中,CEB被允许访问web服务,并可以实施定义的策略。
在一些实施例中,如果用户请求访问位于公司数据中心中的web应用,则当检测到具有CEB的客户端应用时,网关服务(在云服务中或本地)可以允许访问。否则,请求可以被路由到具有托管的CEB虚拟化版本的服务,然后对访问进行认证和授权。
例如,在操作905和/或操作909,关于HTTP客户端是否是CEB以及它是否是合适的CEB的决定可以由许多因素来确定。例如,为了确定HTTP客户端是否是CEB,网关服务可以考虑一些因素,例如包括以下中的至少一个:用户身份和认证强度、客户端位置、客户端IP地址、用户身份的可信程度、客户端位置、客户端IP、客户端设备的越狱状态、反恶意软件的状态,遵守客户端设备的公司策略,和/或远程认证或客户端软件完整性的其他证据。
为了确定CEB是否能够遵守或支持所有定义的应用策略(这些策略可能因客户端版本、客户端OS平台和其他因素而异),客户端设备的软件和网关服务可以执行能力协商和/或交换版本信息。在一些实施例中,网关服务可以查询或检查CEB的版本号或标识符,以确定CEB是否适合使用。
然后,通过CEB驱动所有流量允许对基于内容访问SaaS和Web的***进行额外控制。SaaS和Web流量的数据丢失预防(DLP)可以通过CEB应用来应用,其特性包括对其他CEB访问应用或IT受管设备的复制和粘贴控制。DLP还可以通过允许内容仅下载到指定文件服务器或IT控制下的服务来实施。
现在参考图10,描述了用于管理用户对网页的访问的***的示例实施例。一些网页(或网站)被认为是安全的,而其他可能是可疑的。用户可以通过标准浏览器经由相应的URL访问网页。例如,用户可以点击与URL相对应的链接,该链接可以包含在使用电子邮件应用查看的电子邮件中。接入网关(SWG)可以拦截通过点击链接生成的访问请求,并且可以确定相应的URL是安全还是可疑。如果已知URL是安全的,则接入网关可以允许请求继续到相应的网站或web服务器。如果URL可疑,则接入网关可以经由托管的安全浏览器重定向要处理的请求。安全浏览器可以请求访问并访问网页(代表标准浏览器),并且可以允许将网页信息传送到标准浏览器,类似于经由浏览器重定向处理网络应用,如结合至少图7和图5所讨论的。
C.用于通过嵌入式浏览器为网络应用调用客户端应用的应用编程接口(API)的系 统和方法
本公开旨在通过嵌入式浏览器为网络应用调用客户端应用的应用编程接口(API)。客户端应用可以在客户端设备上执行,并且可以通过客户端应用的嵌入式浏览器为客户端设备建立到一个或多个网络应用的一个或多个会话。客户端应用可以拦截网络应用对API的调用,并增强被调用的API,或者提供与网络应用调用的API相比具有增强功能的不同API。例如,客户端应用提供的增强API或不同API可以包含通过最初调用的API不可用的功能。
在一个实施例中,在会话期间,网络应用(例如,软件即服务(SaaS)应用)可以经由客户端应用的嵌入式浏览器调用API。API可以包括打印API。客户端应用可以增强或优化所调用的打印API,以改进打印API的功能。例如,客户端应用可以修改打印API,以使打印API直接打印,而不是执行典型的浏览器打印流程。客户端应用可以提供第二种不同的打印API,该打印API被配置为直接打印。
客户端应用可以提供API,网络应用可以调用这些API来访问客户端资源、客户端驱动器或客户端设备(例如但不限于与客户端设备和生物特征耦合的USB设备),和/或与客户端设备本地或本机应用通信。
在一些实施例中,客户端应用可以在客户端设备和网络应用之间的会话上应用一个或多个策略来实施某些限制,即使特定网络应用不支持相应的一个或多个策略。例如,在一个实施例中,即使网络应用不支持没有客户端应用的智能卡认证,客户端应用也可以应用策略来对网络应用实施智能卡认证。
客户端应用可以拦截网络应用作出的调用,以建立与本机端点应用(例如但不限于客户端驱动器和/或***设备)的集成。客户端应用可以实施数据丢失预防的策略和/或限制对网络应用某些部分的访问。客户端应用可以通过控制网络应用的加载和/或呈现方式来优化网络应用性能,并对网络应用的使用提供更细粒度的访问控制。
参照图11,描述了客户端应用1104的一个实施例的框图,该客户端应用在客户端设备1102上执行以经由客户端应用1104的嵌入式浏览器1106建立到一个或多个网络应用1120a-1120n的一个或多个会话1130a-1130n(本文中也称为应用会话)。客户端应用1104包括嵌入式浏览器1106、策略管理器1108和多个API 1110a-1110n。客户端应用1104可以是本文描述的任意客户端应用的实例。例如,客户端应用1104可以与图4的客户端应用404相同或基本相似。
具有嵌入式浏览器1106的客户端应用1104(CEB)可以包括如本文所描述的CEB的任何元件。例如,嵌入式浏览器1106可以与上文关于图4所描述的嵌入式浏览器410相同或基本相似。嵌入式浏览器1106可以包括web浏览器应用或引擎的元件和功能。嵌入式浏览器1106可以本地呈现网络应用1120a-1120n中的一个或多个,作为客户端应用1104的组件或扩展。例如,嵌入式浏览器1106可以在CEB内呈现SaaS/Web应用,其可以向CEB提供对应用会话1130的完全可见性和控制。
客户端应用1104可以通过嵌入式浏览器1106为客户端设备1102建立与一个或多个网络应用1120a-1120n的一个或多个会话1130a-1130n。会话1130a-1130n可以包括本文所描述的任何类型或形式的会话。例如,会话1130a-1130n可以包括但不限于应用会话、执行会话、桌面会话、托管的桌面会话、终端服务会话、浏览器会话、远程桌面会话和远程应用会话。会话1130a-1130n可以包括在网络应用1120a-1120n和客户端设备1102之间建立的加密和/或安全会话。
网络应用1120a-1120n可以包括本文详述的任何类型或形式的网络应用。例如,网络应用1120a-1120n可以与上文关于图4描述的网络应用406相同或基本相似。网络应用1120a-1120n可以包括从一个或多个服务器提供和/或托管在一个或多个服务器上的应用(app),例如但不限于web应用、软件即服务(SaaS)应用和/或远程托管的应用。在一些实施例中,网络应用1120a-1120n可以包括托管在由客户端设备1102经由网络104访问的服务器上的应用。网络应用1120a-1120n可以包括或执行一个或多个网页1122。网络应用可以与一个或多个API 1112耦合或调用一个或多个API 1112。API 1112可以不同于客户端应用提供的多个API 1110a-1110n。客户端应用1104可以拦截网络应用1120a-1120b作出的对API1112的调用。
客户端应用1104包括或提供多个API 1110a-1110n。API 1110a-1110n可以包括本文详述的任何类型或形式的API。API 1110a-1110n可以包括一组用于建立软件或与内部或外部***(例如,网络应用1120)交互的命令、功能、协议和/或对象。例如,API 1110a-1110n可以包括用于访问基于web的应用或web工具的编程指令和/或标准。API 1110a-1110n可以包括但不限于SecureCamera、SecureUSB、SecureClipboard、SecureDrive、SecureAuth(例如,客户端证书、智能卡事务)和/或SecureVault。
客户端应用1104可以包括策略管理器1108,以应用或以其他方式提供用于管理与网络应用1120a-1120n的会话1130a-1130n的策略、管理网络应用1120a-1120n的策略和/或管理API 1110a-1110n的策略。例如,策略管理器1108可以为客户端应用1104生成和/或存储多个策略。这些策略可用于控制和/或增强API 1110a-1110n的使用。这些策略可包括访问策略和/或安全策略。这些策略可用于控制特定会话1130的流量级别和/或流量类型,以管理相应网络应用1120的服务级别。策略管理器1108可以应用策略来加密或以其他方式保护会话1130。可以为每个网络应用1120a-1120n、API1110a-1110n、会话1130a-1130n、客户端设备1102、或客户端设备1102或网络应用1120的用户分配策略。
客户端设备1102可以是本文描述的任何客户端设备的实例。例如,客户端设备1102可以与上面关于图2描述的客户端设备202、204、上面关于图3描述的客户端设备302和/或上面关于图4描述的客户端设备402a相同或基本相似。
网络104可以是公共网络,例如广域网(WAN)或互联网。在一些实施例中,网络104可以是诸如局域网(LAN)或公司内部网的专用网络。网络104可以采用一种或多种物理网络和/或网络拓扑,例如有线和/或无线网络,并且可以采用一种或多种通信传输协议,例如传输控制协议(TCP)、互联网协议(IP)、用户数据报协议(UDP)或其它类似协议。
在一个或多个实施例中,以硬件或硬件与软件的组合来实现上述元件或实体中的每一个。客户端应用1104的每个组件可以使用上面结合图1详述的硬件或硬件或软件的组合来实现。例如,这些元件或实体中的每一个可以包括在客户端设备(例如,客户端应用1102)的硬件上执行的任何应用、程序、库、脚本、任务、服务、进程或任何类型和形式的可执行指令。在一个或多个实施例中,硬件包括电路,例如一个或多个处理器。
参考图12,提供了为客户端设备1102提供API的客户端应用1104内的嵌入式浏览器1106的框图的示例实施例。在图12中,客户端应用1104可以包括嵌入式浏览器1106,该浏览器向第一网络应用1120a和第二网络应用1120b提供会话。第二网络应用可以执行客户端应用1104的第一API 1110。
第一网络应用1120a可以对第一API进行第一调用1220a,第二网络应用1120b可以对第二API进行第二调用1220b。客户端应用1104可以拦截对第一API的第一调用1220a和对第二API的第二调用1220b。在一些实施例中,客户端应用的API层1210可以拦截调用1220a、1220b。客户端应用1104可以包括用于存储多个API 1110a-1110b的API层1210。API 1110a-1110b可以提供用于安全、访问控制和/或认证工具的增强功能。
客户端应用1104可以分别基于与第一调用1220a和第二调用1220b相对应的数据或信息,来确定第一网络应用1120a和第二网络应用1120b的API。例如,客户端应用可以识别设备API 1240以提供对客户端设备1102的一个或多个资源、驱动器或设备的访问。设备API 1240可以包括访问控制,以提供对不同网络应用1120a、1120b和/或网络应用1120a、1120b的不同用户的不同级别的访问。设备API 1240可以识别哪些网络应用1120a、1120b和/或网络应用1120a、1120b的用户可以访问客户端设备1102的资源、驱动器或设备。
客户端应用可以识别认证API 1250,以为第一和/或第二网络应用1120a、1120b或第一和/或第二网络应用1120a、1120b的用户提供认证1250。例如,认证API 1250可以提供智能卡认证,多因素认证和/或单点登录认证的功能。
客户端应用可以识别上传API 1260,以在上传事件期间提供增强的安全功能。例如,上传API 1260可以提供在视频调用中为扫描的文档、扫描的图像或摄像机预览实现水印的功能。因此,客户端应用1104可以拦截网络应用1120a、1120b对不同API的调用1220a、1220b,并用不同API替换该API。例如,客户端应用1104可以提供被调用API的增强版本,该增强版本具有与最初API更大或不同的功能,或者提供具有与最初API相比更大或不同功能的不同API。
参照图13,描述了用于通过嵌入式浏览器为网络应用调用客户端应用的应用编程接口(API)的方法的一个实施例的流程图。该方法的功能可以使用由本文结合图1-12详细说明的组件来实现或执行。简言之,可以建立到网络应用的会话(1305)。可以拦截网络应用对第一API的调用(1310)。可以识别用于使用客户端应用的API的策略(1315)。第二API可以基于所识别的策略来确定(1320)。可以执行第二API(1325)。
现在参考操作(1305),并且在一些实施例中,客户端应用可以建立到一个或多个网络应用的一个或多个会话。客户端应用可以在客户端设备上执行并提供多个API。例如,客户端应用可以为客户端设备的用户提供经由嵌入式浏览器从一个或多个服务器提供和/或托管在一个或多个服务器上的网络应用的访问。嵌入式浏览器可以集成或嵌入到客户端应用中,以呈现客户端设备的用户通过客户端应用访问或请求的网络应用。例如,嵌入式浏览器可以与客户端应用集成,以控制与网络应用相关的访问或流量,并通过客户端应用路由流量。对网络应用的访问可以包括通过客户端应用的嵌入式浏览器为客户端设备建立到网络应用的会话。网络应用可以包括但不限于web应用、SaaS应用和/或托管在由客户端设备通过网络访问的服务器上的应用。嵌入式浏览器可以启用或提供客户端设备的用户与网络应用之间的交互。在一些实施例中,客户端应用可以建立到一个或多个服务器的安全连接,以提供应用会话,供用户使用客户端设备和嵌入式浏览器访问网络应用。
现在参考操作(1310),并且在一些实施例中,客户端应用可以拦截一个或多个网络应用中的网络应用调用的第一API。网络应用可以在客户端应用的嵌入式浏览器中调用API。例如,网络应用可以在客户端应用的嵌入式浏览器中调用具有网络应用的网页的超文本标记语言(HTML)API的第一API。客户端应用可以拦截对API的调用,并增强、优化或以其他方式修改被调用的API。在一个实施例中,HTML API可以包括可以对应于打印功能(例如window.print)。客户端应用可以拦截与打印功能对应的HTML API调用,并修改API,以使API直接在客户端应用中打印,而不是使用典型的浏览器打印流程。
现在参考操作(1315),并且在一些实施例中,对于网络应用,客户端应用可以识别用于使用客户端应用的多个API的策略。例如,可以将一个或多个策略分配给网络应用、客户端设备、API和/或网络应用或客户端设备的用户。客户端应用可以识别与网络应用调用的第一API相对应的策略、与网络应用相对应的策略或与客户端设备相对应的策略。该策略可以包括关于谁或哪些设备可以访问网络应用或客户端设备、对网络应用或客户端设备的不同访问级别和/或网络应用或客户端设备的安全特性的指令。
这些策略可用于控制对网络应用或客户端设备的访问或者网络应用或客户端设备的使用。这些策略可以在登录到一个或多个网络应用的事件期间与认证技术相对应。例如,客户端应用可以使用策略来实施认证技术,例如但不限于网络应用的智能卡或生物特征认证。这些策略可以对应于安全或加密技术。例如,客户端应用可以识别用于在上传到网络应用中的扫描文档或图片上应用标记(例如水印)或其他形式的识别模式的策略。使用这些策略,客户端应用可以基于,例如但不限于用户位置和/或行为,提供基于策略和风险的客户端设备资源的动态访问。
可以从客户端应用的策略管理器获取策略。例如,客户端应用可以从策略管理器检索一个或多个策略,并使用一个或多个策略来控制和/或管理网络应用。在一些实施例中,客户端应用可以从策略管理器检索一个或多个策略,并使用一个或多个策略从客户端应用的不同实体控制和/或管理网络应用,并且这种控制和/或管理功能在网络应用源于的不同实体上不可用。
客户端应用可以从与网络应用的实体不同的实体的服务器或不同于客户端应用的实体的服务器获取策略。例如,客户端应用可以通过网络耦合到策略服务器或第三方服务器,该策略服务器或第三方服务器存储分配给网络应用、客户端设备、API和/或网络应用或客户端设备的用户的策略。客户端应用可以检索与客户端应用的一个或多个API相对应的一个或多个策略。在一些实施例中,客户端应用可以向第三方服务器传输请求,并且第三方服务器可以使用所请求的一个或多个策略进行响应。第三方服务器可以包括但不限于存储各种认证技术的策略的认证服务器。例如,认证服务器可以包括用于访问网络应用和/或客户端设备(例如,客户端设备的不同组件、驱动器或设备)的认证策略。
现在参考操作(1320),并且在一些实施例中,客户端应用可以基于至少一个策略来确定客户端应用的多个API中的第二API,以用于被拦截的第一API。客户端应用可以使用该策略来确定与网络应用调用的第一API不同的第二API。例如,策略可能需要或请求第一API不提供或不包括的某些功能。客户端应用可以从客户端应用提供的多个API中识别一个API(例如,第二API),该API包括或提供策略中要求或请求的功能。因此,在一些实施例中,第二API可以提供与第一API不同的(例如,更大的)功能。例如,网络应用可能受到其使用的API的限制。因此,客户端应用可以拦截对不同API的调用,以增强它们提供经由第一API不可用的功能,或者API以前不包括的功能,或者提供具有比被调用的API更大功能的不同API,以提供或建立与本机端点应用、客户端驱动器,和/或***设备的集成。
现在参考操作(1325),并且在一些实施例中,客户端应用可以执行客户端应用的多个API中的第二API。客户端应用可以执行第二API来取代或代替网络应用调用的第一API。客户端应用可以通过嵌入式浏览器在客户端应用中执行第二API。第二API可以包含第一个API的增强版本。例如,第二API可以提供与第一API不同或更多的功能。
客户端应用可以拦截对API的调用,并用不同的API替换该API。例如,客户端应用可以用被调用的第一API的安全版本替换被调用的API。因此,第二API可以包括第一API的安全版本。客户端应用可以用被调用的API的增强版本替换被调用的API,增强版本具有与最初API相比更大或不同的功能。例如,增强的API可以包括一些功能,例如但不限于最初调用的API以前无法执行的数据丢失预防措施。该API的第二安全版本可以提供额外的保护,例如在视频调用中为扫描的文档、扫描的图像或摄像机预览提供水印。客户端应用可以执行第二API,以在视频调用中为扫描的文档、扫描的图像或摄像机预览提供水印。
第二API可以包括对网络应用的单点登录功能,即使被调用的第一API不包括单点登录功能。客户端应用可以执行第二API来为网络应用提供单点登录功能。例如,第二API可用于向网络应用实施或提供特定类型的登录,例如但不限于智能卡认证和/或多因素认证。在一些实施例中,第二API可对应于用户签名功能(例如,数字签名),从而为例如但不限于上传文档、下载文件和/或打印等操作提供多因素认证。
客户端应用可以在登录事件之后或登录后拦截对网络应用的调用。第二API可以对应于与客户端设备交互的网络应用的功能,例如但不限于上传事件、下载事件、打印和/或拍摄图片。客户端应用可以执行第二API来提供或控制对客户端设备的不同资源、客户端驱动器或设备的访问。第二API可以在后登录事件(post log-in event)期间的不同时间处实施或提供上下文认证。在一些实施例中,客户端应用可以提供javascript API,当网络应用经由嵌入式浏览器在客户端应用内执行时可以使用这些API。可以基于分配给网络应用的策略授予对网络应用的访问权限。
客户端应用可以提供web API,网络应用可以直接调用这些API来访问客户端设备的不同资源、驱动器或设备。例如,第二API可以提供功能或对USB设备的访问,生物特征识别和/或与客户端设备上的其他本机或本地应用的通信。因此,客户端应用可以执行第二API,使得网络应用可以直接调用,以通过客户端应用内的嵌入式浏览器访问客户端设备的不同资源、驱动器或设备。
客户端应用可以执行第二API以向客户端设备的用户提供访问控制。访问的类型或级别可以部分地基于用户和/或用户正在与之交互的特定网络应用。例如,客户端应用可以识别一个策略,该策略允许客户端应用通过嵌入式浏览器控制其当前在客户端设备上执行的所有配置的网络应用。客户端应用的嵌入式浏览器可以读取该策略并将该策略应用于一个或多个网络应用,以由相应的用户在客户端设备上提供各种访问控制。
参照图14,描述了用于在客户端应用的嵌入式浏览器中经由网络应用调用客户端应用的API的方法的一个实施例的流程图。该方法的功能可以使用由本文结合图1-12详细说明的组件来实现或执行。简言之,可以建立到网络应用的会话(1405)。可以接收网络应用的网页(1410)。可以识别用于使用客户端应用的API的策略(1415)。第二API可以基于所识别的策略来确定(1420)。可以执行第二API(1425)。
现在参考操作(1405),并且在一些实施例中,客户端应用可以建立到网络应用的会话。客户端应用可以在客户端设备上执行,并提供客户端应用经由嵌入式浏览器可执行的多个API。可以经由客户端应用的嵌入式浏览器访问到网络应用的会话。网络应用可以包括但不限于web应用、SaaS应用和/或托管在由客户端设备通过网络访问的服务器上的应用。嵌入式浏览器可以启用或提供客户端设备的用户与网络应用之间的交互。在一些实施例中,客户端应用可以建立到网络应用的安全连接或安全会话。
现在参考操作(1410),并且在一些实施例中,嵌入式浏览器可以接收网络应用的网页。网页可以包括客户端应用的多个API中的API。嵌入式浏览器可以确定网页所调用的API至少是客户端应用提供的多个API中的一个API。嵌入式浏览器可以将被调用的API与客户端应用提供的多个API进行比较,以确定网页所调用的API至少是客户端应用提供的多个API中的一个API。
现在参考操作(1415),并且在一些实施例中,对于网络应用,客户端应用可以识别用于使用客户端应用的API的策略。可以将策略分配给网络应用、客户端设备、API和/或网络应用或客户端设备的用户。客户端应用可以识别分配给网络应用、客户端设备或者网络应用或客户端设备的用户的策略。客户端应用可以识别与网络应用的网页所调用的API相对应的策略、与网络应用相对应的策略或与客户端设备相对应的策略。该策略可以包括关于谁或哪些设备可以访问网页、网络应用或客户端设备,对网页、网络应用或客户端设备的不同访问级别,和/或网页、网络应用或客户端设备的安全特性的指令。
在一些实施例中,客户端应用可以从与网络应用的实体不同的实体的服务器获得策略。例如,客户端应用可以通过网络耦合到策略服务器或第三方服务器,该策略服务器或第三方服务器存储分配给网络应用、客户端设备、API和/或网络应用或客户端设备的用户的策略。客户端应用可以检索与客户端应用的一个或多个API相对应的一个或多个策略。在一些实施例中,客户端应用可以向第三方服务器传输请求,并且第三方服务器可以使用所请求的一个或多个策略进行响应。第三方服务器可以包括但不限于存储各种认证技术的策略的认证服务器。例如,认证服务器可以包括用于访问网络应用和/或客户端设备(例如,客户端设备的不同组件、驱动器或设备)的认证策略。
现在参考操作(1420),并且在一些实施例中,客户端应用可以基于策略确定网络应用有权执行客户端应用的API。这些策略可以包括有关访问API、网络应用或客户端设备的指令。客户端应用可以使用一个或多个策略来确定网络应用、客户端设备或者网络应用或客户端设备的用户是否可以访问或具有适当的权限级别来访问以执行API。客户端应用可以比较网络应用、客户端设备或者网络应用或客户端设备的用户的策略和凭证,以确定执行API的访问权限。
这些策略可以对应于一个或多个网络应用的登录事件期间的认证技术。例如,客户端应用可以使用这些策略来实施认证技术,例如但不限于针对网络应用的智能卡或生物特征认证。这些策略可以对应于安全或加密技术。例如,客户端应用可以识别用于在上传到网络应用中的扫描文档或图片上应用标记(例如水印)或其他形式的识别模式的策略。使用这些策略,客户端应用可以基于,例如但不限于用户位置和/或行为,提供基于策略和风险的客户端设备资源的动态访问。
现在参考操作(1425),并且在一些实施例中,客户端应用可以针对网络应用的网页执行客户端应用的API。客户端应用可以通过嵌入式浏览器执行网络应用的网页的API。客户端应用的API可以提供比网络应用的API更大的功能。客户端应用可以执行API,以增强或向网络应用的网页提供网页以前不包括的功能。例如,API可以提供或建立与本机端点应用、客户端驱动器和/或***设备的集成。
在一些实施例中,客户端应用可以提供web API,网络应用的网页可以直接调用这些web API来访问客户端设备的不同资源、驱动器或设备。例如,API可以提供对USB设备的功能或访问、生物特征识别和/或与客户端设备上的其他本机或本地应用的通信。因此,客户端应用可以执行API,使得网络应用的网页可以直接调用,以通过客户端应用内的嵌入式浏览器访问客户端设备的不同资源、驱动器或设备。客户端应用可以执行API来向客户端设备的用户提供访问控制。访问的类型或级别可以部分地基于用户和/或用户经由网页与之交互的特定网络应用。
应当理解,上面描述的***可以提供这些组件中的任何一个或每一个的多个组件,并且这些组件可以在独立机器上提供,或者在一些实施例中,在分布式***中的多个机器上提供。上面描述的***和方法可被实现为使用编程和/或工程技术来产生软件、固件、硬件或其任何组合的方法、装置或制品。此外,上面描述的***和方法可被提供为一个或多个计算机可读程序,其包含在一个或多个制品上或其中。本文中使用的术语“制品”旨在包含可从一个或多个计算机可读设备、固件、可编程逻辑、存储器设备(例如EEPROM,ROM,PROM,RAM,SRAM等)、硬件(例如集成电路芯片、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等))、电子设备、计算机可读非易失性存储单元(如CD-ROM、USB闪存、硬盘驱动器等)访问并嵌入其中的代码或逻辑。制品可以从文件服务器访问,该文件服务器经由网络传输线、无线传输介质、通过空间传播的信号、无线电波、红外信号等提供对计算机可读程序的访问。制品可以是闪存卡或磁带。制品包括硬件逻辑以及嵌入在由处理器执行的计算机可读介质中的软件或可编程代码。一般来说,计算机可读程序可以用任何编程语言来实现,如LISP、PERL、C、C++、C#、PROLOG,或者用任何字节代码语言来实现,如Java。软件程序可以作为目标代码存储在一个或多个制品上或其中。
虽然已经描述了这些方法和***的各种实施例,但是这些实施例是说明性的,并且不以任何方式限制所描述的方法或***的范围。本领域技术人员可以在不脱离所述方法和***的最广泛范围的情况下对所述方法和***的形式和细节进行改变。因此,本文所描述的方法和***的范围不应受到任何说明性实施例的限制,并且应根据所附权利要求及其等同物来限定。

Claims (20)

1.一种用于经由客户端应用的嵌入式浏览器为网络应用调用所述客户端应用的应用编程接口的方法,所述方法包括:
(a)由客户端设备上的客户端应用建立与经由所述客户端应用的嵌入式浏览器访问的一个或多个网络应用的一个或多个会话,所述客户端应用提供多个应用编程接口(API);
(b)由所述客户端应用拦截由所述一个或多个网络应用中的网络应用调用的第一应用编程接口(API);
(c)由所述客户端应用针对所述网络应用,识别用于使用所述客户端应用的所述多个API的策略;
(d)由所述客户端应用至少基于所述策略,确定所述客户端应用的所述多个API中的第二API,以用于被拦截的第一API;以及
(e)由所述客户端应用针对被拦截的所述第一API调用,执行所述客户端应用的所述多个API中的所述第二API。
2.根据权利要求1所述的方法,其中,所述嵌入式浏览器被集成到所述客户端应用中。
3.根据权利要求1所述的方法,其中,所述一个或多个网络应用包括托管在服务器上的应用,所述服务器由所述客户端设备经由网络访问。
4.根据权利要求1所述的方法,其中,(b)还包括由所述客户端应用拦截所述第一API,所述第一API包括在所述客户端应用的浏览器中的所述网络应用的网页的超文本标记语言API。
5.根据权利要求1所述的方法,其中,(c)还包括识别分配给所述网络应用、所述客户端设备或者所述网络应用或所述客户端设备的用户的策略。
6.根据权利要求1所述的方法,其中,所述策略由所述客户端应用从与所述网络应用的实体不同的实体的服务器获得。
7.根据权利要求1所述的方法,其中,(e)还包括由所述嵌入式浏览器执行在所述客户端应用内的所述第二API。
8.根据权利要求1所述的方法,其中,所述客户端应用的所述第二API提供经由所述网络应用的所述第一API不可用的功能。
9.一种用于经由客户端应用的嵌入式浏览器为网络应用调用所述客户端应用的应用编程接口的***,所述***包括:
在客户端设备上可执行的客户端应用,所述客户端应用提供所述客户端应用经由嵌入式浏览器可执行的多个应用编程接口(API);所述客户端应用被配置为:
建立与经由所述客户端应用的所述嵌入式浏览器访问的一个或多个网络应用的一个或多个会话;
拦截由所述一个或多个网络应用中的网络应用调用的第一应用编程接口(API);
针对所述网络应用,识别用于使用所述客户端应用的所述多个API的策略;
至少基于所述策略,确定所述客户端应用的所述多个API中的第二API,以用于被拦截的第一API;以及
针对被拦截的所述第一API调用,执行所述客户端应用的所述多个API中的所述第二API。
10.根据权利要求9所述的***,其中,所述嵌入式浏览器被集成到所述客户端应用中。
11.根据权利要求9所述的***,其中,所述一个或多个网络应用包括托管在服务器上的应用,所述服务器由所述客户端设备经由网络访问。
12.根据权利要求9所述的***,其中,所述客户端应用还被配置为拦截所述第一API,所述第一API包括在所述客户端应用的浏览器中的所述一个或多个网络应用中的至少一个网络应用的网页的超文本标记语言API。
13.根据权利要求9所述的***,其中,所述客户端应用还被配置为识别分配给所述一个或多个网络应用中的至少一个网络应用、所述客户端设备或者所述至少一个网络应用或所述客户端设备的用户的策略。
14.根据权利要求9所述的***,其中,所述策略由所述客户端应用从与所述网络应用的实体不同的实体的服务器获得。
15.根据权利要求9所述的***,其中,所述客户端应用还被配置为由所述嵌入式浏览器执行在所述客户端应用内的所述第二API。
16.根据权利要求9所述的***,其中,所述客户端应用的所述第二API提供经由所述网络应用的所述第一API不可用的功能。
17.一种用于经由网络应用在客户端应用的嵌入式浏览器中调用所述客户端应用的应用编程接口的方法,所述方法包括:
(a)由客户端设备上的客户端应用建立与经由所述客户端应用的嵌入式浏览器访问的网络应用的会话,所述客户端应用提供所述客户端应用经由所述嵌入式浏览器可执行的多个应用接口(API);
(b)由所述嵌入式浏览器接收所述网络应用的网页,所述网页包括所述客户端应用的所述多个API中的API;
(c)由所述客户端应用针对所述网络应用,识别用于使用所述客户端应用的API的策略;
(d)由所述客户端应用基于所述策略,确定所述网络应用有权执行所述客户端应用的API;以及
(e)由所述客户端应用针对所述网络应用的所述网页,执行所述客户端应用的API。
18.根据权利要求17所述的方法,其中,(b)还包括由所述嵌入式浏览器确定所述网页调用的API是所述客户端应用的API。
19.根据权利要求17所述的方法,其中,(c)还包括识别分配给所述网络应用、所述客户端设备或者所述网络应用或所述客户端设备的用户的策略。
20.根据权利要求17所述的方法,其中,所述策略由所述客户端应用从与所述网络应用的实体不同的实体的服务器获得。
CN201980003123.1A 2018-09-21 2019-09-19 经由嵌入式浏览器拦截和增强saas应用调用的***和方法 Active CN111226429B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/138,076 US10599486B1 (en) 2018-09-21 2018-09-21 Systems and methods for intercepting and enhancing SaaS application calls via embedded browser
US16/138076 2018-09-21
PCT/US2019/051893 WO2020061288A1 (en) 2018-09-21 2019-09-19 Systems and methods for intercepting and enhancing saas application calls via embedded browser

Publications (2)

Publication Number Publication Date
CN111226429A true CN111226429A (zh) 2020-06-02
CN111226429B CN111226429B (zh) 2022-11-15

Family

ID=68109472

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980003123.1A Active CN111226429B (zh) 2018-09-21 2019-09-19 经由嵌入式浏览器拦截和增强saas应用调用的***和方法

Country Status (6)

Country Link
US (2) US10599486B1 (zh)
EP (1) EP3652922B1 (zh)
JP (1) JP6889785B2 (zh)
CN (1) CN111226429B (zh)
CA (1) CA3065824C (zh)
WO (1) WO2020061288A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858094A (zh) * 2020-07-14 2020-10-30 北京海泰方圆科技股份有限公司 一种数据复制粘贴方法、***及电子设备
CN111880953A (zh) * 2020-07-31 2020-11-03 北京致远互联软件股份有限公司 一种应用程序通信方法、装置、电子设备及存储介质
CN112243041A (zh) * 2020-12-21 2021-01-19 成都雨云科技有限公司 一种用于远程桌面访问协议的跨域连接***及其方法
CN112256984A (zh) * 2020-10-22 2021-01-22 上海悦易网络信息技术有限公司 一种网页对应的接口托底截图的获取方法及设备
CN112667997A (zh) * 2020-12-31 2021-04-16 广州点云科技有限公司 一种禁用Windows***浏览器的方法和装置
CN113886738A (zh) * 2021-09-29 2022-01-04 中教云智数字科技有限公司 一种基于cef扩展自定义协议的方法
CN115118704A (zh) * 2022-05-18 2022-09-27 青岛国实科技集团有限公司 一种实现海洋应用同一平台异构***功能联动的方法
US11922074B1 (en) 2020-10-11 2024-03-05 Edjx, Inc. Systems and methods for a content-addressable peer-to-peer storage network

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11392428B2 (en) 2019-07-17 2022-07-19 Memverge, Inc. Fork handling in application operations mapped to direct access persistent memory
US11611549B2 (en) * 2019-10-03 2023-03-21 Fset Inc System and method of securing access to a secure remote server and database on a mobile device
KR102491987B1 (ko) * 2020-12-04 2023-01-26 (주)글루버 가상화 서버, 이의 동작 방법, 및 프로그램
US20220294788A1 (en) * 2021-03-09 2022-09-15 Oracle International Corporation Customizing authentication and handling pre and post authentication in identity cloud service
CN113407885B (zh) * 2021-06-23 2024-04-12 中移(杭州)信息技术有限公司 XPath数据篡改告警方法、装置、设备及可读存储介质
US20230045610A1 (en) * 2021-08-03 2023-02-09 Dell Products, L.P. Eye contact correction in a communication or collaboration session using a platform framework
US20230041678A1 (en) * 2021-08-03 2023-02-09 Dell Products, L.P. Intelligent orchestration of digital watermarking using a platform framework
CN114816800A (zh) * 2022-05-07 2022-07-29 支付宝(杭州)信息技术有限公司 应用于IoT设备的事件处理方法及装置
US20230367892A1 (en) * 2022-05-13 2023-11-16 Intuit Inc. Secure embedded web browser
US20230401308A1 (en) * 2022-06-14 2023-12-14 Unbiased Security Ltd. Interactive security orchestration
CN117573390A (zh) * 2023-11-20 2024-02-20 航天信息(广东)有限公司 一种数据处理方法、云端、客户端及数据处理***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103177028A (zh) * 2011-12-23 2013-06-26 腾讯科技(深圳)有限公司 一种信息交互的方法和***
US20140047532A1 (en) * 2012-08-09 2014-02-13 Cisco Technology, Inc. Secure Mobile Client with Assertions for Access to Service Provider Applications
US20140108793A1 (en) * 2012-10-16 2014-04-17 Citrix Systems, Inc. Controlling mobile device access to secure data
US20160057107A1 (en) * 2014-08-22 2016-02-25 Shape Security, Inc. Application programming interface wall
US20160191351A1 (en) * 2014-09-08 2016-06-30 User Replay Limited Systems and methods for recording and recreating interactive user-sessions involving an on-line server
CN107632884A (zh) * 2017-09-12 2018-01-26 成都安恒信息技术有限公司 一种浏览器通过中间装置启动外部应用程序的方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050160153A1 (en) * 2004-01-21 2005-07-21 International Business Machines Corp. Publishing multipart WSDL files to URL
CN102281311B (zh) * 2010-06-10 2014-06-04 阿里巴巴集团控股有限公司 一种基于开放应用编程接口实现网络业务的方法、***及装置
US9354852B2 (en) * 2010-12-23 2016-05-31 Microsoft Technology Licensing, Llc Satisfying application dependencies
US9215225B2 (en) * 2013-03-29 2015-12-15 Citrix Systems, Inc. Mobile device locking with context
US9413736B2 (en) * 2013-03-29 2016-08-09 Citrix Systems, Inc. Providing an enterprise application store
US9355223B2 (en) * 2013-03-29 2016-05-31 Citrix Systems, Inc. Providing a managed browser
US9270674B2 (en) * 2013-03-29 2016-02-23 Citrix Systems, Inc. Validating the identity of a mobile application for mobile application management
US8849979B1 (en) * 2013-03-29 2014-09-30 Citrix Systems, Inc. Providing mobile device management functionalities
JP6047685B2 (ja) * 2013-03-29 2016-12-21 サイトリックス システムズ,インコーポレイテッド 複数の操作モードを有するアプリケーションのデータ管理
KR20160057873A (ko) * 2014-11-14 2016-05-24 삼성전자주식회사 통신 방법, 전자 장치 및 저장 매체
US9538345B2 (en) 2015-01-28 2017-01-03 Citrix Systems, Inc. Systems and methods for performing load balancing and message routing for short message peer to peer protocol
US10382446B2 (en) * 2015-05-28 2019-08-13 Cameyo Inc. Computerized system, method and computer program product, for managing a computer program's operations
US10238965B2 (en) * 2016-04-28 2019-03-26 Sony Interactive Entertainment America Llc Cloud gaming device handover

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103177028A (zh) * 2011-12-23 2013-06-26 腾讯科技(深圳)有限公司 一种信息交互的方法和***
US20140047532A1 (en) * 2012-08-09 2014-02-13 Cisco Technology, Inc. Secure Mobile Client with Assertions for Access to Service Provider Applications
US20140108793A1 (en) * 2012-10-16 2014-04-17 Citrix Systems, Inc. Controlling mobile device access to secure data
US20160057107A1 (en) * 2014-08-22 2016-02-25 Shape Security, Inc. Application programming interface wall
US20160191351A1 (en) * 2014-09-08 2016-06-30 User Replay Limited Systems and methods for recording and recreating interactive user-sessions involving an on-line server
CN107632884A (zh) * 2017-09-12 2018-01-26 成都安恒信息技术有限公司 一种浏览器通过中间装置启动外部应用程序的方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858094A (zh) * 2020-07-14 2020-10-30 北京海泰方圆科技股份有限公司 一种数据复制粘贴方法、***及电子设备
CN111858094B (zh) * 2020-07-14 2021-05-18 北京海泰方圆科技股份有限公司 一种数据复制粘贴方法、***及电子设备
CN111880953A (zh) * 2020-07-31 2020-11-03 北京致远互联软件股份有限公司 一种应用程序通信方法、装置、电子设备及存储介质
US11922074B1 (en) 2020-10-11 2024-03-05 Edjx, Inc. Systems and methods for a content-addressable peer-to-peer storage network
CN112256984A (zh) * 2020-10-22 2021-01-22 上海悦易网络信息技术有限公司 一种网页对应的接口托底截图的获取方法及设备
CN112256984B (zh) * 2020-10-22 2022-09-30 上海万物新生环保科技集团有限公司 一种网页对应的接口托底截图的获取方法及设备
CN112243041A (zh) * 2020-12-21 2021-01-19 成都雨云科技有限公司 一种用于远程桌面访问协议的跨域连接***及其方法
CN112667997A (zh) * 2020-12-31 2021-04-16 广州点云科技有限公司 一种禁用Windows***浏览器的方法和装置
CN113886738A (zh) * 2021-09-29 2022-01-04 中教云智数字科技有限公司 一种基于cef扩展自定义协议的方法
CN113886738B (zh) * 2021-09-29 2024-07-12 中教云智数字科技有限公司 一种基于cef扩展自定义协议的方法
CN115118704A (zh) * 2022-05-18 2022-09-27 青岛国实科技集团有限公司 一种实现海洋应用同一平台异构***功能联动的方法

Also Published As

Publication number Publication date
CA3065824C (en) 2021-03-09
US20200218583A1 (en) 2020-07-09
US11669376B2 (en) 2023-06-06
EP3652922B1 (en) 2024-07-31
JP6889785B2 (ja) 2021-06-18
US10599486B1 (en) 2020-03-24
EP3652922A1 (en) 2020-05-20
WO2020061288A1 (en) 2020-03-26
CN111226429B (zh) 2022-11-15
US20200097337A1 (en) 2020-03-26
CA3065824A1 (en) 2020-03-21
JP2021501381A (ja) 2021-01-14

Similar Documents

Publication Publication Date Title
CN111226429B (zh) 经由嵌入式浏览器拦截和增强saas应用调用的***和方法
EP3788760B1 (en) Systems and methods for adding watermarks using an embedded browser
EP3877875B1 (en) Systems and methods for secure saas redirection from native applications
US11388258B2 (en) Systems and methods for managing downloads from an embedded browser
CN112997153B (zh) 用于经由嵌入式浏览器跨不同的saas应用的一致的执行策略的***和方法
EP3853755B1 (en) Systems and methods for integrating html based application with embedded browser
CN112313652A (zh) 用于经由嵌入式浏览器提供数据丢失防护的***和方法
CN112930670A (zh) 用于网络应用的集成服务发现的***和方法
CN112913213A (zh) 用于为经由客户机应用的嵌入式浏览器访问的网络应用呈现附加内容的***和方法
CN112956171B (zh) 用于维持和传输saas会话状态的***和方法
CN113316924B (zh) 用于saas应用的推送通知服务的***和方法
CN113168420B (zh) 用于使用嵌入式浏览器在远程应用内呈现Web链接的***和方法
CN112805982B (zh) 用于跨域应用的应用脚本
US20200099738A1 (en) Systems and methods for bridge protocol between diverse applications
CN112292669A (zh) 用于嵌入式浏览器的***和方法
CN112868212A (zh) 用于html应用的改进的远程显示协议的***和方法
CN113302608B (zh) 用于saas应用的智能感知的***和方法
CN113260980B (zh) 用于实时saas对象的***和方法
AU2019280105B1 (en) Systems and methods for intercepting and enhancing SaaS application calls via embedded browser
CN113260978A (zh) 用于经由前缀高速缓存进行等待时间掩蔽的***和方法
CN113272788A (zh) 用于saas的实时图块的***和方法
CN113039769A (zh) 用于经由嵌入式浏览器深度链接saas应用的***和方法

Legal Events

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