用于使用嵌入式浏览器在远程应用内呈现Web链接的系统和方法与流程

文档序号:26008533发布日期:2021-07-23 21:27阅读:148来源:国知局
用于使用嵌入式浏览器在远程应用内呈现Web链接的系统和方法与流程

相关申请的交叉引用

本申请要求于2018年9月21日提交的名称为“systemsandmethodsforrenderingweblinksinsidearemoteapplicationusinganembeddedbrowser”的美国专利申请no.16/138,598的优先权和利益,其内容出于所有目的通过引用全部合并于此。

本申请总地涉及应用的管理,包括但不限于用于使用嵌入式浏览器在远程供应的应用内预览链接的系统和方法。



背景技术:

随着企业的劳动力变得更有移动性和在各种条件下工作,个人可以使用一个或多个客户机装置(包括个人装置)以访问网络资源,例如web应用。由于客户机装置和网络资源可以被访问的方式之间的不同,在访问网络资源(例如,经由所显示的链接可访问的资源)方面存在很大的局限性或不便之处。



技术实现要素:

本公开涉及用于在网络应用中提供链接的预览的系统和方法。客户机应用内的嵌入式浏览器可以提供一种机制和界面,以供用户预览网络应用的会话(有时称为hdx会话或供应会话)中提供的链接。可以经由客户机应用访问网络应用,并且嵌入式浏览器可以呈现网络应用的用户界面。用户可以点击(或以其他方式作用于)在网络应用的用户界面内呈现的链接(例如,链接的文本或图标)。嵌入式浏览器可以检测该链接上的用户动作。在一些实施例中,当嵌入式浏览器检测到用户动作时,例如,除了发起链接的预览之外或代替发起链接的预览,嵌入式浏览器可以向用户提供打开嵌入式浏览器中的链接的选项。例如,当用户作用于链接时,可以(例如,经由选择菜单)向用户提供查看预览或打开嵌入式浏览器中的链接的选项。如果用户选择查看预览的选项,则嵌入式浏览器可以向用户提供链接的预览(例如,在客户机应用的嵌入式浏览器的预览区域中)。

在一个方面,本公开涉及一种用于在网络应用中提供链接的预览的方法。该方法可以包括由客户机装置上的客户机应用经由客户机应用的嵌入式浏览器提供对网络应用的访问。该网络应用可以托管在一个或多个服务器上,并且可以具有经由与一个或多个服务器建立的供应会话供应至嵌入式浏览器的用户界面。该方法可以包括在客户机应用的嵌入式浏览器中在网络应用的用户界面内显示链接。该方法可以包括由客户机应用的预览引擎检测嵌入式浏览器中显示的链接上的用户动作。该方法可以包括由客户机应用的预览引擎响应于检测到的用户动作,通过在嵌入式浏览器的预览区域中呈现预览来提供链接的预览。

在一些实施例中,嵌入式浏览器被集成到客户机应用中。在一些实施例中,该方法可以包括由预览引擎使得在链接上应用策略,以确定是否允许嵌入式浏览器提供预览。在一些实施例中,该方法可以包括由预览引擎响应于接收到允许嵌入式浏览器提供预览的指示来提供链接的预览。

在一些实施例中,该方法可以包括由预览引擎响应于检测到链接上的用户动作来建立嵌入式浏览器的预览区域。在一些实施例中,预览区域包括嵌入式浏览器的窗口或选项卡。在一些实施例中,该方法包括由预览引擎执行在预览区域内滚动预览或调整预览的大小中至少之一。

在一些实施例中,该方法可以包括由嵌入式浏览器响应于经由网络应用打开链接的用户动作来访问链接的页面,以在网络应用的用户界面内进行呈现。在一些实施例中,该方法可以包括:由嵌入式浏览器响应于保存链接的用户动作,将链接保存到经由嵌入式浏览器访问的文件共享应用。在一些实施例中,该方法可以包括由客户机应用的预览引擎检测终止预览的用户动作。该方法还可以包括由预览引擎关闭嵌入式浏览器的预览区域。

在另一方面,本公开涉及一种用于在网络应用中提供链接的预览的系统。该系统可以包括在客户机装置的一个或多个处理器上可执行的客户机应用。客户机应用可以经由客户机应用的嵌入式浏览器提供对网络应用的访问。该系统可以包括在一个或多个处理器上可执行的客户机应用的嵌入式浏览器。嵌入式浏览器可以在网络应用的用户界面内显示链接。该系统可以包括客户机应用的预览引擎。预览引擎可以检测在嵌入式浏览器中显示的链接上的用户动作。预览引擎可以响应于检测到的用户动作,通过在嵌入式浏览器的预览区域中呈现预览来提供链接的预览。

在一些实施例中,嵌入式浏览器被集成到客户机应用中。在一些实施例中,预览引擎可以使得在链接上应用策略,以确定是否允许嵌入式浏览器提供预览。在一些实施例中,预览引擎可以响应于接收到允许嵌入式浏览器提供预览的指示来提供链接的预览。

在一些实施例中,预览引擎可以响应于检测到链接上的用户动作来建立嵌入式浏览器的预览区域。在一些实施例中,预览区域包括嵌入式浏览器的窗口或选项卡。在一些实施例中,预览引擎可以执行在预览区域内滚动预览或调整预览的大小中至少之一。

在一些实施例中,嵌入式浏览器可以响应于经由网络应用打开链接的用户动作来访问链接的页面,以在网络应用的用户界面内进行呈现。在一些实施例中,嵌入式浏览器可以响应于保存链接的用户动作,将链接保存到经由嵌入式浏览器访问的文件共享应用。在一些实施例中,预览引擎可以检测终止预览的用户动作。预览引擎可以关闭嵌入式浏览器的预览区域。

附图说明

通过参考以下结合附图的描述,本解决方案的前述和其他目的、方面、特征和优点将变得更加明显和更好理解,其中:

图1是计算装置的实施例的框图;

图2是用于访问资源的云服务的说明性实施例的框图;

图3是企业移动性管理系统的示例实施例的框图;

图4是嵌入式浏览器的系统400的框图;

图5是用于使用安全浏览器的系统的示例实施例的框图;

图6是用于使用安全浏览器插件的浏览器重定向的实施方式的示例表示;

图7是使用安全浏览器的系统的示例实施例的框图;

图8是用于使用本地嵌入式浏览器和托管安全浏览器的系统的示例实施例的框图;

图9是用于使用本地嵌入式浏览器和托管安全浏览器的示例处理流程;

图10是用于管理用户对网页的访问的系统的示例实施例;

图11是用于在嵌入式浏览器中提供链接的预览的系统的一个实施例的框图;以及

图12是用于在网络应用中提供链接的预览的方法的一个实施例的流程图。

根据下文结合附图时阐述的详细描述,本解决方案的特征和优点将变得更加明显,在附图中,相似的附图标记始终标识相应的元件。在附图中,相似的附图标记通常表示相同、功能相似和/或结构相似的元件。

具体实施方式

为了阅读以下各个实施例的描述,本说明书各部分的以下描述及其各自的内容可能是有帮助的:

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和/或高速缓冲存储器,其可以提供比主存储器更快的响应时间。可以使用gui124的输入装置来输入数据,或者可以从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日授予佛罗里达州劳德代尔堡的citrixsystems,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)的saasweb服务时,相应的访问请求可以被转发到一个指定的网关服务,该服务确定、检查或者验证ceb是否被用于提出该访问请求。响应于确定ceb被用于提出访问请求,网关服务可以执行或提供认证和单点登录(sso),并且可以允许ceb直接连接到saasweb服务。加密(例如标准加密)可用于ceb与saasweb服务之间的应用会话。当来自web服务的内容在ceb中未加密以经由嵌入式浏览器查看时,和/或当输入经由ceb输入时,ceb可以提供用于例如控制和分析的选择性应用相关的信息上的附加服务。例如,分析代理或应用编程接口(api)可以被嵌入在ceb中以提供或执行附加服务。

ceb(有时被称为工作空间应用或接收器)可以与一个或多个网关服务、中间装置和/或网络服务器(有时统称为云服务或思杰云(citrixcloud))进行交互操作,以提供对网络应用的访问。与云服务的实施例的操作相关的环境的特征和元件如下所述。

图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可以使用诸如aes256位加密之类的非常强加密形式。当从装置管理器224接收到命令时,可以从装置中删除存储在安全数据容器228中的数据。安全应用可以具有双模式选项240。双模式选项240可以向用户呈现在非安全或非管理模式下操作安全应用的选项。在非安全或非管理模式下,安全应用可以访问存储在客户机装置202的非管理分区212上的非安全数据容器242中的数据。存储在非安全数据容器中的数据可以是个人数据244。存储在非安全数据容器242中的数据还可以由在客户机装置202的未管理分区212上运行的非安全应用248访问。当存储在安全数据容器228中的数据被从客户机装置202删除时,存储在非安全数据容器242中的数据可以保持在客户机装置202中。企业可能希望从客户机装置中删除由企业拥有、许可或控制的所选择的或所有的数据、文件和/或应用(企业数据),同时留下或以其它方式保留由用户拥有、许可或控制的个人数据、文件和/或应用(个人数据)。该操作可以称为选择性擦除。利用根据本文所述方面布置的企业和个人数据,企业可以执行选择性擦除。

客户机装置202可以连接到企业处的企业资源204和企业服务208,连接到公共互联网248等。该客户机装置可以通过虚拟专用网络连接来连接到企业资源204和企业服务208。虚拟专用网络连接(也称为微vpn或应用特定的vpn)可以特定于特定应用(例如,如微vpn250所示)、特定装置、客户机装置上的特定安全区域(例如,如o/svpn252所示)等。例如,电话的安全区域中的每个包装应用都可以通过应用特定的vpn访问企业资源,从而可以基于与该应用相关联的属性(可能结合用户或装置属性信息)来授予对vpn的访问权限。虚拟专用网络连接可以承载microsoftexchange流量、microsoftactivedirectory流量、超文本传输协议(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访问。客户机装置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可以充当托管在企业数据中心中的windowsapp/桌面的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中时,优选地,利用最低限度的aes256加密算法。

还可以实现其他安全容器特征。例如,可以包括日志记录特征,其中记录在应用310内部发生的所有安全事件的日志并将其报告给后端。可以支持数据擦除,例如如果应用310检测到篡改,则可以用随机数据覆盖相关联的加密密钥,而不留下在文件系统上用户数据被破坏的提示。屏幕截图保护是另一个特征,应用可能会阻止任何数据存储在屏幕截图中。例如,可以将关键窗口的隐藏属性设置为yes。这可能会使得屏幕上当前显示的任何内容都被隐藏,从而产生空白屏幕截图,通常任何内容都将驻留在该屏幕截图上。

诸如通过防止任何数据在应用容器之外本地传输(例如通过将数据复制或发送至外部应用),可以防止本地数据传输。键盘高速缓存特征可操作来禁用敏感文本字段的自动更正功能。ssl凭证验证可能是可操作的,因此应用专门验证服务器ssl凭证,而不是将其存储在密钥链中。可以使用加密密钥生成特征,以便使用用户提供的密码或生物特征数据生成用于在装置上加密数据的密钥(如果需要离线访问)。如果不需要离线访问,可以将它与另一个随机生成的密钥进行异或并存储在服务器侧。密钥导出功能可以操作,使得从用户密码生成的密钥使用kdf(密钥导出功能,尤其是基于密码的密钥导出功能2(pbkdf2)),而不是为其创建密码散列。后者使密钥容易受到暴力破解或字典攻击。

此外,可以在加密方法中使用一个或多个初始化向量。初始化向量可以使得同一加密数据的多个副本产生不同的密文输出,从而防止重放和密码分析攻击。这也可以防止攻击者即使使用被盗的加密密钥也无法解密任何数据。此外,可以使用认证然后解密,其中仅在用户已经在应用内进行认证之后才对应用数据进行解密。另一个特征可以涉及在存储器中的敏感数据,仅当需要它时,它可以被保持在存储器中(而不是在磁盘上)。例如,登录凭证可能会在登录后从存储器中擦除,并且objective-c实例变量中的加密密钥和其他数据不会被存储,因为它们很容易被引用。而是可以为这些手动分配存储器。

可以经由ceb实现非活动超时,其中,在策略定义的非活动时间段之后,终止用户会话。

可以以其他方式防止来自应用管理框架314的数据泄漏。例如,当将应用310置于后台时,可以在预定的(可配置的)时间段之后清除存储器。当置于后台时,可以对应用的最后显示的屏幕获取截图以加快前台操作进程。屏幕截图可能包含机密数据,因此应被清除。

另一安全特征涉及不使用用于访问一个或多个应用的ad(活动目录)322密码而使用otp(一次性密码)320。在某些情况下,某些用户不知道(或不被允许知道)其ad密码,因此这些用户可以使用otp320进行认证,例如通过使用像securid这样的硬件otp系统(otp也可以由不同的供应商提供,例如entrust或gemalto)。在某些情况下,在用户使用用户id进行认证之后,带有otp320的文本将被发送给用户。在某些情况下,只能将其实现为在线使用,提示是单个字段。

对于那些经由企业策略允许离线使用的应用310,可以实现离线密码以用于离线认证。例如,企业可能希望店面以这种方式被访问。在这种情况下,客户机代理304可以要求用户设置定制的离线密码并且不使用ad密码。网关服务器306可以提供策略来控制和执行有关密码的最小长度、字符类型组成和密码年龄的密码标准,例如标准windowsserver密码复杂性要求所描述的,尽管可以修改这些要求。

另一个特征涉及针对特定应用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、visualbasic6.0和/或python的客户机应用。

在一些实施例中,嵌入式浏览器包括安装在客户机应用上的插件。例如,插件可以包括一个或多个组件。一个这样的组件可以是activex控件或java控件,或者是能够加载到客户机应用中并在其中执行的任何其他类型和/或形式的可执行指令。例如,客户机应用可以加载和运行嵌入式浏览器的activex控件,例如在客户机应用的存储空间或上下文中。在一些实施例中,嵌入式浏览器可以作为扩展安装在客户机应用上,并且用户可以选择启用或禁用插件或扩展。嵌入式浏览器(例如,经由插件或扩展)可以形成或操作为安全浏览器,用于保护、使用和/或访问数字工作空间的安全部分内的资源。

嵌入式浏览器可以合并超出标准或典型浏览器中的可用或可能的代码和功能。例如,嵌入式浏览器可以与安全容器418绑定或被分配给安全容器418,以定义用户数字工作空间的安全部分的至少一部分。嵌入式浏览器可以与客户机装置的高速缓存的一部分绑定或被分配给客户机装置的高速缓存的一部分,以形成安全剪贴板(例如,客户机装置本地或可扩展到其他装置),该剪贴板可以是安全容器418的至少一部分。嵌入式浏览器可以与客户机应用集成,以确保与网络应用相关的流量通过客户机应用路由和/或在客户机应用中进行处理,这可以为客户机应用提供流量的实时可见性(例如,当通过客户机应用进行解密时)。对流量的这种可见性可以允许客户机应用执行或促进基于策略的管理(例如,包括数据丢失防护(dlp)能力)、应用控制、以及分析的收集和产生。

在一些实施例中,嵌入式浏览器合并了客户机应用404的一个或多个其他组件,诸如云服务代理414、远程会话代理416和/或安全容器418。例如,用户可以使用嵌入式浏览器的云服务代理414与访问网关422(有时称为cis)互操作以访问网络应用。例如,云服务代理414可以在嵌入式浏览器内执行,并且可以从嵌入式浏览器接收导航命令并将其发送到托管网络应用。云服务代理可以使用远程呈现协议将由网络应用生成的输出显示到嵌入式浏览器。例如,云服务代理414可以包括html5web客户机,其允许最终用户访问嵌入式浏览器上的远程桌面和/或应用。

客户机应用404和ceb在客户机装置的操作(osi)栈的应用层上操作。客户机应用404可以包括和/或执行与云服务408互操作的一个或多个代理。客户机应用404可以接收、获得、检索或以其他方式访问各种策略(例如,企业的定制、指定或内部策略或规则)和/或数据(例如,来自云服务408的访问网关422和/或网络装置、或可以由企业管理的其他服务器)。客户机应用可以访问策略和/或数据以控制和/或管理网络应用(例如,saas、web或远程托管的应用)。网络应用的控制和/或管理可以包括网络应用的各个方面的控制和/或管理,例如访问控制、会话输送、可用特征或功能、服务级别、流量管理和监视等等。网络应用可以来自企业的提供者或供应商(例如,salesforce.com、sap、microsoftoffice365),来自企业本身或来自另一个实体(例如,dropbox或gmail服务)。

例如,云服务代理414可以提供与网络应用的使用和/或访问有关的策略驱动的管理能力和特征。例如,云服务代理414可以包括策略引擎,以应用(例如,从云服务接收到的)一个或多个策略来确定对诸如网络应用的资源的访问控制和/或连接性。例如,当在客户机应用和提供saas应用的服务器430之间建立会话时,云服务代理414可以应用一个或多个策略来控制会话的流量级别和/或流量类型(或其他方面),例如来管理saas应用的服务级别。可以控制或管理的应用流量的其他方面可以包括:应用于流量的加密级别和/或加密类型、对于用户所允许的交互级别、对网络应用的某些功能(例如打印屏幕、保存、编辑或复制功能)的受限访问、对使用或传输从网络应用获得的数据的限制、限制对两个或更多个网络应用的并发访问、限制对某些文件存储库或其他资源的访问等等。

云服务代理414可传达或馈送信息至云服务408的分析服务424,例如对ceb可见的有关saas交互事件的信息。使用ceb的这种配置可以监视或捕获信息以进行分析,而无需在客户机装置和服务器430之间放置内联装置或代理,也无需使用saasapi网关“带外”方法。在一些实施例中,云服务代理414不在嵌入式浏览器内执行。在这些实施例中,用户可以类似地使用云服务代理414来与访问网关(或cis)422互操作以访问网络应用。例如,云服务代理414可以向访问网关(或cis)422注册和/或认证,并且可以从访问网关(或cis)422获得网络应用的列表。云服务代理414可以包括和/或作为应用商店(或店面)进行操作,以供用户选择和/或下载网络应用。当登录以访问网络应用时,云服务代理414可以从嵌入式浏览器拦截和传送导航命令到网络应用。云服务代理可以使用远程呈现协议将由网络应用生成的输出显示到嵌入式浏览器。例如,云服务代理414可以包括html5web客户机,其允许最终用户访问嵌入式浏览器上的远程桌面和/或应用。

在一些实施例中,云服务代理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连接可以承载microsoftexchange流量、microsoftactivedirectory流量、超文本传输协议(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、office365、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的activex控件。在一些实施例中,安全浏览器插件可以作为扩展安装在标准浏览器上,并且用户可以选择启用或禁用该插件或扩展。安全浏览器插件可以进行与安全浏览器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)可以通过cebapp来应用,其特征包括将对其他ceb访问应用或it管理的装置的复制和粘贴控制。通过使内容只能在it控制下下载到指定的文件服务器或服务,也可以执行dlp。

现在参考图10,描绘了用于管理用户对网页的访问的系统的示例实施例。某些网页(或网站)被认为是安全的,而另一些网页则可能是可疑的。用户可以通过标准浏览器经由相应的url访问网页。例如,用户可以点击与url相对应的链接,该链接可以包括在使用邮件应用正在查看的电子邮件中。访问网关(swg)可以拦截通过点击链接而生成的访问请求,并且可以确定相应的url是安全的还是可疑的。如果url被认为是安全的,则访问网关可以允许请求继续进行至相应的网站或web服务器。如果该url是可疑的,则访问网关可以重定向请求经由托管的安全浏览器处理。安全浏览器可以请求访问和访问网页(代表标准浏览器),并且可以允许将网页信息传送到标准浏览器,类似于经由浏览器重定向对网络应用的处理,如结合至少图7和5所讨论的。

c.用于在网络应用中提供链接的预览的系统和方法

本公开涉及用于在网络应用中提供链接的预览的系统和方法。客户机应用内的嵌入式浏览器可以提供一种机制和界面,以供用户预览网络应用的会话(有时称为hdx会话或供应会话)中提供的链接。可以经由客户机应用访问网络应用,并且嵌入式浏览器可以呈现网络应用的用户界面。用户可以点击(或以其他方式作用于)在网络应用的用户界面内呈现的链接(例如,链接的文本或图标)。嵌入式浏览器可以检测该链接上的用户动作。在一些实施例中,当嵌入式浏览器检测到用户动作时,例如,除了发起链接的预览之外或代替发起链接的预览,嵌入式浏览器可以向用户提供打开嵌入式浏览器中的链接的选项。例如,当用户作用于链接时,可以(例如,经由选择菜单)向用户提供查看预览或打开嵌入式浏览器中的链接的选项。如果用户选择查看预览的选项,则嵌入式浏览器可以向用户提供链接的预览(例如,在客户机应用的嵌入式浏览器的预览区域中)。

在一些实施例中,与嵌入式浏览器通信的安全web网关(在本文中也称为安全网关)可以将统一资源定位符(url)策略(在本文中也称为策略或规则)应用于链接,以用于确定是否允许嵌入式浏览器提供预览。在某些实施例中,嵌入式浏览器可以在客户机装置上本地地访问和应用一个或多个策略,以确定是否允许链接的预览。如果允许,则嵌入式浏览器可以呈现、建立、显示或以其他方式在网络应用的预览区域内提供链接(例如,web链接)的预览。用户可以例如在预览上阅读、缩放(或调整大小)、滚动或执行一些其他操作。另外,用户可以关闭预览以返回到网络应用,将链接保存为书签,和/或使用发布的应用(在本文中也称为hdx应用或网络应用)打开链接。

在一些实施例中,用户可以将链接保存到sharefile服务或应用(在本文中也称为文件共享应用),例如作为保存的web链接。与客户机装置通信的一个或多个服务器(也称为citrix工作空间服务器)可以调用文件共享应用,并提供来自嵌入式浏览器的认证令牌(例如,用于访问文件共享应用以保存链接、或用于访问网络应用的相同认证令牌)以访问所保存的web链接。因此,用户可以稍后通过提供认证令牌,通过服务器(或直接通过文件共享应用)来访问文件共享应用上的所保存的web链接。

当在远程环境中操作客户机装置的用户选择网络或本地应用(诸如电子邮件应用,如microsoftoutlook)内的链接时,与该链接相对应的页面在与网络或本地应用分开的默认浏览器中打开。该页面可以在新窗口中打开,也可以在不同于具有该链接的窗口的窗口中打开。但是,大多数用户可能不愿在新窗口中打开这样的页面。如果用户对页面足够感兴趣,则用户可以(在新窗口或选项卡中)打开链接并详细阅读页面。例如,由于选择链接在默认浏览器内打开新窗口或选项卡,因此用户可能避免(或延迟)选择链接,结果错过页面中包含的相应信息。这样的延迟或避免可能负面地影响用户的工作效率以及整体用户体验。另外,在本地或远程浏览器中打开几个链接会消耗资源(例如,整体服务器或计算资源),潜在地消耗用户或软件许可证,和/或影响用户工作效率。

参考图11,描绘了用于在嵌入式浏览器中提供链接的预览的系统1100的一个实施例的框图。系统1100可以包括一个或多个服务器1102、具有一个或多个策略1122的安全网关1120和/或客户机装置1104。客户机装置1104可以(例如,经由以上结合图1描述的处理器中的一个或多个)执行包括嵌入式浏览器1108的客户机应用1106。嵌入式浏览器1108可以包括预览引擎1116,并且可以提供预览区域1118。嵌入式浏览器1108可以呈现经由客户机应用1106(例如,包括链接1112的网络应用的用户界面1114)访问的网络应用1110'的信息/元件。如将在下面详细描述的,链接1112的预览可以由预览引擎1116在预览区域1118内呈现。在某些情况下,可以将链接1112发送到文件共享应用1124,以供用户在稍后的时间进行后续访问。

在一些实施例中,客户机应用1106可以包括以上至少结合图4和8描述的客户机应用404的任何实施例的一个或多个元件。具有嵌入式浏览器1108的客户机应用1106(ceb)可以包括如先前以上至少结合图4和图8描述的ceb的任何元件或实施例。如上所述,嵌入式浏览器1108可以集成在客户机应用1106内。在一些实施例中,客户机应用1106可以在由用户操作的客户机装置1104上执行。客户机装置1104可以包括以上至少结合图4、5、7和8描述的客户机装置402的任何实施例的一个或多个元件。网络应用1100可以包括以上至少结合图2-5、7和8描述的任何类型或形式的网络应用406。

在一个或多个实施例中,以硬件或硬件和软件的组合来实现上述元件或实体中的每一个。系统1100的每个组件可以使用以上结合图1详细描述的硬件或硬件或软件的组合来实现。例如,这些元件或实体中的每一个可以包括例如在客户机装置1104、服务器1102和/或安全网关1120的硬件上执行的任何应用、程序、库、脚本、任务、服务、进程或任何类型和形式的可执行指令。在一个或多个实施例中,硬件包括诸如一个或多个处理器的电路。

客户机应用1106的嵌入式浏览器1108可以被设计或实现为显示网络应用1110的用户界面1114和/或用户界面1114内的一个或多个链接1112。网络应用1110'可以在服务器1102上托管、运行或以其他方式执行。客户机应用1106的嵌入式浏览器1108可以包括与网络应用1110'相对应或代表网络应用1110'的图标。一旦用户选择了特定的网络应用1110'(例如,通过选择经由客户机应用1106可用的相应图标),就可以经由客户机应用1106的嵌入式浏览器1108来访问网络应用1110'(例如,作为网络应用1110)。

在一些实施例中,网络应用1110'是指远程地托管在服务器1102上的网络应用,而网络应用1110是指经由(例如,使用citrix高清晰度用户体验(hdx)或独立计算架构(ica)协议或远程桌面协议(rdp)建立的)供应会话供应给客户机应用1106的网络应用1110'和/或客户机装置1104上的网络应用的本地呈现。网络应用1110'可以托管在一个或多个服务器上,并且可以具有经由与一个或多个服务器1102建立的供应或输送会话供应至嵌入式浏览器1108的用户界面。例如,虚拟输送代理(诸如以上至少参考图4和图8所述的远程会话代理)可以在服务器1102和客户机装置1104之间建立连接。虚拟输送代理可以支持远程协议(例如,hdx或ica)。虚拟输送代理可以根据诸如rdp、设备链接协议(alp)、远程帧缓冲器(rfb)协议和ica协议的任何类型或形式的协议来建立供应或输送会话。这种协议可以允许在一个或多个服务器处生成本机托管在一个或多个服务器上的应用或桌面会话的用户界面(ui)元件,然后在其中使用这种协议进行编码,以将其输送或供应给从一个或多个服务器远程定位的客户机装置。因此,可以在客户机装置处再现、同步和/或镜像用户界面元件。在一些实施例中,虚拟输送代理可以为客户机装置1104的用户建立供应或输送会话以访问网络应用1110'。例如,虚拟输送代理可以在由(图4和图8的)网络代理412建立的安全连接(例如,vpn)之内或之上建立供应或输送会话。

在一些实施例中,网络应用1110不包括经由超文本标记语言(html)输送到客户机装置的网页或服务器侧htmlweb应用。在一些实施例中,网络应用1110不包括javascript生成小部件(ajax)和/或面向服务的单页面web应用(例如,web2.0、html5应用)。网络应用1110’可以包括例如microsoftwindows365应用,诸如outlook、powerpoint、word、excel等。网络应用1110'可以包括例如citrixsharepoint、onenote、dropbox等。在这些示例的每一个中,用户可以通过选择或激活客户机应用1106上可用的相应应用图标来访问网络应用1110',并且可以将托管在服务器1102上的网络应用1110'远程供应给客户机装置1104。

在一些实施例中,网络应用1110'可以具有用于在允许用户经由嵌入式浏览器1108访问网络应用1110之前对用户进行认证的认证程序。用户可以将认证令牌(例如,通过登录,提供密码或口令)提供给网络应用1110'。网络应用1110’可以通过将认证令牌与可以访问网络应用1110’的授权用户进行比较来验证认证令牌。当(例如,经由认证令牌)验证了用户的身份时,可以在嵌入式浏览器1108上访问、供应和/或呈现网络应用1110。

在一些实施例中,经由嵌入式浏览器1108呈现、供应或提供的网络应用1110可以具有包括在网络应用1110的用户界面1114上的链接1112。用户界面1114可以是提供用户与网络应用1110'之间的交互、通信和/或其他信息交换的界面(例如,图形用户界面(gui))。例如,用户界面1114可以包括、显示或呈现链接、文本、按钮、滑动条等。

在一些实施例中,用户界面1114可以包括链接1112。链接1112可以是被寻址到互联网网页(例如,web链接)的链接、被寻址到内部或外部/可下载文件的链接、到显示在嵌入式浏览器1108上的同一页面的不同部分的链接等。链接1112可以是用于访问任何类型或形式的资源或内容(例如,web应用、小部件、视频文件、图片或多媒体文件)的链接。在这些实例的每一个中,当用户选择、悬停或以其他方式作用于链接1112时,链接1112可以操作以预览或显示与当前在嵌入式浏览器1108上显示的页面不同的页面、内容或其他资源。

嵌入式浏览器1108可以包括预览引擎1118。嵌入式浏览器1108的预览引擎1118可以被设计或实现为检测、监视、注册或以其他方式识别(下文通常称为“识别”)在嵌入式浏览器1108中显示的链接1112上的用户动作(例如,检测或识别用户动作的发生)。预览引擎1118可以包括用于识别、检测、监视和/或响应于预定或预定义的用户动作的逻辑或过程,以发起、触发、生成、产生或以其他方式引起链接1112的预览。用户可以通过选择按钮、滑动条、文本、链接1112等来提供或执行用户动作以与网络应用1110交互。嵌入式浏览器1108可以识别这些用户动作。例如,嵌入式浏览器1108可以包括文档对象模型(dom)事件监听器,其注册dom事件(诸如鼠标dom事件、键盘dom事件、html框架/对象/表单dom事件和/或其他用户界面dom事件)。dom事件监听器可以在dom事件在用户界面1114内发生时注册这些dom事件。嵌入式浏览器1108可以基于用户界面1114内已注册的dom事件来识别用户动作。在某些情况下,用户可以在链接1112上选择、悬停或以其他方式执行预定义、特定或预定的用户动作,以发起或触发链接1112的预览。例如,用户可以选择或悬停在链接1112上以预览与链接1112相对应的页面。嵌入式浏览器1108可以识别在链接1112上的用户动作。

嵌入式浏览器1108的预览引擎1116可以被设计或实现为建立、显示、呈现、生成、展现或以其他方式提供链接1112的预览。该预览可以是在用户打开链接1112时提供给用户的页面的至少一部分。在一些实施例中,预览可以包括当打开链接1112时提供给用户的整个页面。在其他实施例中,预览可以小于当打开链接1112时提供给用户的整个页面(例如,仅页面的文本、页面的上部)。例如,预览引擎可以发起与链接1112相关联的页面的部分检索。该部分检索可以是页面的概要或片段。预览引擎1116可以从缓存的数据或直接从链接1112的源检索预览。例如,预览引擎1116可以从与链接1112相关联的页面访问数据,并且以预览格式将数据提供给用户(而不是在嵌入式浏览器1108外部的新的页面或选项卡中打开链接1112)。然后,用户可以在嵌入式浏览器1108内查看预览。

预览引擎1116可以在嵌入式浏览器1108的预览区域1118中呈现预览。预览区域1118可以是嵌入式浏览器1108的在其中呈现预览的部分。例如,预览区域1118可以是用于嵌入式浏览器1108的新的浏览器窗口或选项卡。作为另一个示例,预览区域1118可以是在嵌入式浏览器1108的同一窗口或显示部分内的弹出窗口、调出或覆盖物。弹出窗口或预览区域可以覆盖当前窗口(例如,覆盖嵌入式浏览器1108的一部分)。另外,弹出窗口或预览区域可以是嵌入式浏览器1108的当前窗口的指定部分,例如,当用户发起预览时该指定部分未被使用。作为另一示例,嵌入式浏览器1108的窗口可以被扩展(例如,以具有增大的窗口大小)以适应嵌入式浏览器1108的同一窗口内的弹出窗口。在该示例中,用户界面1114的各个部分可以被移动以适应弹出窗口。例如,在用户界面1114被移动到窗口的左侧的情况下,窗口可以扩展到更大的大小,并且可以在窗口的右侧内呈现包括预览的弹出窗口。

在一些实施例中,当识别出链接1112上的用户动作时,预览区域1118可以呈现预览。例如,预览区域1118可以默认为呈现网络应用1110的用户界面1114的一部分,并且可以在识别出链接1112上的用户动作时呈现预览。就这一点而言,预览区域1118可以根据链接1112上的用户动作来选择性地呈现预览或用户界面1114。

在一些实施例中,预览引擎1116可以建立、生成和/或配置嵌入式浏览器1108的预览区域1118。例如,预览引擎1116可以在嵌入式浏览器1108识别出、认出或检测到链接1112上的用户动作时建立、生成和/或配置预览区域1118。

在一些实施例中,预览引擎1116可以建立预览区域1118的位置。预览区域1118可以对应于或包括嵌入式浏览器1108内的静态和/或指定位置(例如,每当识别出任何链接1112上的用户动作时,预览区域1118都位于同一位置中)。另外,预览区域1118可以在嵌入式浏览器1108内或相对于嵌入式浏览器1108具有动态位置、形状、外观和/或尺寸。预览区域1118可以被限制在嵌入式浏览器1108的显示或定义的边界内(例如,在嵌入式浏览器1108的当前窗口或边界内),或者可以延伸或位于边界之外(例如,预览区域1118可以部分在当前窗口之内和部分在当前窗口之外延伸,或者预览区域1118可以在当前窗口之外完全延伸)。在一些实施例中,预览区域1118的位置可以根据各种输入而改变。例如,预览区域1118的位置可以取决于用户界面1112内的链接1112的位置而改变。作为一个示例,在链接1112位于用户界面1112的右下侧附近的情况下,预览区域1118可以位于嵌入式浏览器1108的中央右侧附近。作为另一示例,在链接1112位于嵌入式浏览器1108的中央右侧的情况下,预览区域1118可以位于嵌入式浏览器1108的左下侧附近。

在一些实施例中,预览引擎1116可以建立预览区域1118的内容和/或元件(例如,图形元件)。例如,预览区域1118可以对应于或包括嵌入式浏览器1108的窗口或选项卡。在一些实施例中,客户机应用1106的嵌入式浏览器1108可以被设计或实现为检索、打开或以其他方式访问(以下通常称为“访问”)链接1112的页面。预览引擎1116可以访问与链接1112相关联的地址(例如url或ip地址)以识别或访问与链接1112相关联的页面。例如,嵌入式浏览器1108的预览引擎1116可以响应于经由网络应用1110在链接1112上的用户动作来访问该链接的页面。预览引擎1116可以在预览区域1118内呈现页面的至少一些内容。

在本文描述的实施例中,预览引擎1116可以在用户当前操作、控制或以其他方式使用的同一嵌入式浏览器1108的预览区域1118内呈现预览。因此,与在新的或不同的浏览器中打开链接1112的情况相比,已经打开并为其分配了存储器的嵌入式浏览器1108可以更快和更有效地向用户提供预览。例如,嵌入式浏览器1118可以将预览直接呈现给用户,而不是将指令传送给新的浏览器以打开链接1112。结果,减少了用于打开新的浏览器、打开链接1112、分配诸如存储器的资源以及访问相应页面的等待时间和滞后时间。这样减少的等待时间和滞后时间产生改善的用户体验。此外,在嵌入式浏览器1108内提供预览为用户提供了相同的外观和感觉(而不是打开可能具有不同界面的新的浏览器)。用户可以在相同的环境(例如,嵌入式浏览器1108)内操作,并无缝访问网络应用1110的链接及其用户界面1114。与在不同的(例如,新的)浏览器或外部应用中打开链接1112相比,这些方面中的每一个都可以带来改善的用户体验和便利性。作为改善的用户体验的结果,用户可能不太可能避免或延迟选择链接1112,因此不太可能错过页面中包含的相应信息。因此,用户可以从提高的工作效率中受益。

在一些实施例中,预览引擎1116可以被设计或实现为使得能够对预览区域1118内的预览进行用户操纵、动作或操作。例如,用户可以对预览区域1118内的预览进行滚动、缩放(例如,调整大小)、终止和/或提供其他用户动作。嵌入式浏览器1108可以识别用户动作,并根据检测到的用户动作控制或更新预览。嵌入式浏览器1108可以以类似于上述嵌入式浏览器1108识别用户动作的方式来识别预览内的用户动作。作为一个示例,用户可以提供在预览区域内滚动预览的用户动作。嵌入式浏览器1108可以识别预览区域1118内的滚动dom事件。预览引擎1116可以根据滚动dom事件来改变、调整或更新与在预览区域1118内显示的链接1112相对应的页面部分。作为另一示例,嵌入式浏览器1108可以识别预览区域1118内的调整大小的dom事件。预览引擎1116可以根据调整大小的dom事件来改变预览区域1118(和/或预览)的大小。作为又一个示例,嵌入式浏览器1108可以识别预览区域1118内的终止dom事件。预览引擎1116可以关闭嵌入式浏览器1108的预览区域1118(例如,选项卡或子窗口)。预览引擎1116可以显示或恢复预览区域1118先前所在的网络应用1110的用户界面1114。就这一点而言,用户可以在用户(例如,经由在预览区域1118内提供终止dom事件)关闭预览之后,(例如,有效地或方便地)返回网络应用1110。

在一些实施例中,预览引擎1116可以被设计或实现为呈现经由网络应用1110预览或打开链接的选项。例如,预览引擎1116可以被配置为识别或检测在链接1112上的与每个选项相对应的不同的预定义用户动作。预览引擎1116可以显示选项以经由网络应用1110打开预览(例如,如上所述)或打开与链接1112相对应的页面。预览引擎1116可以呈现或识别(例如,在选项上的)一个或多个其他用户动作。用户可以(例如,通过点击)选择期望的选项。预览引擎1116可以识别与在期望选项上的点击相关联的dom事件。预览引擎1116可以根据用户选择来执行选项(例如,如上所述,在预览区域1118中呈现预览,或者在网络应用1110'中打开链接并呈现页面)。

在一些实施例中,预览引擎1116可以与安全网关1120通信或与安全网关1120互操作。例如,安全网关1120可以被设计或实现为执行基于策略的访问控制,以过滤用于预览的链接。安全网关1120可以例如在链接1112上应用策略1122,以确定是否允许嵌入式浏览器1108提供预览。在一些实施例中,安全网关1120可以从策略存储中检索策略1122,并且在链接1112上应用检索到的策略1122。另外,安全网关1120可以在安全网关1120上本地地存储策略1122。在其它实施例中,嵌入式浏览器1108(而不是安全网关1120)可以(例如,经由策略存储或本地存储的策略)访问策略1122,并将策略1122应用于链接1112。

安全网关1120(和/或嵌入式浏览器1108)可以在预览引擎1116呈现预览(或打开链接)之前和/或在检测用户动作之前执行基于策略的访问控制。安全网关1120(和/或嵌入式浏览器1108)可以在本文描述的任何组件访问与链接相关联的任何页面之前应用策略。安全网关1120(和/或嵌入式浏览器1108)可以应用策略1122作为保护和安全措施。安全网关1120(和/或嵌入式浏览器1108)可以使用策略1122来识别页面的各种标识符、方面或特性(例如,url、地址、域名、安全设置)。策略1122可以列出、列举、分类或以其他方式识别批准和/或未批准的页面或应用。例如,批准的页面和应用的列表可以是预先配置的、可定制的等等。

安全网关1120可以基于页面的标识符、方面或特性来识别该页面是否是批准的页面。在安全网关1120(和/或嵌入式浏览器1108)将页面识别为已批准的情况下,安全网关1120(和/或嵌入式浏览器1108)可以允许嵌入式浏览器1108访问链接(例如,通过向嵌入式浏览器1108提供指示允许嵌入式浏览器1108访问链接1112的标识符或指示)。如果安全网关1120(和/或嵌入式浏览器1108)将页面识别为未批准,则安全网关1120(和/或嵌入式浏览器1108)可以拒绝(例如,阻止)嵌入式浏览器1108访问链接。因此,如果安全网关1120(和/或嵌入式浏览器1108)应用策略1122并确定该页面被批准,则嵌入式浏览器(例如,预览引擎1116)可以访问该链接的页面。

在一些实施例中,系统1100可以包括文件共享应用1124。文件共享应用1124可以被设计或实现为存储链接(或文件或其他页面),以供用户在以后的日期进行后续访问。附加地或可替代地,文件共享应用1124可以被设计或实现为基于相应的用户动作向其他用户提供链接(或文件或其他页面)(例如,以用于用户之间的共享)。在该示例中,用户可以选择将链接1112共享给另一用户的选项(例如,因为用户认为另一用户可能对链接1112的内容感兴趣)。链接1112可以被提供给具有与另一用户相关联的凭证(例如,具有电子邮件地址、用户名)的文件共享应用1124。另一用户可以接收指示链接1112已经被用户共享的指示。另一用户可以向文件共享应用1124提供认证令牌(例如,登录信息),然后可以访问链接1112。

当检测到链接1112上的用户动作(例如,预定义的或其他方式)时,预览引擎1116可以被设计或实现为呈现用于预览链接1112、共享链接1112或保存链接1112(例如,作为web链接或书签)等的选项。该选项可以被呈现为用户界面1114的一部分。在其他实施例中,预览区域1118内的预览可以包括允许保存或共享链接1112的选项的机制(例如,按钮或可选菜单)。

嵌入式浏览器1108的预览引擎1116可以被设计或实现为识别用户动作以选择将链接1112保存(或共享)到文件共享应用1124的选项。嵌入式浏览器1108可以响应于接收到选项的选择而将链接1112保存到文件共享应用1124。文件共享应用1124可以从预览引擎或嵌入式浏览器接收与链接1112相关联的地址和与用户相关联的认证令牌。这里描述的认证令牌可以类似于上述在嵌入式网络浏览器1108上呈现网络应用1110之前用于认证用户的认证令牌。在一些实施例中,地址和认证令牌可以从预览引擎1116传送到文件共享应用1124。在其他实施例中,地址和认证令牌可以从(或经由)服务器1102(例如,工作空间服务器)传送到文件共享应用1124。

用户可以(例如,经由客户机应用1106,经由另一装置)访问文件共享应用1124。用户可以将用户的认证令牌提供给文件共享应用1124,并且可以选择所保存的链接1122。然后,用户可以预览该链接(如上所述),或者例如使用网络应用1110或嵌入式浏览器打开该链接。

参考图12,其描绘了用于在网络应用中提供链接的预览的方法的一个实施例的流程图。该方法的功能可以使用本文结合图1-11详细描述的组件来实现或由其执行。简言之,客户机应用可以提供对网络应用的访问(1200)。嵌入式浏览器可以显示链接(1205)。嵌入式浏览器可以识别链接上的用户动作(1210)。预览引擎可以提供链接的预览(1215)。

现在参考操作(1200),并且在一些实施例中,客户机应用可以提供对网络应用的访问。在一些实施例中,客户机应用可以是本机的或安装在客户机装置上,并且可以在客户机装置上执行。客户机应用可以经由客户机应用的嵌入式浏览器提供对网络应用的访问。该网络应用可以托管在一个或多个服务器上,并且可以具有经由与一个或多个服务器建立的供应会话而供应给嵌入式浏览器的用户界面。在一些实施例中,嵌入式浏览器可以例如经由程序代码或脚本插入被集成在客户机应用内。嵌入式浏览器可以与客户机应用集成,以确保与网络应用相关的流量通过客户机应用路由和/或在客户机应用中进行处理,这可以为客户机应用提供流量的实时可见性(例如,当通过客户机应用进行解密时)、以及用户交互和行为。例如,嵌入式浏览器可以与客户机应用集成,以通过本机或本地地允许(例如,使用嵌入式浏览器的特征)经由客户机应用访问的网络应用的ui中的链接的预览来改善用户体验。当经由(由客户机应用和嵌入式浏览器共享的)用户界面请求网络应用,并通过嵌入式浏览器在同一用户界面内呈现时,嵌入式浏览器可以为用户提供无缝体验。当用户选择或以其他方式访问网络应用时,客户机应用可以打开、发起或以其他方式启动嵌入式浏览器。附加地或可替代地,当用户打开客户机应用时,客户机应用可以自动地打开、发起或以其他方式启动嵌入式浏览器。

用户可以通过选择在客户机应用的嵌入式浏览器上呈现的图标来访问网络应用。网络应用可以被安装、执行、托管和/或位于远离客户机装置的服务器上。用户可以向服务器提供认证令牌,以访问网络应用。认证令牌可以用于确定用户是否被授权访问网络应用。当用户被授权(如由服务器确定)时,可以经由客户机应用的嵌入式浏览器访问网络应用。在一些实施例中,可以在嵌入式浏览器上供应和/或呈现用于网络应用的用户界面。

在一些实施例中,虚拟输送代理(诸如以上至少参考图4和图8描述的远程会话代理)可以在服务器和客户机装置之间建立连接。虚拟输送代理可以体现在客户机应用和/或服务器内。虚拟输送代理可以支持远程协议(例如,hdx或ica)。虚拟输送代理可以根据诸如rdp、alp、rfb协议和ica协议的任何种类的协议来建立供应或输送会话。在一些实施例中,虚拟输送代理可以为客户机装置的用户建立供应或输送会话以访问网络应用。例如,虚拟输送代理可以在由(图4和图8的)网络代理412建立的安全连接(例如,vpn)之内或之上建立供应或输送会话。

现在参考操作(1205),并且在一些实施例中,嵌入式浏览器可以显示链接。在一些实施例中,客户机应用的嵌入式浏览器可以在网络应用的用户界面内显示链接。该链接可以位于在嵌入式浏览器上呈现、显示或展现的用户界面内。该链接可以是到网页的链接(例如,web链接)、到本地或可下载页面的链接、当前在嵌入式浏览器中打开的同一页面的一部分等。作为示例,网络应用可以是电子邮件交换应用(类似于microsoftoutlook)。该链接可以显示在发送给用户的电子邮件内。该链接可以将用户引导到包括各种内容的另一页面(诸如网页)。在某些情况下,该链接可以具有与用户界面内的其他文本不同的字体特性(例如,颜色、带下划线的、加粗的)。另外,该链接可以合并、列举或显示地址(例如,超文本传输协议或安全超文本传输协议地址)。在一些实施例中,该链接可以被合并至或对应于图标。在这些情况的每一个中,用户可以根据文本的各种特性来识别链接。

在一些实施例中,嵌入式浏览器(或安全网关)可以应用各种策略来确定链接是否可以被用户预览,这将在下面更详细地讨论。在链接不可用于预览的情况下,该链接可以以与预览可用的链接不同的方式(例如,以不同的颜色、字体、斜体)进行显示。然后,用户可以在预览可用的链接和预览不可用的链接之间进行区分。

现在参考操作(1210),并且在一些实施例中,嵌入式浏览器可以检测或识别在链接上采取或执行的用户动作。在一些实施例中,客户机应用的预览引擎可以识别在嵌入式浏览器上显示的链接上的用户动作(例如,用户动作的发生或执行)。预览引擎可以包括检测由用户提供的各种dom事件(例如,鼠标dom事件、键盘dom事件)的dom事件监听器。dom事件监听器可以将dom事件识别为用户动作。因此,预览引擎可以基于相应的dom事件来识别链接上的用户动作。用户动作可以包括悬停在链接上、选择(或点击)链接等。

预览引擎可以监视链接上的特定或预定义的用户动作。例如,当用户悬停在链接上时,预览引擎可以发起该链接的预览,而当用户(例如,通过点击)选择链接时,预览引擎可以打开该链接。作为另一个示例,当用户右键点击链接时,预览引擎可以发起预览,而当用户左键点击链接时,预览引擎可以打开该链接。这些用户动作中的每一个都可以由预览引擎检测,并且预览引擎可以根据检测到的用户动作来执行各种动作或步骤。

在一些实施例中,预览引擎可以使安全网关在链接上应用策略,以确定是否允许嵌入式浏览器提供预览。在其他实施例中,嵌入式浏览器可以(例如,从策略存储或本地存储的策略)检索策略。在这些实施例中,嵌入式浏览器可以将策略应用于链接以确定是否允许嵌入式浏览器提供预览。安全网关(或嵌入式浏览器)可以使用该策略来确定与链接相关联的页面是批准的页面还是允许的页面(或包括任何类型或形式的允许的内容和/或资源)。安全网关(或嵌入式浏览器)可以识别与链接相关联的各种特性、方面或标识符。策略可以包括各种批准的页面、内容、资源等。安全网关(或嵌入式浏览器)可以基于标识符来确定与链接相关联的页面是否符合该策略(例如,页面是否是批准的页面,内容是否是批准的内容,页面是否使用批准的资源)。在预览引擎使安全网关(或嵌入式浏览器)在链接上应用策略的实施例中,预览引擎可以响应于从安全网关接收到允许嵌入式浏览器提供预览的指示而提供链接的预览。

在安全网关或嵌入式浏览器确定可能无法预览链接的情况下(例如,由于页面/内容/资源未批准),预览引擎可能会忽略、禁用、否定、阻止或以其他方式拒绝用户动作。附加地或可替代地,预览引擎可以使指示预览不可用的弹出窗口或其他指示被显示。在其他情况下,预览引擎可以禁用该链接,使得该链接与用户界面的其他部分不可区分(例如,与用户界面中的其他文本相同的字体特性),从而防止用户在链接上执行或尝试执行用户动作(例如,发起预览)。

现在参考操作(1215),并且在一些实施例中,预览引擎可以提供链接的预览。在一些实施例中,客户机应用的预览引擎可以响应于(例如,在操作1210处)所识别的用户动作来提供预览。预览引擎可以通过在嵌入式浏览器的预览区域中呈现或显示预览来提供预览。

预览可以是在用户打开链接时提供给用户的页面的至少一部分。在一些实施例中,预览可以包括当打开链接时提供给用户的整个页面。在其他实施例中,预览可以小于当打开链接时提供给用户的整个页面(例如,仅页面的文本、页面的上部)。例如,预览引擎可以发起与链接相关联的页面的部分检索。部分检索可以是页面的概要或片段。预览引擎可以从缓存的数据或直接从链接的源中检索预览。例如,预览引擎可以从与链接相关联的页面访问数据,并以预览格式(而不是在嵌入式浏览器外部的新的页面或选项卡中打开链接)将数据提供给用户。然后,用户可以在嵌入式浏览器内查看预览。在一些实施例中,预览引擎可以建立嵌入式浏览器的预览区域。当预览区域识别出链接上的用户动作时(例如,在操作1210处),预览引擎可以建立预览区域。预览引擎可以建立预览区域的位置、形状、大小和/或尺寸和/或预览区域的内容。

预览区域可以是嵌入式浏览器的新的浏览器窗口或选项卡。作为另一示例,预览区域可以是嵌入式浏览器的同一窗口内的弹出窗口。弹出窗口或预览区域可以覆盖当前窗口(例如,覆盖嵌入式浏览器的一部分)。另外,弹出窗口可以是嵌入式浏览器的当前窗口的指定部分,当用户发起预览时该指定部分未被使用。作为另一示例,嵌入式浏览器的窗口可以被扩展(例如,以具有增大的窗口大小)以适应嵌入式浏览器的同一窗口内的弹出窗口。在该示例中,用户界面的各个部分可以被移动以适应弹出窗口。例如,在用户界面被移动到窗口的左侧的情况下,窗口可以扩展到更大的大小,并且可以在窗口的右侧内呈现包括预览的弹出窗口。因此,预览引擎可以确定窗口(或选项卡、弹出窗口等)将位于嵌入式浏览器内的位置。

在某些实施例中,预览引擎可以在预览区域内提供、检索、访问、选择或建立预览的内容。预览引擎可以访问与链接相关联的地址(例如,url或ip地址)以识别或访问与链接相关联的页面。例如,嵌入式浏览器的预览引擎可以响应于经由网络应用在链接上的用户动作来访问链接的页面。预览引擎可以在预览区域内呈现页面的至少一些内容(例如,缓存的数据、来自主机服务器的数据、来自源的数据)。

在一些实施例中,预览引擎可以例如响应于在预览上执行的用户动作而在预览区域内对预览执行各种动作。例如,预览引擎可以滚动预览、调整预览的大小、终止预览等。用户可以在预览区域内提供用户动作。预览引擎可以识别用户动作(类似于上述用于识别用户动作的方式)。预览引擎可以例如识别用户动作以在预览区域内滚动预览(例如,向下滚动)。随后,预览引擎可以根据用户动作来移动在预览区域中预览的页面的一部分(例如,在预览区域内提供页面的下部,在预览区域内提供页面中的后续文本)。另外,预览引擎可以例如识别用于调整预览的大小(例如,放大预览)的用户动作。然后,预览引擎可以根据用户动作(例如,相对于嵌入式浏览器的窗口放大预览区域,缩小嵌入式浏览器并扩展预览区域)来改变预览区域的大小(并相应地改变预览的大小)。然后,预览引擎可以从预览区域内的页面提供更多内容。在一些实施例中,预览引擎可以提供预览区域内的文本的增大的文本大小。另外,预览引擎可以例如识别用于终止预览的用户动作。终止预览的用户动作可以是例如不再悬停在链接上,选择与终止预览相关联的关闭按钮等。预览引擎可以将这些用户动作与终止预览相关联。当预览引擎检测到这些用户动作时,预览引擎随后可以关闭嵌入式浏览器中的预览区域。在终止预览之后,预览引擎可以扩展嵌入式浏览器的当前窗口的大小,或者以其他方式将当前窗口恢复为正常(例如,不具有预览区域)。然后,网络应用的用户界面可以返回到例如操作(1205)处所示的用户界面。

在一些实施例中,嵌入式浏览器可以访问链接的页面,以在网络应用的用户界面内进行呈现。嵌入式浏览器可以响应于经由网络应用打开链接的用户动作而访问该页面。嵌入式浏览器可以将用于经由网络应用打开链接的用户动作与用于预览链接的用户动作区分开。例如,预览引擎可以将悬停在链接上与预览链接的用户动作相关联,并且预览引擎可以将(例如,通过点击)选择链接与打开链接相关联。当用户选择链接时,预览引擎可以在网络应用内打开链接,并且当用户悬停在链接上时,预览引擎可以在预览区域内提供预览。在一些实施例中,用户可以在预览页面之前提供打开页面的用户动作(例如,在例如操作(1205)处所示的网络应用的用户界面上)。就这一点而言,用户可以直接打开页面而不预览页面。在一些实施例中,用户可以在用户在预览区域内预览链接之后提供打开链接的用户动作。例如,预览可以包括允许用户使用网络应用打开页面的按钮、选项卡或其他指示或选项。预览引擎可以检测或以其他方式注册选择用于利用网络应用打开链接的选项的用户动作。然后,预览引擎可以打开与网络应用内的链接相对应的页面。在另一个示例中,用户可以终止预览(如上所述),并(例如,通过点击)选择链接以利用网络应用打开链接。用户可以在预览区域中呈现预览之后,经由网络应用打开页面。

在一些实施例中,嵌入式浏览器可以将链接保存到文件共享应用。可以经由嵌入式浏览器(在同一客户机装置的客户机应用或不同客户机装置的客户机应用内)访问文件共享应用。用户可以提供保存链接的用户动作(例如,选择保存链接按钮或选项)。嵌入式浏览器可以检测或以其他方式注册保存链接的用户动作。嵌入式浏览器可以向文件共享应用提供例如与链接相关联的地址(以及与用户相关联的认证令牌,诸如登录信息,如用户名等)。在其他实施例中,地址和认证令牌可以从(或经由)服务器1102(例如,工作空间服务器)传送到文件共享应用1124。文件共享应用可以基于认证令牌将链接与与用户相关联的帐户、简档、文件等一起保存。链接可以保存为web链接或书签。用户随后可以通过向文件共享应用提供认证令牌来访问所保存的链接。认证令牌可以根据所提供的认证令牌来确认用户的身份。然后,用户可以访问由用户保存的链接。例如,用户可以预览链接(如上所述),或者使用网络应用1110或嵌入式浏览器打开链接。

应当理解,上述系统可以提供那些组件中的任一个或每一个的多个组件,并且这些组件可以在独立的机器上或者在一些实施例中在分布式系统中的多个机器上提供。可以通过使用编程和/或工程技术来生产软件、固件、硬件或其任何组合,将上述系统和方法实现为方法、设备或制造产品。另外,可以将上述系统和方法作为嵌入在一个或多个制造产品之上或之中的一个或多个计算机可读程序来提供。本文所使用的术语“制造产品”旨在包括可从一个或多个计算机可读装置可访问的或嵌入其中的代码或逻辑、固件、可编程逻辑、存储装置(例如eeprom、rom、prom、ram、sram等)、硬件(例如集成电路芯片、现场可编程门阵列(fpga)、专用集成电路(asic)等)、电子装置、计算机可读非易失性存储单元(例如cd-rom、usb闪存、硬盘驱动器等)。可以从文件服务器访问该制造产品,该文件服务器经由网络传输线、无线传输介质、在空间传播的信号、无线电波、红外信号等提供对计算机可读程序的访问。该制造产品可以是闪存卡或磁带。该制造产品包括硬件逻辑以及嵌入在计算机可读介质中的由处理器执行的软件或可编程代码。通常,计算机可读程序可以以任何编程语言(例如lisp、perl、c、c++、c#、prolog)或任何字节代码语言(例如java)实现。软件程序可以作为目标代码存储在一个或多个制造产品之上或之中。

尽管已经描述了方法和系统的各种实施例,但是这些实施例是示意性的,并且绝不限制所描述的方法或系统的范围。相关领域的技术人员可以在不脱离所描述的方法和系统的最广泛范围的情况下,对所描述的方法和系统的形式和细节进行改变。因此,本文描述的方法和系统的范围不应受到任何示意性实施例的限制,而应根据所附权利要求及其等同物来定义。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1