CN113260980B - 用于实时saas对象的***和方法 - Google Patents
用于实时saas对象的***和方法 Download PDFInfo
- Publication number
- CN113260980B CN113260980B CN201980086157.1A CN201980086157A CN113260980B CN 113260980 B CN113260980 B CN 113260980B CN 201980086157 A CN201980086157 A CN 201980086157A CN 113260980 B CN113260980 B CN 113260980B
- Authority
- CN
- China
- Prior art keywords
- application
- client device
- client
- web
- web 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开所描述的实施例包括用于生成和显示用于网络应用的实时对象的***和方法。可以从由一个或多个服务器服务和/或托管在一个或多个服务器上的应用(app),诸如web应用和软件即服务(SaaS)应用创建实时对象,并与一个或多个接收者共享。对象可以像正常的网络应用一样被加载或访问,并且接收者可以在完全访问策略控制下看到向实时对象创建者显示的内容的最新或“实时”版本,包括创建者的特定于用户或装置的数据,而无需访问实时对象创建者的凭证。
Description
相关申请的交叉引用
本申请要求于2018年11月12日提交的名称为“SYSTEMS AND METHODS FOR LIVESAAS OBJECTS”的美国专利申请No.16/188,176的优先权和利益,其内容出于所有目的通过引用全部合并于此。
技术领域
本申请总地涉及网络或软件即服务(SaaS)应用。
背景技术
静态文档中的信息可以容易地在用户和装置之间共享,因为信息是固定且不变的。然而,在动态文档或由网络应用或软件即服务(SaaS)应用提供的文档中,信息可以是动态更新的或“实时”的。通过打印副本或将文档以固定格式(诸如便携式文档格式(PDF)文档)发送给接收者来共享这些动态文档,将导致接收者接收到可能已过时或陈旧的数据。
发明内容
可以从由一个或多个服务器服务和/或托管在一个或多个服务器上的应用(app),诸如web应用和软件即服务(SaaS)应用(以下有时通常称为网络应用)创建“实时”对象,并与一个或多个接收者共享。对象可以像正常的网络应用一样被加载或访问,并且接收者可以在完全访问策略控制下看到向实时对象创建者显示的内容的最新或“实时”版本,包括创建者的特定于用户或装置的数据,而无需访问实时对象创建者的凭证。
本公开涉及嵌入式浏览器的***和方法。在客户机装置上执行的客户机应用可以允许用户访问网络应用。嵌入或集成到客户机应用的浏览器可以向用户呈现经由客户机应用访问或请求的网络应用,并且可以启用用户与网络应用之间的交互性。该浏览器有时被称为嵌入式浏览器,而具有嵌入式浏览器的客户机应用(CEB)有时被称为工作空间应用。客户机应用可以建立到一个或多个服务器的安全连接,以提供应用会话,以便用户使用客户机装置和嵌入式浏览器访问网络应用。嵌入式浏览器可以与客户机应用集成,以确保与网络应用相关的流量通过客户机应用路由和/或在客户机应用中处理,这可以为客户机应用提供流量的实时可见性(例如,当通过客户机应用进行解密时)、以及用户交互和行为。当经由(由客户机应用和嵌入式浏览器共享的)用户界面请求网络应用,以及通过嵌入式浏览器在同一用户界面内呈现时,嵌入式浏览器可以为用户提供无缝体验。
在一个方面,本公开涉及一种用于提供用于生成和提供实时对象的方法的方法。该方法包括由应用服务器从包括由第一客户机装置执行的第一嵌入式浏览器的第一客户机应用接收与第二客户机装置共享网络应用的一部分的请求。该方法还包括生成与第一客户机装置的认证凭证相关联的由网络应用的一部分组成的所包含的应用对象,所包含的应用对象被提供给第二客户机装置。该方法还包括从包括由第二客户机装置执行的第二嵌入式浏览器的第二客户机应用接收所包含的应用对象。该方法还包括由应用服务器响应于所包含的应用对象与第一客户机装置的认证凭证之间的关联,使用第一客户机装置的认证凭证来执行网络应用的一部分。该方法还包括由应用服务器将网络应用的一部分的输出提供给第二客户机应用的第二嵌入式浏览器以进行显示。
在一些实施方式中,网络应用的一部分包括web应用的文档对象模型(DOM)树的子元素。在一些实施方式中,网络应用的一部分包括一个或多个元素被移除的web应用。在一些实施方式中,来自第一客户机应用的请求包括对网络应用的一部分的选择。在一些实施方式中,所包含的应用对象包括第一客户机装置的用户的标识和网络应用的一部分的标识。在一些实施方式中,网络应用的一部分的输出由第一客户机装置的用户提供的密码来保护。在一些实施方式中,网络应用的一部分的输出包括网络应用的一部分的当前信息。在一些实施方式中,第二客户机装置经由第一客户机应用从第一客户机装置或从应用服务器接收所包含的应用对象。在一些实施方式中,网络应用包括文档对象模型(DOM)树,并且生成所包含的应用对象包括:识别DOM树的与网络应用的一部分相对应的一部分;以及提取DOM树的所识别的部分,以生成基本上由所提取的部分组成的第二网络应用。在一些实施方式中,从第二客户机应用接收所包含的应用对象包括接收第二客户机装置的认证凭证;以及使用第一客户机装置的认证凭证来执行网络应用的一部分还包括:响应于确定应用于第二客户机装置的认证凭证的安全策略不阻止第二客户机装置访问与第一客户机装置相关联的网络应用的数据,访问该数据。
在另一方面,本公开涉及一种用于生成和提供实时对象的***。该***包括应用服务器,该应用服务器包括存储网络应用的存储器装置和执行实时对象生成器的处理器。实时对象生成器被配置为从包括由第一客户机装置执行的第一嵌入式浏览器的第一客户机应用接收与第二客户机装置共享网络应用的一部分的请求;以及生成与第一客户机装置的认证凭证相关联的由网络应用的一部分组成的所包含的应用对象,所包含的应用对象被提供给第二客户机装置。应用服务器被配置为:从包括由第二客户机装置执行的第二嵌入式浏览器的第二客户机应用接收所包含的应用对象;响应于所包含的应用对象与第一客户机装置的认证凭证之间的关联,使用第一客户机装置的认证凭证来执行网络应用的一部分;以及将网络应用的一部分的输出提供给第二客户机应用的第二嵌入式浏览器以进行显示。
在一些实施方式中,网络应用的一部分包括web应用的文档对象模型(DOM)树的子元素。在一些实施方式中,网络应用的一部分包括一个或多个元素被移除的web应用。在一些实施方式中,来自第一客户机应用的请求包括对网络应用的一部分的选择。在一些实施方式中,所包含的应用对象包括第一客户机装置的用户的标识和网络应用的一部分的标识。在一些实施方式中,网络应用的一部分的输出由第一客户机装置的用户提供的密码来保护。在一些实施方式中,网络应用的一部分的输出包括网络应用的一部分的当前信息。在一些实施方式中,第二客户机装置经由第一客户机应用从第一客户机装置或从应用服务器接收所包含的应用对象。
在一些实施方式中,网络应用包括文档对象模型(DOM)树,并且实时对象生成器还被配置为:识别DOM树的与网络应用的一部分相对应的一部分;以及提取DOM树的所识别的部分,以生成基本上由所提取的部分组成的第二网络应用。
在一些实施方式中,应用服务器还被配置为接收第二客户机装置的认证凭证,以及响应于确定应用于第二客户机装置的认证凭证的安全策略不阻止第二客户机装置访问与第一客户机装置相关联的网络应用的数据,访问该数据。
附图说明
通过参考以下结合附图的描述,本解决方案的前述和其他目的、方面、特征和优点将变得更加明显和更好理解,其中:
图1是计算装置的实施例的框图;
图2是用于访问资源的云服务的说明性实施例的框图;
图3是企业移动性管理***的示例实施例的框图;
图4是嵌入式浏览器的***400的框图;
图5是用于使用安全浏览器的***的示例实施例的框图;
图6是用于使用安全浏览器插件的浏览器重定向的实施方式的示例表示;
图7是使用安全浏览器的***的示例实施例的框图;
图8是用于使用本地嵌入式浏览器和托管安全浏览器的***的示例实施例的框图;
图9是用于使用本地嵌入式浏览器和托管安全浏览器的示例处理流程;
图10是用于管理用户对网页的访问的***的示例实施例;
图11A是网络应用和静态格式的信息的共享的示例实施例的图示;
图11B是网络应用和经由实时对象的动态格式的信息的共享的示例实施例的图示;
图11C是网络应用和利用编辑和缩小的经由实时对象的动态格式的信息的共享的示例实施例的另一图示;
图12是用于提供和利用用于网络应用的实时对象的***的示例实施例的框图;
图13是生成用于网络应用的实时对象的一个实施方式的图示;以及
图14是用于生成和提供用于网络应用的实时对象的方法的实施方式的流程图。
根据下文结合附图时阐述的详细描述,本解决方案的特征和优点将变得更加明显,在附图中,相似的附图标记始终标识相应的元件。在附图中,相似的附图标记通常表示相同、功能相似和/或结构相似的元件。
具体实施方式
为了阅读以下各个实施例的描述,本说明书各部分的以下描述及其各自的内容可能是有帮助的:
A部分描述了一种计算环境,该计算环境可用于实践本文描述的实施例。
B部分描述了用于嵌入式浏览器的***和方法。
C部分描述了用于生成和提供用于网络应用的实时对象的***和方法。
A.计算环境
在讨论本文B部分中详细的***和方法的实施例的细节之前,讨论这样的实施例可以被部署的计算环境可能是有帮助的。
如图1所示,计算机101可以包括一个或多个处理器103、易失性存储器122(例如,随机存取存储器(RAM))、非易失性存储器128(例如,一个或多个硬盘驱动器(HDD)或其他磁性或光学存储介质、一个或多个固态驱动器(SSD)(例如闪存驱动器或其他固态存储介质)、一个或多个混合磁性和固态驱动器、和/或一个或多个虚拟存储卷(例如云存储)、或这种物理存储卷和虚拟存储卷或其阵列的组合)、用户界面(UI)123、一个或多个通信接口118和通信总线150。用户界面123可包括图形用户界面(GUI)124(例如,触摸屏、显示器等)和一个或多个输入/输出(I/O)装置126(例如,鼠标、键盘、麦克风、一个或多个扬声器、一个或多个照相机、一个或多个生物特征扫描仪、一个或多个环境传感器、一个或多个加速度计等)。非易失性存储器128存储操作***115、一个或多个应用116和数据117,从而例如由处理器103从易失性存储器122中执行操作***115和/或应用116的计算机指令。在一些实施例中,易失性存储器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以及客户机和服务器计算机的实施和操作的其他细节,可以参见2017年1月3日授予佛罗里达州劳德代尔堡的Citrix Systems,Inc.的美国专利No.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可以提供用于例如控制和分析的选择性应用相关的信息上的附加服务。例如,分析代理或应用编程接口(API)可以被嵌入在CEB中以提供或执行附加服务。
CEB(有时被称为工作空间应用或接收器)可以与一个或多个网关服务、中间装置和/或网络服务器(有时统称为云服务或思杰云(Citrix Cloud))进行交互操作,以提供对网络应用的访问。与云服务的实施例的操作相关的环境的特征和元件如下所述。
图2示出了用于在访问包括网络应用的资源中使用的云服务的实施例。云服务可以包括企业移动性技术架构200,在一个说明性实施例中,其可以包括访问网关260。例如,该架构可以用于自携装置(BYOD)的环境中。该架构可以使客户机装置202(例如,手机或其它装置)的用户能够从客户机装置202访问企业或个人资源,并且使用客户机装置202以供个人使用。用户可以经由在客户机装置202上执行的客户机应用来访问这种企业资源204或企业服务208。用户可以使用由用户购买的客户机装置202或由企业提供给用户的客户机装置202来访问这种企业资源204或企业服务208。用户可以将客户机装置202仅用于商业用途或用于商业和个人用途。客户机装置可运行iOS操作***和Android操作***等。企业可以选择实施策略来管理客户机装置202。可以通过防火墙或网关来植入策略,使得客户机装置可以被识别、保护或安全验证,为客户机装置提供对企业资源的选择性或完全访问权限。这些策略可以是客户机装置管理策略、移动应用管理策略、移动数据管理策略或客户机装置、应用和数据管理策略的一些组合。通过施加客户机装置管理策略管理的客户机装置202可以被称为注册装置。该客户机装置管理策略可经由例如客户机应用施加。
在一些实施例中,客户机装置的操作***可以被分成受管理分区210和未管理分区212。受管理分区210可以被施加策略以保护在受管理分区中运行的应用和存储在其中的数据。在受管理分区上运行的应用可以是安全应用。在其他实施例中,所有应用可以根据与该应用分开接收的一个或多个策略文件的集合来执行,并且该策略文件定义一个或多个安全参数、特征、资源限制和/或由客户机装置管理***在应用在装置上执行时实施的其他访问控制。通过根据它们各自的策略文件进行操作,可以允许或限制每个应用与一个或多个其他应用和/或资源的通信,从而创建虚拟分区。因此,如本文所使用的,分区可以指存储器的物理分区部分(物理分区)、存储器的逻辑分区部分(逻辑分区)和/或如本文所述由于实施一个或多个策略和/或跨多个app的策略文件而创建的虚拟分区(虚拟分区)。换句话说,通过在受管理app上实施策略,那些app可能会被限制为只能与其他受管理app和受信任的企业资源进行通信,从而创建虚拟分区,未管理app和装置无法访问该虚拟分区。
安全应用可以是电子邮件(email)应用、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位加密之类的非常强加密形式。当从装置管理器224接收到命令时,可以从装置中删除存储在安全数据容器228中的数据。安全应用可以具有双模式选项240。双模式选项240可以向用户呈现在非安全或非管理模式下操作安全应用的选项。在非安全或非管理模式下,安全应用可以访问存储在客户机装置202的非管理分区212上的非安全数据容器242中的数据。存储在非安全数据容器中的数据可以是个人数据244。存储在非安全数据容器242中的数据还可以由在客户机装置202的未管理分区212上运行的非安全应用248访问。当存储在安全数据容器228中的数据被从客户机装置202删除时,存储在非安全数据容器242中的数据可以保持在客户机装置202中。企业可能希望从客户机装置中删除由企业拥有、许可或控制的所选择的或所有的数据、文件和/或应用(企业数据),同时留下或以其它方式保留由用户拥有、许可或控制的个人数据、文件和/或应用(个人数据)。该操作可以称为选择性擦除。利用根据本文所述方面布置的企业和个人数据,企业可以执行选择性擦除。
客户机装置202可以连接到企业处的企业资源204和企业服务208,连接到公共互联网248等。该客户机装置可以通过虚拟专用网络连接来连接到企业资源204和企业服务208。虚拟专用网络连接(也称为微VPN或应用特定的VPN)可以特定于特定应用(例如,如微VPN 250所示)、特定装置、客户机装置上的特定安全区域(例如,如O/S VPN 252所示)等。例如,电话的安全区域中的每个包装应用都可以通过应用特定的VPN访问企业资源,从而可以基于与该应用相关联的属性(可能结合用户或装置属性信息)来授予对VPN的访问权限。虚拟专用网络连接可以承载Microsoft Exchange流量、Microsoft Active Directory流量、超文本传输协议(HTTP)流量、安全超文本传输协议(HTTPS)流量、应用管理流量等。虚拟专用网络连接可以支持并启用单点登录认证过程254。单点登录过程可以允许用户提供一组认证凭证,然后由认证服务258对其进行验证。然后,认证服务258可以向用户授予对多个企业资源204的访问权限,而无需用户向每个单独的企业资源204提供认证凭证。
虚拟专用网络连接可以由访问网关260建立和管理。访问网关260可以包括管理、加速和改善企业资源204到客户机装置202的输送的性能增强特征。访问网关还可以将流量从客户机装置202重新路由到公共互联网248,从而使客户机装置202能够访问在公共互联网248上运行的公共可用和非安全的应用。该客户机装置可以经由传输网络262连接到访问网关。传输网络262可以使用一种或多种传输协议,并且可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、专用网络等。
企业资源204可以包括电子邮件服务器、文件共享服务器、SaaS/Web应用、Web应用服务器、Windows应用服务器等。电子邮件服务器可以包括Exchange服务器、Lotus Notes服务器等。文件共享服务器可以包括ShareFile服务器等。SaaS应用可以包括Salesforce等。Windows应用服务器可以包括为提供旨在在本地Windows操作***上运行的应用等而构建的任何应用服务器。企业资源204可以是基于本地的资源、基于云的资源等。企业资源204可由客户机装置202直接访问或通过访问网关260访问。客户机装置202可以经由传输网络262访问企业资源204。传输网络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可以通过在应用周围提供安全包装为用户提供保护用户选择的应用的能力。然后,可以通过使用应用控制器274将已使用软件开发工具包284包装的应用填充到应用商店278中,使其对客户机装置202可用。
企业移动性技术架构200可以包括管理和分析能力。管理和分析能力可以提供与如何使用资源、使用资源的频率等有关的信息。资源可以包括装置、应用、数据等。如何使用资源可以包括哪些装置下载哪些应用、哪些应用访问哪些数据等。使用资源的频率可以包括应用的下载频率、应用访问特定数据集的次数等。
图3描绘了企业移动性管理***300的说明性实施例。为了简单起见,已省略了以上参考图2已描述的移动性管理***200的一些组件。图3中描绘的***300的架构在许多方面与上面参考图2描述的***200的架构相似,并且可以包括上面未提及的附加特征。
在这种情况下,左侧代表具有客户机代理304的注册客户机装置302,其与网关服务器306交互以访问各种企业资源308和服务309,例如Web或SaaS应用、Exchange、Sharepoint、公钥基础设施(PKI)资源、Kerberos资源、凭证发行服务,如右上方所示。网关服务器306可以包括云服务的特征和功能的实施例,例如访问网关260和应用控制器功能。尽管未具体示出,客户机代理304可以是客户机应用的一部分和/或与客户机应用交互,该客户机应用可以作为企业应用商店(店面)操作以选择和/或下载网络应用。
客户机代理304可以充当托管在企业数据中心中的Windows app/桌面的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提供使到企业资源308的连接性和SSO成为可能的凭证和认证信息。最终,IPC通道312允许应用管理框架314调用由客户机代理304实现的用户界面功能,例如在线和离线认证。
客户机代理304与网关服务器306之间的通信本质上是来自应用管理框架314的管理通道的扩展,该应用管理框架314包装了每个本机受管理的应用310。应用管理框架314从客户机代理304请求策略信息,客户机代理304又从网关服务器306请求策略信息。应用管理框架314请求认证,以及客户机代理304登录到网关服务器306(也被称为NetScaler访问网关)的网关服务部分。客户机代理304还可在网关服务器306上调用支持服务,其可产生输入材料以导出用于本地数据仓库316的加密密钥,或提供客户机凭证,该客户机凭证可使得能够对PKI保护的资源进行直接认证,如下文更充分地解释的。
更详细地,应用管理框架314“包装”每个受管理的应用310。这可以经由显式的构建步骤,或经由后构建处理步骤来合并。在首次启动应用310时,应用管理框架314可以与客户机代理304“配对”,以初始化安全IPC通道并获取该应用的策略。应用管理框架314可以实施在本地应用的策略的相关部分,例如客户机代理登录依赖性和一些包含策略,其限制了本地OS服务可以如何被使用,或者它们如何与应用310交互。
应用管理框架314可以使用客户机代理304通过安全IPC通道312提供的服务来促进认证和内部网络访问。专用和共享数据仓库316(容器)的密钥管理也可以通过受管理的应用310和客户机代理304之间的适当交互来管理。仓库316仅在在线认证之后才可用,或者,如果策略允许,可在离线认证后使其可用。仓库316的首次使用可能需要在线认证,并且在需要再次在线认证之前,离线访问最多可以限制为策略刷新期。
可直接从单个受管理的应用310通过访问网关306网络访问内部资源。应用管理框架314负责代表每个应用310协调网络访问。客户机代理304可以通过提供在在线认证之后获得的合适的时间有限的辅助凭证来促进这些网络连接。可以使用多种模式的网络连接,例如反向web代理连接和端到端VPN样式的隧道318。
邮件和浏览器管理的应用310可以具有特殊状态,并且可以利用对于任意包装的应用通常可能不可用的设施。例如,邮件应用可以使用特殊的后台网络访问机制,该机制允许它在延长的时间内访问Exchange,而无需完整的AG登录。浏览器应用可以使用多个专用数据仓库来隔离不同种类的数据。
该架构可以支持各种其他安全特征的合并。例如,在某些情况下,网关服务器306(包括其网关服务)可能不需要验证活动目录(AD)密码。企业可以自行决定是否将AD密码用作某些用户在某些情况下的认证因素。如果用户在线或离线(即,已连接或未连接到网络),则可以使用不同的认证方法。
逐步认证是一种特征,其中网关服务器306可以识别使用强认证来被允许访问更多敏感数据的受管理的本机应用310,并确保仅在执行适当的认证之后才允许访问这些应用,即使这意味着在先前较弱级别的登录之后,要求用户重新认证。
该解决方案的另一安全特征是对客户机装置302上的数据仓库316(容器)的加密。仓库316可以被加密,使得包括剪贴板/缓存数据、文件、数据库和配置在内的所有装置上的数据都受到保护。对于在线仓库,密钥可以存储在服务器(网关服务器306)上,对于离线仓库,密钥的本地副本可以通过用户密码或生物特征验证来保护。当数据被本地存储在装置302上的安全容器316中时,优选地,利用最低限度的AES 256加密算法。
还可以实现其他安全容器特征。例如,可以包括日志记录特征,其中记录在应用310内部发生的所有安全事件的日志并将其报告给后端。可以支持数据擦除,例如如果应用310检测到篡改,则可以用随机数据覆盖相关联的加密密钥,而不留下在文件***上用户数据被破坏的提示。屏幕截图保护是另一个特征,应用可能会阻止任何数据存储在屏幕截图中。例如,可以将关键窗口的隐藏属性设置为YES。这可能会使得屏幕上当前显示的任何内容都被隐藏,从而产生空白屏幕截图,通常任何内容都将驻留在该屏幕截图上。
诸如通过防止任何数据在应用容器之外本地传输(例如通过将数据复制或发送至外部应用),可以防止本地数据传输。键盘高速缓存特征可操作来禁用敏感文本字段的自动更正功能。SSL凭证验证可能是可操作的,因此应用专门验证服务器SSL凭证,而不是将其存储在密钥链中。可以使用加密密钥生成特征,以便使用用户提供的密码或生物特征数据生成用于在装置上加密数据的密钥(如果需要离线访问)。如果不需要离线访问,可以将它与另一个随机生成的密钥进行异或并存储在服务器侧。密钥导出功能可以操作,使得从用户密码生成的密钥使用KDF(密钥导出功能,尤其是基于密码的密钥导出功能2(PBKDF2)),而不是为其创建密码散列。后者使密钥容易受到暴力破解或字典攻击。
此外,可以在加密方法中使用一个或多个初始化向量。初始化向量可以使得同一加密数据的多个副本产生不同的密文输出,从而防止重放和密码分析攻击。这也可以防止攻击者即使使用被盗的加密密钥也无法解密任何数据。此外,可以使用认证然后解密,其中仅在用户已经在应用内进行认证之后才对应用数据进行解密。另一个特征可以涉及在存储器中的敏感数据,仅当需要它时,它可以被保持在存储器中(而不是在磁盘上)。例如,登录凭证可能会在登录后从存储器中擦除,并且Objective-C实例变量中的加密密钥和其他数据不会被存储,因为它们很容易被引用。而是可以为这些手动分配存储器。
可以经由CEB实现非活动超时,其中,在策略定义的非活动时间段之后,终止用户会话。
可以以其他方式防止来自应用管理框架314的数据泄漏。例如,当将应用310置于后台时,可以在预定的(可配置的)时间段之后清除存储器。当置于后台时,可以对应用的最后显示的屏幕获取截图以加快前台操作进程。屏幕截图可能包含机密数据,因此应被清除。
另一安全特征涉及不使用用于访问一个或多个应用的AD(活动目录)322密码而使用OTP(一次性密码)320。在某些情况下,某些用户不知道(或不被允许知道)其AD密码,因此这些用户可以使用OTP 320进行认证,例如通过使用像SecurID这样的硬件OTP***(OTP也可以由不同的供应商提供,例如Entrust或Gemalto)。在某些情况下,在用户使用用户ID进行认证之后,带有OTP 320的文本将被发送给用户。在某些情况下,只能将其实现为在线使用,提示是单个字段。
对于那些经由企业策略允许离线使用的应用310,可以实现离线密码以用于离线认证。例如,企业可能希望店面以这种方式被访问。在这种情况下,客户机代理304可以要求用户设置定制的离线密码并且不使用AD密码。网关服务器306可以提供策略来控制和执行有关密码的最小长度、字符类型组成和密码年龄的密码标准,例如标准Windows Server密码复杂性要求所描述的,尽管可以修改这些要求。
另一个特征涉及针对特定应用310的客户机侧凭证作为辅助凭证的启用(目的是经由应用管理框架微VPN特征访问PKI保护的web资源)。例如,应用可以利用这样的凭证。在这种情况下,可以支持使用ActiveSync协议的基于凭证的认证,其中来自客户机代理304的凭证可以由网关服务器306检索并在密钥链中使用。每个受管理应用可以具有一个关联的客户机凭证,该凭证由网关服务器306中定义的标签标识。
网关服务器306可以与企业专用web服务进行交互以支持客户机凭证的发行,以允许相关的受管理应用向内部PKI保护的资源进行认证。
客户机代理304和应用管理框架314可以被增强以支持获得和使用客户机凭证以向内部PKI保护的网络资源进行认证。可以支持多于一个凭证,例如以匹配各种级别的安全性和/或分离要求。凭证可由邮件和浏览器管理的应用使用,并最终由任意包装的应用使用(前提是那些应用使用web服务样式的通信模式,其中应用管理框架可以合理地居中调解https请求)。
iOS上的应用管理客户机凭证支持可能依赖于在每个使用时间段的每个受管理应用中的iOS密钥链中导入公钥加密标准(PKCS)12BLOB(二进制大对象)。应用管理框架客户机凭证支持可以使用具有私有内存密钥存储的HTTPS实施方式。客户机凭证可能永远不会存在于iOS密钥链中,也可能不会持久保留,除非可能存在于受到严格保护的“仅在线”数据值中。
也可以通过要求将客户机装置302向企业认证以提供附加的安全性实现相互SSL或TLS,反之亦然。也可以实现用于向网关服务器306进行认证的虚拟智能卡。
有限和完全的Kerberos支持都可以是附加特征。完全支持特征涉及使用AD密码或受信任的客户机凭证对活动目录(AD)322进行完全Kerberos登录,并获得Kerberos服务票证以响应HTTP协商认证挑战的能力。有限的支持特征涉及Citrix访问网关企业版(AGEE)中的约束委派,其中AGEE支持调用Kerberos协议转换,以便它可以响应于HTTP协商认证挑战,而获得和使用Kerberos服务票证(经受约束委派)。该机制在反向web代理(也称为公司虚拟专用网络(CVPN))模式中,以及在VPN和微VPN模式中http(但不是https)连接被代理时起作用。
另一特征涉及应用容器锁定和擦除,其可以在检测到越狱或获取超级权限时自动进行,并且作为来自管理控制台的推送命令而进行,并且即使在应用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。
在一个或多个实施例中,上述元件或实体中的每一个以硬件、或硬件和软件的组合实现。***400的每个组件可以使用以上结合图1详细描述的硬件或硬件或软件的组合来实现。例如,这些元件或实体的每一个可以包括任何应用、程序、库、脚本、任务、服务、进程或在客户机装置402、至少一个网络装置432和/或在一个或多个服务器430的硬件上执行的任何类型和形式的可执行指令。在一个或多个实施例中,硬件包括诸如一个或多个处理器的电路。例如,至少一个网络装置432和/或一个或多个服务器430可以包括以上结合至少例如图1描述的计算装置的任何元件。
客户机装置402可以包括以上结合至少例如图1描述的计算装置的任何实施例。客户机装置402可以包括任何用户装置,诸如台式计算机、膝上型计算机、平板装置、智能电话、或任何其他移动或个人装置。客户机装置402可以包括用户的数字工作空间,该用户的数字工作空间可以包括文件***、高速缓存或存储器(例如,包括电子剪贴板)、容器、应用和/或客户机装置402上的其他资源。数字工作空间可以包括或扩展到客户机装置402可访问的一个或多个网络,诸如内联网和互联网,包括可经由一个或多个网络访问的文件***和/或其他资源。例如,可以通过使用具有嵌入式浏览器410(CEB)的客户机应用404来保护数字工作空间的一部分。数字工作空间的***分可以包括例如文件***、高速缓存或内存(例如,包括电子剪贴板)、应用、容器和/或分配给CEB、和/或由CEB分配给经由CEB访问的网络应用406的其他资源。数字工作空间的***分还可以包括由CEB(经由一个或多个策略)指定的用于包括在数字工作空间的***分的资源(例如,特定的本地应用可以经由策略被指定允许接收从网络应用获得的数据)。
客户机应用404可以包括一个或多个组件,诸如嵌入式浏览器410、网络代理412、云服务代理414(有时称为管理代理)、远程会话代理416(有时称为HDX引擎)和/或安全容器418(有时称为安全高速缓存容器)。例如,一个或多个组件可以作为客户机应用404或CEB的软件构建或发布的一部分进行安装,也可以单独获取或下载并安装/集成到客户机应用404或CEB的现有安装中。例如,客户机装置可以从网络装置432下载或以其他方式接收客户机应用404(或任何组件)。在一些实施例中,客户机装置可以将对客户机应用404的请求发送到网络装置432。例如,客户机装置的用户可以发起客户机应用的请求、下载和/或安装。网络装置432继而可发送客户机应用到客户机装置。在一些实施例中,网络装置432可以将用于客户机应用的设置或安装应用发送到客户机装置。在接收到时,客户机装置可以安装该客户机应用到客户机装置的硬盘上。在一些实施例中,客户机装置可以运行设置应用以打开或解压缩客户机应用的包。在一些实施例中,客户机应用可以是对安装在客户机装置上的另一个应用(例如,网络代理412)的扩展(例如,附加组件(add-on)、内插式附件(add-in)、小应用或插件(plug-in))。客户机装置可以安装客户机应用以与预安装的应用接口或互操作。在一些实施例中,客户机应用可以是独立应用。客户机装置可以安装客户机应用以作为单独的进程执行。
嵌入式浏览器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.0和/或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和/或网络装置、或可以由企业管理的其他服务器)。客户机应用可以访问策略和/或数据以控制和/或管理网络应用(例如,SaaS、web或远程托管的应用)。网络应用的控制和/或管理可以包括网络应用的各个方面的控制和/或管理,例如访问控制、会话输送、可用特征或功能、服务级别、流量管理和监测等等。网络应用可以来自企业的提供者或供应商(例如,salesforce.com、SAP、Microsoft Office 365),来自企业本身或来自另一个实体(例如,Dropbox或Gmail服务)。
例如,云服务代理414可以提供与网络应用的使用和/或访问有关的策略驱动的管理能力和特征。例如,云服务代理414可以包括策略引擎,以应用(例如,从云服务接收到的)一个或多个策略来确定对诸如网络应用的资源的访问控制和/或连接性。例如,当在客户机应用和提供SaaS应用的服务器430之间建立会话时,云服务代理414可以应用一个或多个策略来控制会话的流量级别和/或流量类型(或其他方面),例如来管理SaaS应用的服务级别。可以控制或管理的应用流量的其他方面可以包括:应用于流量的加密级别和/或加密类型、对于用户所允许的交互级别、对网络应用的某些功能(例如打印屏幕、保存、编辑或复制功能)的受限访问、对使用或传输从网络应用获得的数据的限制、限制对两个或更多个网络应用的并发访问、限制对某些文件存储库或其他资源的访问等等。
云服务代理414可传达或馈送信息至云服务408的分析服务424,例如对CEB可见的有关SaaS交互事件的信息。使用CEB的这种配置可以监测或捕获信息以进行分析,而无需在客户机装置和服务器430之间放置内联装置或代理,也无需使用SaaS API网关“带外”方法。在一些实施例中,云服务代理414不在嵌入式浏览器内执行。在这些实施例中,用户可以类似地使用云服务代理414来与访问网关(或CIS)422互操作以访问网络应用。例如,云服务代理414可以向访问网关(或CIS)422注册和/或认证,并且可以从访问网关(或CIS)422获得网络应用的列表。云服务代理414可以包括和/或作为应用商店(或店面)进行操作,以供用户选择和/或下载网络应用。当登录以访问网络应用时,云服务代理414可以从嵌入式浏览器拦截和传送导航命令到网络应用。云服务代理可以使用远程呈现协议将由网络应用生成的输出显示到嵌入式浏览器。例如,云服务代理414可以包括HTML5 web客户机,其允许最终用户访问嵌入式浏览器上的远程桌面和/或应用。
在一些实施例中,云服务代理414为用户和/或客户机装置提供单点登录(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可以指数字工作空间的整个***分,或***分的特定方面。在一些实施例中,安全容器418对应于安全高速缓存(例如,电子或虚拟剪贴板),并且可以动态地合并用户的每个客户机装置的本地高速缓存的一部分,和/或受保护或安全(例如,加密)的用户的基于云的高速缓存。安全容器可以定义文件***的一部分,和/或描绘分配给CEB和/或经由CEB访问的网络应用的资源。安全容器可以包括例如以上结合图2讨论的安全数据容器228的元件。CEB可以被配置为(例如,经由策略)限制、禁止或禁用识别为在安全容器内的资源和/或数据上的某些动作或活动。安全容器可以被定义以指定安全容器内的资源和/或数据对于误用、滥用和/或泄漏进行监测。
在某些实施例中,安全容器与实现各种企业安全特征的安全浏览器(例如,嵌入式浏览器410或安全浏览器420)的使用有关或涉及其使用。被配置为在安全浏览器内运行的网络应用(或由安全浏览器访问的网页)可以有效地继承由安全浏览器实现的安全机制。这些网络应用可以被视为包含在安全容器内。使用这种安全浏览器可以使企业实施内容过滤策略,例如,其中员工被阻止从其客户机装置访问特定网站。例如,可以使用安全浏览器来使客户机装置用户无需VPN即可访问公司内部网络。
在一些实施例中,安全容器可以支持用于保护企业资源的各种类型的补救措施。一种这样的补救措施是锁住客户机装置、或客户机装置上存储要保护的数据的安全容器,以使得客户机装置或安全容器只能用例如管理员提供的有效密码来解锁。在一些实施例中,这些和其他类型的补救措施可以基于在客户机装置上检测到的条件而自动调用(例如,经由策略的应用),或者可以由管理员远程启动。
在一些实施例中,安全容器可以包括用于文档的安全文档容器。文档可以包括任何计算机可读文件,其包括文本、音频、视频和/或其他类型的信息或媒体。文档可以包括这些媒体类型中的任何单独一个或组合。如本文所解释的,安全容器可以帮助防止企业信息向客户机装置的不同应用和组件以及向其他装置传播。企业***(可以部分或全部在云网络内)可以将文档传输到各种装置,这些装置可以被存储在安全容器中。安全容器可以防止客户机装置的未授权的应用和其他组件访问安全容器内的信息。对于允许用户使用自己的客户机装置访问、存储和使用企业数据的企业,在客户机装置上提供安全容器有助于保护企业数据。例如,在客户机装置上提供安全容器可以在每个客户机装置上的一个位置集中企业数据,并且可以促进在需要时,从每个客户机装置对企业数据的选择性的或完全的删除。
安全容器可以包括实现存储文档和/或其他类型的文件的文件***的应用。文件***可以包括客户机装置的计算机可读存储器的一部分。文件***可以在逻辑上与客户机装置的计算机可读存储器的其他部分分离。以这种方式,例如,企业数据可以被存储在安全容器中,并且私有数据可以被存储在客户机装置的计算机可读存储器的单独部分中。该安全容器可以允许CEB、经由CEB访问的网络应用、本地安装的应用和/或客户机装置的其他组件从文件***中读取、写入和/或删除信息(如果被授权这样做)。从安全容器删除数据可以包括:删除存储在安全容器中的实际数据,删除指向存储在安全容器中的数据的指针,删除用于解密存储在安全容器中的数据的加密密钥,等等。该安全容器可以由例如客户机应用、管理员或客户机装置制造商安装。安全容器可以使得删除存储在文件***中的部分或全部企业数据,而无需修改存储在安全容器外部的客户机装置上的私有数据。文件***可以促进从文件***中选择性或完全地删除数据。例如,企业***的授权组件可以基于例如编码规则从文件***中删除数据。在一些实施例中,客户机应用可以响应于从企业***接收删除命令,从文件***中删除数据。
安全容器可以包括访问管理器,该访问管理器管理客户机装置的应用和其他组件对文件***的访问。可以基于在文档和/或在文件***中由客户机应用维护的文档访问策略(例如,编码规则),管理对文件***的访问。文档访问策略可以基于以下限制对文件***的访问:(1)客户机装置的哪个应用或其他组件正在请求访问,(2)正在请求哪些文档,(3)时间或日期,(4)客户机装置的地理位置,(5)请求的应用或其他组件是否提供了正确的证书或凭证,(6)客户机装置的用户是否提供正确的凭证,(7)其他条件,或它们的任何组合。用户的凭证可以包括例如密码、安全性问题(例如,您的高中的吉祥物是什么?)的一个或多个答案、生物特征信息(例如,指纹扫描、眼球扫描)等。因此,通过使用访问管理器,可以将安全容器配置为仅由被授权访问安全容器的应用访问。作为一个示例,访问管理器可以使安装在客户机装置上的企业应用能够访问存储在安全容器中的数据,并防止非企业应用访问存储在安全容器中的数据。
对文档访问的时间和地理限制可能是有用的。例如,管理员可以部署文档访问策略,该文档访问策略将文档(存储在安全容器中)的可用性限制到指定的时间窗口和/或客户机装置在其中必须驻留才能访问文档的地理区域(例如,由GPS芯片确定)。此外,文档访问策略可以指示安全容器或客户机应用从安全容器中删除文档,或者在指定的时间段到期时或在客户机装置被带到定义的地理区域之外的情况下,使文档不可用。
一些文档可以具有禁止该文档在安全容器内被保存的访问策略。在这样的实施例中,仅当用户例如经由云服务登录或认证时,文档才可用于在客户机装置上查看。
访问管理器还可以被配置为在远程装置(例如,企业资源或其他企业服务器)和安全容器之间实施某些连接模式。例如,访问管理器可以要求由安全容器从远程装置接收的文档和/或从安全容器发送到远程装置的文档例如通过安全隧道/连接进行传输。访问管理器可以要求对发送到安全容器和从安全容器发送的所有文档进行加密。该客户机应用或访问管理器可以被配置为加密从安全容器发送的文档以及解密发送到安全容器的文档。安全容器中的文档也可以加密形式存储。
安全容器可以被配置为防止客户机装置或其他装置的未授权应用或组件使用文档或文档包括的数据或安全容器。例如,可以对有权从安全容器访问文档的客户机装置应用进行编程,以防止用户复制文档数据并将其粘贴到另一个文件或应用界面中,或者在本地在安全容器之外将文档或文档数据保存为新文件。类似地,安全容器可以包括文档查看器和/或编辑器,其不允许这样的复制/粘贴和本地保存操作。此外,可以将访问管理器配置为防止这种复制/粘贴和本地保存操作。此外,安全容器和被编程并授权从安全容器访问文档的应用可以被配置为防止用户将这种文档附加到电子邮件或其他形式的通信中。
一个或多个应用(例如,安装在客户机装置上的应用,和/或经由CEB访问的网络应用)可以被编程或控制(例如,经由基于策略的实施)以将企业相关的数据仅写入安全容器中。例如,可以为应用的源代码提供安全容器的资源名称。类似地,远程应用(例如,在除客户机装置以外的装置上执行)可以被配置为将数据或文档仅发送到安全容器(而不是客户机装置的其他组件或存储器位置)。将数据存储到安全容器可以自动地进行,例如,在应用、客户机应用、和/或安全浏览器的控制下。可以对客户机应用进行编程,以对存储在安全容器中或将要存储在安全容器中的文档进行加密或解密。在某些实施例中,安全容器只能由这种应用(在客户机装置或远程装置上)使用:被编程为识别和使用安全容器的应用,并且该应用具有授权这样做。
网络应用406可以包括批准的网络应用426和未批准的网络应用428。通过非限制性示例的方式,批准的网络应用426可以包括来自Workday、Salesforce、Office 365、SAP等的网络应用,而未批准的网络应用426可以包括来自Dropbox、Gmail等的网络应用。例如,图4示出了经由CEB访问批准的应用426的情况。在操作(1)中,安装在客户机装置402上的客户机应用404的用户实例可以向云服务408的访问网关422注册或认证。例如,用户可以向客户机装置402认证该用户,并登录到客户机装置402。客户机应用可以自动执行或由用户激活。在一些实施例中,用户可以在客户机应用签到(例如,通过向客户机应用认证用户)。响应于登录或签到,客户机应用可以向访问网关422注册或认证用户和/或客户机应用。
在操作(2)中,响应于注册或认证,访问网关422可以识别或检索可用的或预分配给用户的列举的网络应用的列表,并且可以将该列表提供给客户机应用。例如,响应于注册或认证,访问网关可以识别用户和/或检索用户的用户简档。根据身份和/或用户简档,访问网关可以确定列表(例如,检索与用户简档和/或用户身份匹配的网络应用的存储的列表)。该列表可以对应于为用户批准的网络应用的列表。访问网关可以将列表发送到客户机应用或嵌入式浏览器,该列表可以经由客户机应用或嵌入式浏览器呈现给用户(例如,在店面用户界面中)以供选择。
在操作(3)中,用户可以通过从呈现给用户的网络应用列表中进行选择,来启动与批准的网络应用(例如SaaS应用)的连接。例如,用户可以点击经由客户机应用或者嵌入式浏览器显示的批准的网络应用的图标或其他表示。该用户动作可以触发CEB向配置网络应用的服务器发送连接或访问请求。该请求可以包括对服务器(例如,SaaS提供者)的请求,以与访问网关进行通信以认证用户。例如,服务器可以向访问网关发送请求以认证用户。
在操作(4)中,访问网关可以与服务器执行SSO,以认证用户。例如,响应于服务器对用户进行认证的请求,访问网关可以向用于SSO的服务器430提供用户的凭证,以访问所选择的网络应用和/或其他批准的网络应用。在操作(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的一个或多个特征。所托管的浏览器可以包括CEB的嵌入式浏览器,其在网络装置432上托管,而不是在客户机装置上。所托管的浏览器可以包括托管在网络装置432上的CEB的托管虚拟化版本的嵌入式浏览器。与安装在客户机装置上的CEB类似,流量通过网络装置上托管的CEB路由,这允许管理员具有对通过CEB的流量的可视性,并保留对安全策略控制、分析和/或性能管理的控制。
图6示出了用于使用安全浏览器插件的浏览器重定向的示例实现。在简要概述中,该实施方式包括具有在客户机装置上操作的安全浏览器插件516的web浏览器512、以及驻留在网络装置上的托管的web浏览器(或安全浏览器)522。web浏览器512可以对应于标准浏览器,而不是如上面结合例如图4所讨论的嵌入式浏览器。安全浏览器插件516可在第一网络510内执行并访问在第二网络530中的服务器430。第一网络510和第二网络530是出于说明的目的,并且可以用更少或更多的计算机网络代替。安全浏览器插件516可以安装在标准浏览器512上。插件可以包括一个或多个组件。一个这样的组件可以包括ActiveX控件或Java控件或能够加载到标准浏览器中并在其中执行的任何其他类型和/或形式的可执行指令。例如,标准浏览器可以在标准浏览器的存储空间或上下文中,加载并运行安全浏览器插件516的Active X控件。在一些实施例中,安全浏览器插件可以作为扩展安装在标准浏览器上,并且用户可以选择启用或禁用该插件或扩展。安全浏览器插件可以进行与安全浏览器420通信和/或操作,以保护、使用和/或访问数字工作空间的***分内的资源。
通过使用在标准浏览器512内操作的安全浏览器插件516,经由标准浏览器512访问的网络应用可以被重定向到托管的安全浏览器。例如,安全浏览器插件516可以被实现和/或设计为检测网络应用正在经由标准浏览器访问,并且可以定向/重定向与网络应用相关联的来自客户机装置的流量至托管的安全浏览器。托管的安全浏览器可以将从网络应用接收的流量定向到安全浏览器插件516和/或客户机代理514,以例如进行呈现和/或显示。客户机代理514可以在web浏览器512和/或安全浏览器插件内执行,并且可以包括以上结合至少例如图4讨论的客户机应用404的特定元件或特征。例如,客户机代理514可以包括用于在web浏览器512处呈现网络应用的远程会话代理416。在一些实施例中,在托管的安全浏览器处呈现网络应用,并且所呈现的数据被传送或镜像到安全浏览器插件516和/或客户机代理514以进行处理和/或显示。
通过示例的方式,用户可能正在远程工作并且可能想要访问网络应用,该网络应用是在安全的企业网络的内部,而用户正在连接到不安全网络的计算装置上工作。在这种情况下,用户可以利用在第一网络510中执行的标准浏览器512,其中第一网络510可以包括不安全的网络。用户想要访问的服务器430可能在第二网络530上,其中第二网络530包含例如安全的企业网络。用户可能无法通过点击安全网站532的内部统一记录定位符(URL)从不安全的第一网络510访问服务器430。即,用户在从外部不安全网络510执行标准浏览器512时,可能需要利用不同的URL(例如,外部URL)。外部URL可以被定向到,或者可以寻址被配置成在第二网络530(例如,安全网络)内访问服务器430的一个或多个托管的web浏览器522。为了保持安全访问,安全浏览器插件516可以将内部URL重定向到托管的安全浏览器的外部URL。
安全浏览器插件516能够实现网络检测,以便识别是否将内部URL重定向到外部URL。标准浏览器512可以接收包括在安全网络内执行的网站的内部URL的请求。例如,标准浏览器512可以接收响应于用户在标准浏览器中输入web网址(例如,用于安全网站532)的请求。安全浏览器插件516可以将用户web浏览器应用512从内部的URL重定向到托管的web浏览器应用的外部的URL。例如,安全浏览器插件516可以用在安全网络530内执行的托管的web浏览器应用522的外部URL替换内部URL。
安全浏览器插件516可以允许将客户机代理514连接到托管的web浏览器应用522。客户机代理514可以包括插件组件,例如ActiveX控件或Java控件或能够加载到标准浏览器512中并在其中执行的任何其他类型和/或形式的可执行指令。例如,客户机代理514可以包括由标准浏览器512加载和运行的ActiveX控件,诸如在用户web浏览器应用512的存储空间或上下文中。客户机代理514可以被预配置为在用户web浏览器应用512内呈现托管的web浏览器应用522的内容。
客户机代理514可以连接到服务器或云/托管的web浏览器服务520,其使用瘦客户机或远程显示协议来呈现由在服务520上执行的托管的web浏览器应用522生成的显示输出。瘦客户机或远程显示协议可以是以下协议的非穷举列表中的任何一个:由佛罗里达州劳德代尔的思杰***公司开发的独立计算架构(ICA)协议;或由华盛顿州雷德蒙德的微软公司制造的远程桌面协议(RDP)。
托管的web浏览器应用522可以在全屏模式中导航到所请求的网络应用,并且可以呈现所请求的网络应用。客户机代理514可以例如基于正在以全屏模式显示的内容以无缝和透明的方式呈现web浏览器应用512上的网络应用的内容或重现,使得看起来该内容正被标准浏览器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重定向消息至标准浏览器。URL重定向消息可以类似于图5中操作(3)中从服务器发送到标准浏览器的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客户机重定向到网关服务以进行认证。在操作905中,网关服务可以确定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。
驱动所有流量通过CEB,然后允许对访问基于SaaS和Web的***的内容进行附加控制。SaaS和Web流量的数据丢失防护(DLP)可以通过CEB app来应用,其特征包括将对其他CEB访问应用或IT管理的装置的复制和粘贴控制。通过使内容只能在IT控制下下载到指定的文件服务器或服务,也可以执行DLP。
现在参考图10,描绘了用于管理用户对网页的访问的***的示例实施例。某些网页(或网站)被认为是安全的,而另一些网页则可能是可疑的。用户可以通过标准浏览器经由相应的URL访问网页。例如,用户可以点击与URL相对应的链接,该链接可以包括在使用邮件应用正在查看的电子邮件中。访问网关(SWG)可以拦截通过点击链接而生成的访问请求,并且可以确定相应的URL是安全的还是可疑的。如果URL被认为是安全的,则访问网关可以允许请求继续进行至相应的网站或web服务器。如果该URL是可疑的,则访问网关可以重定向请求经由托管的安全浏览器处理。安全浏览器可以请求访问和访问网页(代表标准浏览器),并且可以允许将网页信息传送到标准浏览器,类似于经由浏览器重定向对网络应用的处理,如结合至少图7和5所讨论的。
C.用于生成和提供用于网络应用的实时对象的***和方法
本公开涉及用于生成和提供用于网络应用的实时对象的***和方法。静态文档中的信息可以容易地在用户和装置之间共享,因为信息是固定且不变的。然而,在动态文档或由网络应用或软件即服务(SaaS)应用提供的文档中,信息可以是动态更新的或“实时”的。通过打印副本或将文档以固定格式(诸如便携式文档格式(PDF)文档)发送给接收者来共享这些动态文档,将导致接收者接收到可能已过时或陈旧的数据。
例如,图11A是网络应用1100和静态格式的信息1102的共享的示例实施例的图示。在所示的示例实施例中,第一用户可以访问诸如旅行预订应用的web应用以创建旅行路线。web应用可以提供用于生成和访问实时信息的各种功能。例如,在所示的实施例中,web应用可以用实时预订状态数据来动态地更新路线。
为了共享web应用中的信息,用户可以生成信息的静态版本1102,其可以包括文本文档、PDF文档、屏幕截图或类似的图像或其他数据,可以将相关信息复制并粘贴到电子邮件中,或可以打印物理副本。用户可以与他人共享静态版本;然而,如果基础“实时”信息改变(例如,航班延误或取消,改变了预订等),则静态版本将无法访问新信息并且不会进行更新。原始用户必须记住要重新生成信息的静态版本并手动地更新接收者。
这种web应用和共享数据的其他示例可以包括销售编号、联系人列表、财务报告或其他这种信息。与路线示例一样,如果基础实时数据改变,则原始用户可能需要手动更新数据的静态版本。这对于用户而言可能是乏味且耗时的,如果他们不记得向一个或多个接收者提供更新则可能失败,并且可能生成多个模糊的数据集。例如,用户可以生成报告的多个静态版本,这些版本可能随后过时也可能不会过时。尽管接收者可能会寻找报告的“最新”版本,但是可能不容易看出哪个版本是当前版本,或者他们是否甚至拥有当前版本。在版本元数据或其他信息不可用(例如,打印副本)的实施方式中,可能无法知道哪个版本是有效的或当前的。
相反,本文讨论的***和方法提供了“实时”或“实时的”SaaS对象的生成、共享和利用。可以从由一个或多个服务器服务和/或托管在一个或多个服务器上的应用(app),诸如web应用和软件即服务(SaaS)应用(以下有时通常称为网络应用)创建实时对象,并与一个或多个接收者共享。对象可以像正常的网络应用一样被加载或访问,并且接收者可以在完全访问策略控制下看到向实时对象创建者显示的内容的最新或“实时”版本,包括创建者的特定于用户或装置的数据,而无需访问实时对象创建者的凭证。此外,实时对象还可以允许共享不具有固有共享能力的网络应用的数据。例如,仍然可以使用缺少多用户或共享功能的网络应用来生成实时对象,该实时对象可以与其他用户共享。这可以增强这种网络应用的功能,而无需第三方开发者修改其应用。
例如,图11B是网络应用1100'和经由实时对象1104的动态格式的信息的共享的示例实施例的图示。第一用户可以选择网络应用的一部分或全部,以从中生成实时对象(例如,虚线所示的选择1106)。第一用户的装置上的客户机应用可以提取网络应用的相关部分,包括其对来自数据服务器、内容输送网络或其他数据源的外部数据的引用,并且可以生成包含所选择部分的实时对象1104。可以与第二用户共享实时对象1104,第二用户可以经由第二用户的装置的客户机应用的嵌入式浏览器访问实时对象1104。浏览器可以在呈现期间检索包括实时数据的引用数据,并且可以显示包括实时数据的网络应用的所选择部分。可以由第二用户的嵌入式浏览器检索由第一用户(例如,改变路线或其他这种数据)或由第三方(例如,航班状态信息、销售编号等)对基础数据的更新,以确保实时对象始终提供当前和有效的信息。
在一些实施方式中,实时对象1104可以与第一用户的特定于用户的信息相关联。在图11B所示的示例中,实时对象1104检索并显示第一用户的路线信息。实时对象可以与第一用户的用户标识符、认证令牌或其他凭证相关联,以使得第二用户的装置的嵌入式浏览器可以访问引用数据,就好像该第二用户的装置已通过第一用户的凭证进行了认证一样。在许多实施方式中,实时对象可能受特权限制,不允许编辑与用户相关联的数据,以增强安全性,同时仍提供数据共享功能。此外,在一些实施方式中,第一用户或生成用户可以撤销对实时对象的访问,诸如通过使与实时对象和第一用户的帐户相关联的认证令牌无效或撤销。在这样的实施方式中,当接收者用户尝试访问实时对象并且用户的客户机应用尝试使用保存在实时对象中的认证令牌或凭证检索与第一用户相关联的数据时,应用服务器可以拒绝或阻止对第一用户相关联的数据的访问。
在一些实施方式中,实时对象1104可以包括所包含的SaaS对象(CSO),其可以经由由客户机应用执行的CSO查看器来访问或者可以经由嵌入式浏览器来访问。CSO查看器可以包括用于访问实时对象或CSO、检索包括特定于用户的数据的引用数据、以及呈现或显示引用数据和实时对象的其他元素的应用。可以通过一个或多个安全措施来保护CSO,包括密码保护或要求接收者用户使用认证服务器进行认证以访问CSO(例如,接收解密密钥或其他授权令牌)。
如上所述,第一用户或生成实时对象的用户不需要选择整个web应用以进行共享,而是可以选择仅共享应用的一部分,该过程有时可称为“缩小”。这可以允许用户在共享来自同一网络应用的其他数据的同时将数据的一些部分保持私有。在一个实施方式中,在实时对象的创建期间,可以提取与网络应用的所选择部分相对应的一个或多个文档对象模型(DOM)元素并将其聚合到实时对象内,排除不是所选择部分的一部分的其他DOM元素。
在类似的过程中,用户可能希望以基于DOM元素的提取可能不够充分的方式,将散布有要共享的数据的数据保持私有。在一些实施方式中,用户可能能够从选择部分内选择要被编辑或从实时对象中排除的一个或多个元素。在实时对象的创建期间,客户机应用可以将对已排除或已编辑部分内的数据的引用替换为空引用(例如,使得嵌入式浏览器不检索数据),或者可以从实时对象的DOM树中完全移除所排除的元素。
例如,图11C是网络应用1110和利用编辑和缩小的经由实时对象1112的动态格式的信息的共享的示例实施例的另一图示。如上所述,用户可以选择网络应用的一部分(如虚线1106所示)。在一些实施方式中,用户还可以选择要排除或编辑的元素或数据(例如,阴影框1108)。所产生的实时对象1112可以包括所示的网络应用的选择部分,其中未检索经过编辑或被排除的数据(并且在所示的一些实施方式中,相应的元素被涂黑或以其他方式被遮盖)。在许多实施方式中,可能不检索经过编辑的数据,从而提供安全性和隐私性,同时仍然能够共享网络应用的周围数据。在一个实施方式中,可以提供类似于笔或记号笔的用户界面元素,并且第一用户可以在要编辑的网络应用或实时对象的部分上绘制。在一些实施方式中,可以利用多种“颜色”的笔或多种类型的选择框,每种对应于不同的访问控制策略(例如,编辑、只读、允许编辑等),并且用户可以经由选择或用户界面元素指示将多个策略应用于实时对象。
图12是用于提供和利用用于网络应用的实时对象的***的示例实施例的框图。该***可以包括经由网络1210与一个或多个应用服务器1212和/或一个或多个数据服务器1214通信的一个或多个客户机装置1200A-1200B,通常称为客户机装置1200。客户机装置1200可以执行类似于以上讨论的客户机应用的客户机应用1202,其包括嵌入式浏览器1204(例如,类似于客户机应用404和嵌入式浏览器410),该嵌入式浏览器1204可以呈现经由客户机应用1200访问的网络应用的信息。客户机应用1202可以是本文先前详细描述的客户机应用404的实例。具有嵌入式浏览器1204的客户机应用1202(CEB)可以包括如本文先前所述的CEB 410的任何元素。
在一个或多个实施例中,以硬件或硬件和软件的组合来实现上述元件或实体中的每一个。***的每个组件可以使用以上结合图1详细描述的硬件或硬件或软件的组合来实现。例如,这些元件或实体中的每一个可以包括在客户机装置的硬件上执行的任何应用、程序、库、脚本、任务、服务、进程或任何类型和形式的可执行指令(例如,客户机应用1202)。在一个或多个实施例中,硬件包括诸如一个或多个处理器的电路。
客户机应用1202可以包括实时对象生成器1206。实时对象生成器1206可以包括用于生成实时对象的应用、服务器、服务、守护进程、例程或其他可执行逻辑。在许多实施方式中,实时对象生成器1206可以包括用于解析和/或提取web应用的部分的功能,诸如通过解析DOM树以识别或生成与要用于生成实时对象1208的应用的所选择部分相对应的自包含块。自包含块可以包括生成针对实时对象提取的部分所需的web应用的所有可执行代码。在一些实施方式中,可以提取一部分,然后对其进行修改以包括其他部分(例如,来自父节点)。例如,可以提取第一DOM元素,并将父DOM元素的部分提取或复制到第一DOM元素中,以使第一DOM元素包括将经由完整DOM树结构继承的所有属性。例如,简要地参考图13,其示出了用于网络应用的实时对象的生成的一个实施方式。如图所示,可以将web应用1300呈现给用户或管理员,并且用户或管理员可以选择web应用的一部分以从其生成实时对象(例如,虚线框)。实时对象生成器1206可以提取web应用1302的源代码的相应部分(例如,虚线框),并且可以为包括所提取部分的实时对象1304生成代码。实时对象生成器1206还可以提取DOM树的父元素的参数或样式,并且可以迭代地在DOM树中搜索所选择的一个或多个元素的每个父元素以识别这样的参数或样式。所提取的样式和参数可以被添加到实时对象1304的单层DOM树内。在其他实施方式中,实时对象1304可以具有更复杂的DOM树。如图所示,可以经由嵌入式浏览器将实时对象源呈现为实时对象1306。
如上所述,为了编辑实时对象的部分,在网络应用的用于创建实时对象的部分内被选择用于编辑或排除的元素可以被替换为实时对象1304中的空元素或者对空数据的引用,可以被替换为涂黑元素(例如,填充有诸如黑色的预定颜色或阴影的表格单元格或其他元素),或以其他方式从实时对象的用户中排除和/或混淆。在利用访问控制策略的一些实施方式中,实时对象可以包括可以经由接收者用户的不同凭证或认证令牌解锁的多个部分,具有第一认证令牌的第一接收者用户可访问第一部分;具有第二认证令牌的第二接收者用户可访问第二部分等。根据所选择的策略,这些部分可以重叠或包括对于任何认证用户可访问的共享部分。
返回图12,如上所述,实时对象1208可以包括可执行代码,该可执行代码用于生成web应用的一部分并且用于访问web应用的该部分的嵌入式数据(包括在必要时执行认证例程,诸如将先前获得的认证令牌提供到服务器)。可以以包括HTML、Javascript或其他格式的任何合适的格式对实时对象1208进行编码。
图14是用于生成和提供用于网络应用的实时对象的方法的实施方式的流程图。在步骤1402,第一客户机装置的客户机应用可以访问由应用服务器提供的网络应用。网络应用可以包括任何类型和形式的应用,并且包括由一个或多个应用服务器和/或一个或多个数据服务器提供的组件或元件,以及客户机装置的本地存储器中的组件。访问应用可以包括下载该应用的一个或多个组件,以及通过客户机应用的嵌入式浏览器呈现该应用。在一些实施方式中,访问应用可以包括执行认证程序,诸如向认证服务器或应用服务器提供包括用户名、账户名、密码、装置标识符或其他这样的标识的凭证,以及接收认证令牌或其他访问通行证。
在步骤1404,客户机应用可以接收对要共享的网络应用的一部分的选择,从该网络应用的一部分应生成实时对象。如上所述,可以经由诸如GUI的用户界面进行选择,该GUI允许用户选择应用的一部分以共享,和/或排除或编辑应用的该部分内的数据以避免共享。在一些实施方式中,可以选择应用的多个部分,并且这样的部分可以是不相交的或不连续的。在一些实施方式中,可以用不同的访问特权来选择不同的部分。
在步骤1406,客户机应用可以提取网络应用的所选择部分内的网络应用的元素。提取网络应用的元素可以包括复制可执行代码的部分,包括脚本、远程程序调用、API或其他元素,以及对远程数据、嵌入式媒体或其他这种数据的引用。
在许多实施方式中,可以在具有多个节点以及节点之间的父子关系层的DOM树中组织网络应用。在许多实施方式中,子节点可以从父节点继承属性。如果具有网络应用的所选择部分的节点是网络应用的所选择部分外部的节点的子节点,则在步骤1408,客户机应用还可以提取父节点的属性以包括在实时对象中。在许多这样的实施方式中,可以不提取在所选择部分外部的父节点的其他子节点。例如,给定所选择部分内的第一子节点和所选择部分外部的第二子节点,以及作为两个子节点的父节点的父节点,客户机应用可以提取第一子节点和父节点的属性,同时从实时对象中排除第二子节点。例如,在其中应用的DOM树内存在多层父子关系的实施方式中,可以迭代地重复步骤1408。
在许多实施方式中,网络应用的所选择部分可以包括特定于用户的数据或引用特定于用户的数据。如果是这样,则客户机应用可以将用户的认证令牌或其他认证标识符与实时对象包括在一起,以使得访问实时对象的另一客户机装置可能能够检索和查看第一客户机装置的特定于用户的数据。如果没有令牌可用,则在步骤1410,客户机应用可以执行认证程序(例如,提供登录提示,与应用服务器或认证服务器通信以检索认证令牌等)。如果令牌可用或响应于认证程序,则在步骤1412,客户机应用可以检索认证令牌,并且在步骤1414,将认证令牌添加到实时对象。在许多实施方式中,认证令牌可以包括字母数字哈希、加密密钥或其他这样的标识符,并且可以不包括第一用户的凭证。这样,可以共享实时对象而不会降低第一用户的安全性或私密性。在一些实施方式中,为了进一步增强安全性,认证令牌可以特定于实时对象而生成,并且与生成实时对象的用户的用户帐户相关联,但是没有访问其他用户数据的许可。因此,当共享时,其他接收者客户机装置可以使用认证令牌来访问与实时对象相关联的数据,但是可能无法访问发起用户的其他数据。所述认证令牌可能到期或被发起用户撤销,从而撤销对由实时对象引用的数据的访问。
在步骤1416,客户机应用可以生成实时对象。该实时对象可以包括网络应用的提取部分以及对用户数据的引用,以及从DOM树中的父元素继承的属性。如上所述,在一些实施方式中,可以对网络应用的提取部分内的数据进行编辑,并且可以移除、替换或以其他方式混淆引用,以使编辑后的数据对于访问实时对象的装置不可用。
可以与其他客户机装置共享实时对象,或者直接地将实时对象的可执行代码从发起装置传输到其他客户机装置,或者间接地由应用服务器将实时对象提供给在由发起装置共享的地址处的其他装置。接收者装置可以像访问任何其他网络应用一样访问实时对象,嵌入式浏览器使用附加的或关联的认证令牌来检索与原始用户而不是接收者装置的用户相关联的数据,如上所述。
因此,本文讨论的***和方法提供了实时对象的生成和共享,可以从由一个或多个服务器服务和/或托管在一个或多个服务器上的应用(app),诸如web应用和软件即服务(SaaS)应用(以下有时通常称为网络应用)创建实时对象,并与一个或多个接收者共享。对象可以像正常的网络应用一样被加载或访问,并且接收者可以在完全访问策略控制下看到向实时对象创建者显示的内容的最新或“实时”版本,包括创建者的特定于用户或装置的数据,而无需访问实时对象创建者的凭证。
应当理解,上述***可以提供那些组件中的任一个或每一个的多个组件,并且这些组件可以在独立的机器上或者在一些实施例中在分布式***中的多个机器上提供。可以通过使用编程和/或工程技术来生产软件、固件、硬件或其任何组合,将上述***和方法实现为方法、设备或制造产品。另外,可以将上述***和方法作为嵌入在一个或多个制造产品之上或之中的一个或多个计算机可读程序来提供。本文所使用的术语“制造产品”旨在包括可从一个或多个计算机可读装置可访问的或嵌入其中的代码或逻辑、固件、可编程逻辑、存储装置(例如EEPROM、ROM、PROM、RAM、SRAM等)、硬件(例如集成电路芯片、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)、电子装置、计算机可读非易失性存储单元(例如CD-ROM、USB闪存、硬盘驱动器等)。可以从文件服务器访问该制造产品,该文件服务器经由网络传输线、无线传输介质、在空间传播的信号、无线电波、红外信号等提供对计算机可读程序的访问。该制造产品可以是闪存卡或磁带。该制造产品包括硬件逻辑以及嵌入在计算机可读介质中的由处理器执行的软件或可编程代码。通常,计算机可读程序可以以任何编程语言(例如LISP、PERL、C、C++、C#、PROLOG)或任何字节代码语言(例如JAVA)实现。软件程序可以作为目标代码存储在一个或多个制造产品之上或之中。
尽管已经描述了方法和***的各种实施例,但是这些实施例是示意性的,并且绝不限制所描述的方法或***的范围。相关领域的技术人员可以在不脱离所描述的方法和***的最广泛范围的情况下,对所描述的方法和***的形式和细节进行改变。因此,本文描述的方法和***的范围不应受到任何示意性实施例的限制,而应根据所附权利要求及其等同物来定义。
Claims (20)
1.一种方法,包括:
由应用服务器从包括由第一客户机装置执行的第一嵌入式浏览器的第一客户机应用接收与第二客户机装置共享网络应用的一部分的请求;
由所述应用服务器生成由所述网络应用的一部分组成并与所述第一客户机装置的认证凭证相关联的所包含的应用对象,所述所包含的应用对象被提供给所述第二客户机装置;
由所述应用服务器随后从包括由所述第二客户机装置执行的第二嵌入式浏览器的第二客户机应用接收所述所包含的应用对象;
由所述应用服务器响应于所述所包含的应用对象与所述第一客户机装置的认证凭证之间的关联,使用所述第一客户机装置的认证凭证来执行所述网络应用的一部分;以及
由所述应用服务器将所述网络应用的一部分的输出提供给所述第二客户机应用的第二嵌入式浏览器以进行显示。
2.根据权利要求1所述的方法,其中,所述网络应用的一部分包括web应用的文档对象模型DOM树的子元素。
3.根据权利要求1所述的方法,其中,所述网络应用的一部分包括一个或多个元素被移除的web应用。
4.根据权利要求1所述的方法,其中,来自所述第一客户机应用的所述请求包括对所述网络应用的一部分的选择。
5.根据权利要求1所述的方法,其中,所述所包含的应用对象包括所述第一客户机装置的用户的标识和所述网络应用的一部分的标识。
6.根据权利要求1所述的方法,其中,所述网络应用的一部分的输出由所述第一客户机装置的用户提供的密码来保护。
7.根据权利要求1所述的方法,其中,所述网络应用的一部分的输出包括所述网络应用的一部分的当前信息。
8.根据权利要求1所述的方法,其中,所述第二客户机装置经由所述第一客户机应用从所述第一客户机装置或从所述应用服务器接收所述所包含的应用对象。
9.根据权利要求1所述的方法,其中,所述网络应用包括文档对象模型DOM树,并且所述方法还包括:
识别所述DOM树的与所述网络应用的一部分相对应的一部分;以及
响应于识别所述部分,提取所述DOM树的与所述网络应用的一部分相对应的一部分,以及
其中,生成所述所包含的应用对象还包括生成由所述DOM树的所提取的部分组成的第二网络应用。
10.根据权利要求1所述的方法,其中,从所述第二客户机应用接收所述所包含的应用对象还包括接收所述第二客户机装置的认证凭证;以及
其中使用所述第一客户机装置的认证凭证来执行所述网络应用的一部分还包括:响应于确定应用于所述第二客户机装置的认证凭证的安全策略不阻止所述第二客户机装置访问与所述第一客户机装置相关联的所述网络应用的数据,访问所述数据。
11.一种***,包括:
应用服务器,其包括存储网络应用的存储器装置和执行共享引擎的处理器;
其中,所述共享引擎被配置为:
从包括由第一客户机装置执行的第一嵌入式浏览器的第一客户机应用接收与第二客户机装置共享所述网络应用的一部分的请求,以及
生成由所述网络应用的一部分组成并与所述第一客户机装置的认证凭证相关联的所包含的应用对象,所述所包含的应用对象被提供给所述第二客户机装置;以及
其中,所述应用服务器被配置为:
随后从包括由所述第二客户机装置执行的第二嵌入式浏览器的第二客户机应用接收所述所包含的应用对象,
响应于所述所包含的应用对象与所述第一客户机装置的认证凭证之间的关联,使用所述第一客户机装置的认证凭证来执行所述网络应用的一部分,以及
将所述网络应用的一部分的输出提供给所述第二客户机应用的第二嵌入式浏览器以进行显示。
12.根据权利要求11所述的***,其中,所述网络应用的一部分包括web应用的文档对象模型DOM树的子元素。
13.根据权利要求11所述的***,其中,所述网络应用的一部分包括一个或多个元素被移除的web应用。
14.根据权利要求11所述的***,其中,来自所述第一客户机应用的所述请求包括对所述网络应用的一部分的选择。
15.根据权利要求11所述的***,其中,所述所包含的应用对象包括所述第一客户机装置的用户的标识和所述网络应用的一部分的标识。
16.根据权利要求11所述的***,其中,所述网络应用的一部分的输出由所述第一客户机装置的用户提供的密码来保护。
17.根据权利要求11所述的***,其中,所述网络应用的一部分的输出包括所述网络应用的一部分的当前信息。
18.根据权利要求11所述的***,其中,所述第二客户机装置经由所述第一客户机应用从所述第一客户机装置或从所述应用服务器接收所述所包含的应用对象。
19.根据权利要求11所述的***,其中,所述网络应用包括文档对象模型DOM树,并且其中,所述共享引擎还被配置为:
识别所述DOM树的与所述网络应用的一部分相对应的一部分;以及
响应于识别所述部分,提取所述DOM树的与所述网络应用的一部分相对应的一部分,以及
生成由所述DOM树的所提取的部分组成的第二网络应用。
20.根据权利要求11所述的***,其中,所述应用服务器还被配置为:
接收所述第二客户机装置的认证凭证,以及
响应于确定应用于所述第二客户机装置的认证凭证的安全策略不阻止所述第二客户机装置访问与所述第一客户机装置相关联的所述网络应用的数据,访问所述数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/188176 | 2018-11-12 | ||
US16/188,176 US11005891B2 (en) | 2018-11-12 | 2018-11-12 | Systems and methods for live SaaS objects |
PCT/US2019/060712 WO2020102073A1 (en) | 2018-11-12 | 2019-11-11 | Systems and methods for live saas objects |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113260980A CN113260980A (zh) | 2021-08-13 |
CN113260980B true CN113260980B (zh) | 2022-06-10 |
Family
ID=69160182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980086157.1A Active CN113260980B (zh) | 2018-11-12 | 2019-11-11 | 用于实时saas对象的***和方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11005891B2 (zh) |
EP (1) | EP3881182A1 (zh) |
JP (1) | JP6998497B1 (zh) |
CN (1) | CN113260980B (zh) |
AU (1) | AU2019381676B2 (zh) |
CA (1) | CA3119447C (zh) |
WO (1) | WO2020102073A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10601675B2 (en) * | 2017-04-26 | 2020-03-24 | Vmware, Inc. | Simplified cloud-based enterprise mobility management provisioning |
US20220294788A1 (en) * | 2021-03-09 | 2022-09-15 | Oracle International Corporation | Customizing authentication and handling pre and post authentication in identity cloud service |
CN114726632B (zh) * | 2022-04-14 | 2024-04-05 | 广州鑫景信息科技服务有限公司 | 一种登录方法、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102316094A (zh) * | 2010-06-30 | 2012-01-11 | 丛林网络公司 | 用于移动设备的具有集成加速的多服务vpn网络客户端 |
CN108200099A (zh) * | 2011-09-29 | 2018-06-22 | 甲骨文国际公司 | 移动应用、身份关系管理 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7856643B2 (en) * | 2004-06-04 | 2010-12-21 | Katonah Holdings, LLC | Apparatus and method for operating a multi-unit storage facility |
US7965997B2 (en) * | 2004-07-26 | 2011-06-21 | At&T Intellectual Property I, L.P. | System and method to support multiple wireless accounts for a given subscriber |
US7546335B2 (en) * | 2004-09-02 | 2009-06-09 | Broadway Technology, Llc | System and method for a data protocol layer and the transfer of data objects using the data protocol layer |
US7970823B2 (en) * | 2004-09-02 | 2011-06-28 | Broadway Technology, Llc | System for sharing data objects among applications |
US8108464B1 (en) * | 2006-03-31 | 2012-01-31 | Google Inc. | Collaborative workflow through messaging conversations |
JP4861452B2 (ja) * | 2009-05-29 | 2012-01-25 | シャープ株式会社 | 文書処理自動化システム及び画像形成装置 |
US8621580B2 (en) * | 2010-05-19 | 2013-12-31 | Cleversafe, Inc. | Retrieving access information in a dispersed storage network |
JP2012003338A (ja) * | 2010-06-14 | 2012-01-05 | Nec Corp | 認証システム、認証代理サーバ、制御プログラム及び認証方法 |
AU2011296303B2 (en) * | 2010-08-30 | 2015-01-22 | VMware LLC | Unified workspace for thin, remote, and SaaS applications |
US9003552B2 (en) * | 2010-12-30 | 2015-04-07 | Ensighten, Inc. | Online privacy management |
US8645679B2 (en) * | 2011-06-17 | 2014-02-04 | International Business Machines Corporation | System and method for merging security constraints when using security annotations |
US20140143681A1 (en) | 2012-11-16 | 2014-05-22 | Rohit Chandra | Method and apparatus for sharing user-selected content |
US9639623B2 (en) * | 2012-12-20 | 2017-05-02 | Cable Television Laboratories, Inc. | Method for remotely controlling a video playing within a first web page at a first device from a second device using a document object model |
CN105684388B (zh) * | 2013-09-20 | 2019-04-09 | 甲骨文国际公司 | 利用表单填充代理应用的基于网络的单点登录 |
US9690763B1 (en) * | 2013-12-17 | 2017-06-27 | Bryant Christopher Lee | Display of webpage elements on a connected computer |
KR102067017B1 (ko) * | 2014-01-27 | 2020-02-11 | 한국전자통신연구원 | 매쉬업 서비스를 위한 가상 api 제공 장치 및 방법 |
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 |
US9485244B2 (en) * | 2015-03-02 | 2016-11-01 | Citrix Systems, Inc. | Executing an operation over file repositories located in different authentication domains using a representational state transfer (REST)-compliant client |
US9639345B2 (en) * | 2015-03-31 | 2017-05-02 | Change Healthcare Llc | Methods and apparatuses for providing framework for selective execution of application features |
KR20170067260A (ko) * | 2015-12-08 | 2017-06-16 | 삼성전자주식회사 | 웹 페이지 운용 방법 및 이를 지원하는 전자 장치 |
US20170185617A1 (en) * | 2015-12-29 | 2017-06-29 | Quixey, Inc. | Data Object Based Application State Sharing Methods for User Devices |
US20170286558A1 (en) * | 2016-04-01 | 2017-10-05 | Buzzfeed, Inc. | Tracking Internet Sharing Using Augmented URLs |
US20180143950A1 (en) * | 2016-11-18 | 2018-05-24 | InGage Technologies, Inc. | Interactive communication via online video systems |
SG10201702881VA (en) * | 2017-04-07 | 2018-11-29 | Mastercard International Inc | Systems and methods for processing an access request |
US10708269B1 (en) * | 2017-10-13 | 2020-07-07 | Amazon Technologies, Inc. | Hosted application access management |
US20200402152A1 (en) * | 2018-05-10 | 2020-12-24 | Facebook, Inc. | Systems and methods for providing content |
US10848563B2 (en) * | 2018-09-17 | 2020-11-24 | Vmware, Inc. | On-device, application-specific compliance enforcement |
-
2018
- 2018-11-12 US US16/188,176 patent/US11005891B2/en active Active
-
2019
- 2019-11-11 CA CA3119447A patent/CA3119447C/en active Active
- 2019-11-11 EP EP19836148.7A patent/EP3881182A1/en active Pending
- 2019-11-11 WO PCT/US2019/060712 patent/WO2020102073A1/en unknown
- 2019-11-11 CN CN201980086157.1A patent/CN113260980B/zh active Active
- 2019-11-11 JP JP2021525099A patent/JP6998497B1/ja active Active
- 2019-11-11 AU AU2019381676A patent/AU2019381676B2/en not_active Ceased
-
2021
- 2021-04-15 US US17/231,823 patent/US20210234903A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102316094A (zh) * | 2010-06-30 | 2012-01-11 | 丛林网络公司 | 用于移动设备的具有集成加速的多服务vpn网络客户端 |
CN108200099A (zh) * | 2011-09-29 | 2018-06-22 | 甲骨文国际公司 | 移动应用、身份关系管理 |
Also Published As
Publication number | Publication date |
---|---|
WO2020102073A1 (en) | 2020-05-22 |
CA3119447A1 (en) | 2020-05-22 |
US20210234903A1 (en) | 2021-07-29 |
CA3119447C (en) | 2022-05-10 |
EP3881182A1 (en) | 2021-09-22 |
US11005891B2 (en) | 2021-05-11 |
CN113260980A (zh) | 2021-08-13 |
JP6998497B1 (ja) | 2022-01-24 |
AU2019381676B2 (en) | 2021-06-10 |
JP2022513596A (ja) | 2022-02-09 |
US20200153862A1 (en) | 2020-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111226429B (zh) | 经由嵌入式浏览器拦截和增强saas应用调用的***和方法 | |
CN112997153B (zh) | 用于经由嵌入式浏览器跨不同的saas应用的一致的执行策略的***和方法 | |
CN112313652A (zh) | 用于经由嵌入式浏览器提供数据丢失防护的***和方法 | |
CN112313919A (zh) | 用于使用嵌入式浏览器添加水印的***和方法 | |
CN112913213A (zh) | 用于为经由客户机应用的嵌入式浏览器访问的网络应用呈现附加内容的***和方法 | |
CN112930670A (zh) | 用于网络应用的集成服务发现的***和方法 | |
CN113228007A (zh) | 用于从本机应用进行安全saas重定向的***和方法 | |
CN112956171B (zh) | 用于维持和传输saas会话状态的***和方法 | |
CN112997180A (zh) | 用于将基于html的应用与嵌入式浏览器集成的***和方法 | |
CN113316924B (zh) | 用于saas应用的推送通知服务的***和方法 | |
US11429243B2 (en) | Systems and methods for contextual and administrator controlled browser control bar | |
CN113168420B (zh) | 用于使用嵌入式浏览器在远程应用内呈现Web链接的***和方法 | |
CN112805982B (zh) | 用于跨域应用的应用脚本 | |
CN113168350A (zh) | 用于各种应用之间的桥接协议的***和方法 | |
CN112292669A (zh) | 用于嵌入式浏览器的***和方法 | |
CN112868212A (zh) | 用于html应用的改进的远程显示协议的***和方法 | |
CN113169998A (zh) | 用于经由中间装置的片上***进行流量优化的***和方法 | |
US20210234903A1 (en) | Systems and methods for live saas objects | |
CN113302608B (zh) | 用于saas应用的智能感知的***和方法 | |
US20220121333A1 (en) | Systems and methods for live tiles for saas | |
CN113260978A (zh) | 用于经由前缀高速缓存进行等待时间掩蔽的***和方法 | |
CN113039769A (zh) | 用于经由嵌入式浏览器深度链接saas应用的***和方法 | |
US11228583B2 (en) | Systems and methods for slogan based sharing of living SaaS objects |
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 |