经由网关的企业系统认证和授权的制作方法

文档序号:12168342阅读:363来源:国知局
经由网关的企业系统认证和授权的制作方法与工艺

本申请要求于2014年4月30日提交的标题为“Enterprise System Authentication and Authorization via Gateway”的待审美国申请号为14/265,661的优先权。

领域

本文所述的方面大体上涉及企业系统内的客户端设备的认证。更具体地,本文的特定方面提供经由网关设备来认证和授权在企业系统中的客户端设备的技术。

背景

移动设备例如智能电话、个人数字助理、平板电脑、其它类型的移动和非移动计算设备正变得越来越普遍。越来越多的人为了各种目的在个人和商业环境中使用移动设备。随着更多的人使用移动设备,越来越多的数据经由与这些移动设备相关的网络被传输。这可导致增加的抖动并可引起在网络资源上的耗竭。

请求访问企业资源的客户端设备在被允许访问由该资源提供的任何服务之前必须首先在该资源上进行认证。通常,客户端设备必须在被授予访问之前为了认证和授权而与资源进行通信。此外,客户端设备可能每当它请求访问企业资源时需要被认证。这些频繁的通信提供客户端设备上的消耗,并导致浪费的网络资源。

因此,存在对减少在客户端设备和企业系统之间的不断交谈的量的需要。

概述

下文呈现了本文描述的各个方面的简化概述。该概述并不是广泛的综述,并且并不旨在确定关键或重要元素或描绘权利要求的范围。下面的概述仅仅以简化的形式呈现一些概念,作为对下面提供的更详细描述的引导序言。

为了克服在以上描述的现有技术中的限制并且克服在阅读和理解本说明书时将明显的其它限制,本文描述的方面针对提供经由网关设备来认证并授权在企业系统中的客户端设备的方法。

本公开的一个或多个方面提供一种方法,该方法可包括:通过计算设备将由客户端设备传输的用于访问企业资源的请求传递到企业设备;以及通过计算设备将包括与客户端设备相关的认证凭证且还包括对与企业资源相关的授权信息的请求的信息传输到企业设备。该方法还可包括通过计算设备并响应于与客户端设备相关的认证凭证的成功认证而接收与企业资源相关的授权信息;以及通过计算设备将由客户端设备传输的用于对访问企业资源的请求连同所接收的与企业资源相关的授权信息传输到企业资源。该方法还可包括基于所接收的与企业资源相关的授权信息,通过计算设备将与所请求的企业资源相关的信息传递到客户端设备。

本公开的一个或多个方面提供一种系统,该系统包括:至少一个处理器;以及存储指令的至少一个存储器,指令当由至少一个处理器执行时使系统执行一个或多个步骤。系统可执行的步骤可包括通过计算设备将由客户端设备传输的用于访问企业资源的请求传递到企业设备;以及通过计算设备将包括与客户端设备相关的认证凭证且还包括对与企业资源相关的授权信息的请求的信息传输到企业设备。该步骤还可包括通过计算设备并响应于与客户端设备相关的认证凭证的成功认证而接收与企业资源相关的授权信息;以及通过计算设备将由客户端设备发送的对访问企业资源的请求连同所接收的与企业资源相关的授权信息传输到企业资源。该步骤还可包括基于所接收的与企业资源相关的授权信息,通过计算设备将与所请求的企业资源相关的信息传递到客户端设备。

本公开的一个或多个方面提供一个或多个非暂时性计算机可读存储介质,其具有存储在其上的指令,该指令当由一个或多个处理器执行时可促使一个或多个处理器执行步骤。一个或多个处理器执行的步骤可包括通过计算设备将由客户端设备传输的用于访问企业资源的请求传递到企业设备;以及通过计算设备将包括与客户端设备相关的认证凭证且还包括对与企业资源相关的授权信息的请求的信息传输到企业设备。该步骤还可包括通过计算设备并响应于与客户端设备相关的认证凭证的成功认证而接收与企业资源相关的授权信息;以及通过计算设备将由客户端设备发送的对访问企业资源的请求连同所接收的与企业资源相关的授权信息传输到企业资源。该步骤还可包括基于所接收的与企业资源相关的授权信息,通过计算设备将与所请求的企业资源相关的信息传递到客户端设备。

得益于以下进一步详细讨论的本公开,将理解这些和附加的方面。

附图简述

可以通过参考考虑到附图的以下的描述来获得本文所描述的方面的更完整的理解及其优点,其中相似的参考数字指示相似的特征,并且在附图中:

图1描绘可根据本文描述的一个或多个说明性方面使用的说明性计算机系统架构。

图2描绘可根据本文描述的一个或多个说明性方面使用的说明性远程访问系统架构。

图3描绘说明性企业移动性管理系统。

图4描绘另一个说明性企业移动性管理系统。

图5描绘示出根据本文描述的一个或多个特征使用网关设备来认证并授权在企业系统中的客户端设备的示例过程的说明性流程图。

图6描绘示出根据本文描述的一个或多个特征使用网关设备来认证并授权在企业系统中的客户端设备的流程示意图的说明性系统。

图7描绘根据本文所述的一个或多个特征的认证服务的说明性示意图。

图8描绘根据本文所述的一个或多个特征使用网关设备和多个商店来认证并授权在企业系统中的客户端设备的说明性系统。

详细描述

在各种实施方式的以下描述中,参考了以上确认并形成本文一部分的附图,并且其中通过说明的方式示出了各种实施方式,其中本文描述的各方面可被实践。应当理解,可使用其它实施方式且可做出结构性和功能性的修改,而不偏离本文所述的范围。各种方面能够是其它实施方式并且能够以各种不同的方式被实践或实施。

作为对下面更详细描述的主题的一般介绍,本文描述的各方面针对在移动计算设备处使用受管移动应用来控制对在企业计算系统处的资源的远程访问。访问管理器可执行验证过程,其确定请求对企业资源的访问的移动应用自身是否被准确地识别并且在安装在移动计算设备处之后是否没有被随后改变。以这种方式,访问管理器可确保请求对企业资源的访问的移动应用可被信任并且不试图规避用于保护那些企业资源的安全机制。因此,与企业相关的个体可有利地在他们的个人移动设备处使用企业资源。

应当理解,本文使用的措辞和术语是为了描述的目的,并且不应被视为限制。相反,本文使用的短语和术语将被给出它们最广义的解释和含义。“包括(including)”和“包含(comprising)”及其变型的使用意欲包括在其后列出的项及其等价物以及附加的项及其等价物。术语“安装”、“连接”、“耦合”、“定位”、“接合”以及类似术语的使用意欲包括直接和间接安装、连接、耦合、定位和接合两者。

计算架构

可在各种不同的系统环境(包括独立的、联网的、远程访问(亦称远程桌面)、虚拟化的和/或基于云的环境等)中利用计算机软件、硬件和网络。图1示出可用于在独立和/或联网的环境中实现本文所述的一个或多个说明性方面的系统架构和数据处理设备的一个示例。各个网络节点103、105、107和109可经由广域网(WAN)101(例如互联网)来互连。还可以或可选地使用其它网络,包括私有内联网、公司网络、LAN、城域网(MAN)无线网络、个人网络(PAN)等。网络101是为了说明的目的,并可以用更少或附加的计算机网络来代替。局域网(LAN)可具有任何已知的LAN拓扑中的一个或多个,并可使用各种不同的协议中的一个或多个,例如以太网。设备103、105、107、109和其它设备(未示出)可经由双绞线、同轴电缆、光纤、无线电波或其它通信介质连接到网络中的一个或多个。

如在本文中使用和在附图中描绘的术语“网络”不仅指的是其中远程存储设备经由一个或多个通信路径耦合在一起的系统,而且还指的是可不时地耦合到具有存储能力的这样的系统的独立设备。因此,术语“网络”不仅包括“物理网络”,而且包括由位于全部物理网络上的归属于单个实体的数据组成的“内容网络”。

组件可包括数据服务器103、网络服务器105和客户端计算机107、109。数据服务器103提供数据库的总访问、控制和管理以及用于执行本文描述的一个或多个说明性方面的控制软件。数据服务器103可连接到网络服务器105,用户根据需要通过网络服务器105与数据交互并且获得数据。可选地,数据服务器103可用作网络服务器本身并直接连接到互联网。数据服务器103可通过网络101(例如互联网)经由直接或间接连接或经由一些其它网络连接到网络服务器105。用户可以使用远程计算机107、109与数据服务器103进行交互,例如经由通过网络服务器105托管的一个或多个在外部暴露的网站连接到数据服务器103的网络浏览器。客户端计算机107、109可与数据服务器103配合使用以访问存储在其中的数据或可用于其它目的。例如,从客户端设备107用户可使用如本领域已知的互联网浏览器或通过执行在计算机网络(例如互联网)上与网络服务器105和/或数据服务器103进行通信的软件应用来访问网络服务器105。

服务器和应用可在相同的物理机器上组合,并保持独立的虚拟或逻辑地址,或可驻留在独立的物理机器上。图1仅仅示出可被使用的网络架构的一个示例,并且本领域中的技术人员将认识到,所使用的特定网络架构和数据处理设备可改变,且对它们提供的功能是次要的,如在本文进一步所述的。例如,由网络服务器105和数据服务器103提供的服务可以组合在单个服务器上。

每个组件103、105、107、109可以是任何类型的已知计算机、服务器或数据处理设备。数据服务器103例如可包括控制速率服务器103的整体操作的处理器111。数据服务器103还可包括随机存取存储器(RAM)113、只读存储器(ROM)115、网络接口117、输入/输出接口119(例如,键盘、鼠标、显示器、打印机等)和存储器121。输入/输出(I/O)119可包括用于读取、写入、显示和/或打印数据或文件的各种接口单元和驱动器。存储器121还可存储用于控制数据处理设备103的整体操作的操作系统软件123、用于指示数据服务器103执行本文所述的方面的控制逻辑125和提供辅助、支持和/或可以或不可以结合本文所述的方面使用的其它功能的其它应用软件127。控制逻辑在本文也可被称为数据服务器软件125。数据服务器软件的功能可以指的是基于被编码到控制逻辑内的规则自动做出的、由将输入提供到系统内的用户手动做出的操作或决定和/或基于用户输入(例如查询、数据更新等)的自动处理的组合。

存储器121还可存储在本文所述的一个或多个方面的执行中使用的数据,包括第一数据库129和第二数据库131。在一些实施方式中,第一数据库可包括第二数据库(例如,作为单独的表格、报告等)。也就是说,根据系统设计,信息可存储在单个数据库中或分离成不同的逻辑、虚拟或物理数据库。设备105、107、109可具有与关于设备103描述的类似或不同的架构。本领域中的技术人员将认识到,如本文所述的数据处理设备103(或设备105、107、109)的功能可以遍布多个数据处理设备,例如以跨多个计算机而分配处理负载,以基于地理位置、用户访问级别、服务质量(QoS)等来分离事务。

一个或多个方面可体现在由如本文所述的一个或多个计算机或其它设备执行的计算机可用或可读数据和/或计算机可执行指令中,例如在一个或多个程序模块中。通常,程序模块包括当由计算机或其它设备中的处理器执行时执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等。可以以随后被编译用于执行的源代码编程语言编写或可以以脚本语言例如(但不限于)超文本标记语言(HTML)或可扩展标记语言(XML)编写模块。计算机可执行指令可存储在计算机可读介质例如非易失性存储设备上。可利用任何合适的计算机可读存储介质,包括硬盘、CD-ROM、光学存储设备、磁存储设备和/或其任何组合。此外,代表如本文所述的数据或事件的各种传输(非存储)介质可以以通过信号传导介质(例如,金属线、光纤)和/或无线传输介质(例如,空气和/或空间)传播的电磁波的形式在源和目的地之间传递。本文所述的各种方面可被体现为方法、数据处理系统或计算机程序产品。因此,各种功能可全部或部分地体现在软件、固件和/或硬件或硬件等价物(例如集成电路、现场可编程门阵列(FPGA)等)中。特定的数据结构可用于更有效地实现本文所述的一个或多个方面,并且这样的数据结构被设想在本文所述的计算机可执行指令和计算机可用数据的范围之内。

进一步参考图2,本文描述的一个或多个方面可在远程访问环境中实现。图2描绘包括可根据本文描述的一个或多个说明性方面使用的在说明性计算环境200中的通用计算设备201的示例系统架构。通用计算设备201可被用作配置成提供用于客户端访问设备的虚拟机的单服务器或多服务器桌面虚拟化系统(例如,远程访问或云系统)中的服务器206a。通用计算设备201可具有用于控制服务器的整体操作的处理器203及其相关组件,包括RAM 205、ROM 207、I/O模块209和存储器215。

I/O模块209可包括鼠标、键盘、触摸屏、扫描仪、光学阅读器和/或触针(或其它输入设备),通用计算设备201的用户可通过这些输入设备提供输入,并且还可包括用于提供音频输出的扬声器和用于提供文本、视听和/或图形输出的视频显示设备中的一个或多个。软件可存储在存储器215和/或其它储存器内以向处理器203提供用于将通用计算设备201配置到专用计算设备内以便执行如本文所述的各种功能的指令。例如,存储器215可存储由计算设备201使用的软件,例如操作系统217、应用程序219和相关联的数据库221。

计算设备201可在支持与一个或多个远程计算机例如终端240(也被称为客户端设备)的连接的联网环境中操作。终端240可以是包括以上关于通用计算设备103或201描述的很多或所有元件的个人计算机、移动设备、膝上型计算机、平板计算机或服务器。在图2中描绘的网络连接包括局域网(LAN)225和广域网(WAN)229,但还可以包括其它网络。当在LAN网络环境中使用时,计算设备201可通过网络接口或适配器223连接到LAN 225。当在WAN网络环境中使用时,计算设备201可包括调制解调器227或用于在诸如计算机网络230(例如,互联网)的WAN 229上建立通信的其它广域网接口。将认识到,所示的网络连接是说明性的,并且可以使用在计算机之间建立通信链路的其它手段。计算设备201和/或终端240还可以是包括各种其它组件(例如,电池、扬声器和天线(未示出))的移动终端(例如,移动电话、智能电话、个人数字助理(PDA)、笔记本电脑等)。

本文描述的方面还可以利用众多其它通用或专用计算系统环境或配置来操作。可适合于与本文描述的方面一起使用的其它计算系统、环境和/或配置的示例包括但不限于个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人计算机(PC)、小型计算机、大型计算机、包括以上系统或设备中的任一个的分布式计算环境等。

如图2所示,一个或多个客户端设备240可与一个或多个服务器206a-206n(通常在本文被称为“服务器206”)进行通信。在一个实施方式中,计算环境200可包括安装在服务器206和客户机240之间的网络器具。网络器具可管理客户端/服务器连接,并且在某些情况下可以在多个后端服务器206中对客户端连接进行负载均衡。

在一些实施方式中,客户机240可被称为单个客户机240或单组客户机240,同时服务器206可被称为单个服务器206或单组服务器206。在一个实施方式中,单个客户机240与多于一个服务器206进行通信,而在另一个实施方式中,单个服务器206与多于一个客户机240进行通信。在又一个实施方式中,单个客户机240与单个服务器206进行通信。

在一些实施方式中,客户机240可以通过以下非穷举术语中的任一个来引用:客户机、客户端、客户端计算机、客户端设备、客户端计算设备、本地机器、远程机器、客户端节点、端点或端点节点。在一些实施方式中,服务器206可以通过以下非穷举术语中的任一个来引用:服务器、本地机器、远程机器、服务器群或主计算设备。

在一个实施方式中,客户机240可以是虚拟机。虚拟机可以是任何虚拟机,而在一些实施方式中,虚拟机可以是由1型或2型管理程序(例如由思杰系统、IBM、VMware开发的管理程序)或任何其它管理程序管理的任何虚拟机。在一些方面中,虚拟机可由管理程序管理,而在一些方面中,虚拟机可由在服务器206上执行的管理程序或在客户端240上执行的管理程序管理。

一些实施方式包括客户端设备240,其显示由在服务器206或其它远程定位的机器上远程地执行的应用生成的应用输出。在这些实施方式中,客户端设备240可执行虚拟机接收机程序或应用以在应用窗口、浏览器或其它输出窗口中显示输出。在一个示例中,应用是桌面,而在其它示例中,应用是生成或呈现桌面的应用。桌面可包括为操作系统的实例提供用户界面的图形壳,其中本地和/或远程应用可被集成。如本文使用的应用是在操作系统(并且,可选地,也有桌面)的示例已被加载之后执行的程序。

在一些实施方式中,服务器206使用远程表示协议或其它程序来将数据发送到瘦客户端或在客户端上执行的远程显示应用,以呈现由在服务器206上执行的应用生成的显示输出。瘦客户端或远程显示协议可以是协议的以下非穷举列表中的任一个:由佛罗里达州劳德代尔堡的思杰系统公司开发的独立计算架构(ICA)协议;或由华盛顿州雷德蒙德的微软公司制造的远程桌面协议(RDP)。

远程计算环境可包括多于一个服务器206a-206n,使得服务器206a-206n例如在云计算环境中在逻辑上被分组在一起成为服务器群206。服务器群206可包括在地理上分散而并且在逻辑上分组在一起的服务器206或彼此靠近定位同时在逻辑上分组在一起的服务器206。在一些实施方式中,在服务器群206内的地理上分散的服务器206a-206n可以使用WAN(广域)、MAN(城域)或LAN(局域)进行通信,其中不同的地理区域可被表征为:不同的洲;洲的不同区域;不同的国家;不同的州;不同的城市;不同的园区;不同的房间;或前述地理位置的任何组合。在一些实施方式中,服务器群206可以作为单个实体来管理,而在其它实施方式中,服务器群206可包括多个服务器群。

在一些实施方式中,服务器群可包括执行实质上类似类型的操作系统平台(例如,WINDOWS、UNIX、LINUX、iOS、ANDROID、SYMBIAN等)的服务器206。在其它实施方式中,服务器群206可包括执行第一类型的操作系统平台的第一组的一个或多个服务器和执行第二类型的操作系统平台的第二组的一个或多个服务器。

服务器206可根据需要被配置为任何类型的服务器,例如,文件服务器、应用服务器、网络服务器、代理服务器、器具、网络器具、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、安全套接字层(SSL)VPN服务器、防火墙、网络服务器、应用服务器或被配置为主应用服务器、执行活动目录的服务器或执行提供防火墙功能、应用功能或负载均衡功能的应用加速程序的服务器。还可使用其它服务器类型。

一些实施方式包括第一服务器106a,其从客户机240接收请求、将请求转发到第二服务器106b并用来自第二服务器106b的响应对由客户机240生成的请求作出响应。第一服务器106a可获取可用于客户机240的应用的枚举以及与托管在应用的枚举内识别的应用的应用服务器206相关联的地址信息。第一服务器106a然后可以使用网络接口呈现对客户端的请求的响应,并直接与客户端240进行通信以向客户端240提供对所识别的应用的访问。一个或多个客户端240和/或一个或多个服务器206可通过网络230(例如,网络101)传输数据。

图2示出说明性桌面虚拟化系统的高级架构。如所示,桌面虚拟化系统可以是单服务器或多服务器系统或云系统,其包括配置成向一个或多个客户端访问设备240提供虚拟桌面和/或虚拟应用的至少一个虚拟化服务器206。如本文使用的,桌面指的是其中一个或多个应用可被托管和/或执行的图形环境或空间。桌面可包括为操作系统的实例提供用户界面的图形壳,其中本地和/或远程应用可被集成。应用可包括在操作系统(并且,可选地,还有桌面)的实例已被加载之后执行的程序。操作系统的每个实例可以是物理的(例如,每设备一个操作系统)或虚拟的(例如,在单个设备上运行的OS的很多实例)。每个应用可在本地设备上执行或在远程定位的设备上执行(例如,远程的)。

企业移动性管理架构

图3表示用于在BYOD环境中使用的企业移动性技术架构300。架构使客户端设备(例如,移动设备)302的用户能够访问来自移动设备302的企业或个人资源并且使用移动设备302以用于个人使用。用户可使用由用户购买的移动设备302或由企业提供给用户的移动设备302来访问这样的企业资源304或企业服务308。用户可以仅为了商业使用或为了商业和个人使用而利用移动设备302。移动设备可运行iOS操作系统和Android操作系统等。企业可选择实现策略以管理移动设备302。策略可通过防火墙或网关以移动设备可被识别、保护或安全验证并且被提供对企业资源的选择性或完全访问的方式来植入。策略可以是移动设备管理策略、移动应用管理策略、移动数据管理策略或移动设备、应用和数据管理策略的一些组合。通过移动设备管理策略的应用管理的移动设备304可被称为登记设备。

在一些实施方式中,移动设备的操作系统可分成受管分区310和非受管分区312。受管分区310可以具有应用于其以保护在受管分区上运行的应用和在受管分区中存储的数据的策略。在受管分区上运行的应用可以是安全应用。在其它实施方式中,所有的应用可根据与应用分开接收的一组一个或多个策略文件执行,并且当该应用在设备上执行时,其定义一个或多个安全参数、特征、资源限制和/或由移动设备管理系统执行的其它访问控制。通过根据它们各自的策略文件进行操作,每个应用可被允许或限制与一个或多个其它应用和/或资源通信,从而创建虚拟分区。因此,如本文使用的,分区可以指存储器的物理划分的部分(物理分区)、存储器的逻辑划分的部分(逻辑分区)和/或作为如本文所述的跨多个应用的一个或多个策略和/或策略文件执行的结果而创建的虚拟分区(虚拟分区)。换句话说,通过在受管应用上执行策略,那些应用可只限于能够与其它受管应用和可信企业资源通信,从而创建非受管应用和设备不可进入的虚拟分区。

安全应用可以是电子邮件应用、网络浏览应用、软件即服务(SaaS)访问应用、Windows应用访问应用等。安全应用可以是安全本机应用314、由安全应用启动器318执行的安全远程应用322、由安全应用启动器318执行的虚拟化应用326等。安全本机应用314可由安全应用封装器320封装。安全应用封装器320可包括当安全本机应用在设备上执行时在移动设备302上执行的集成策略。安全应用封装器320可包括将在移动设备302上运行的安全本机应用314指向在企业处托管的资源的元数据,安全本机应用314可能需要所述资源来完成在执行安全本机应用314时所请求的任务。由安全应用启动器318执行的安全远程应用322可在安全应用启动器应用318内执行。由安全应用启动器318执行的虚拟化应用326可利用在移动设备302上、在企业资源304处等的资源。通过由安全应用启动器318执行的虚拟化应用326在移动设备302上使用的资源可包括用户交互资源、处理资源等。用户交互资源可用于收集并传输键盘输入、鼠标输入、摄像机输入、触觉输入、音频输入、视觉输入、手势输入等。处理资源可用于呈现用户界面,处理从企业资源304接收的数据等等。通过由安全应用启动器318执行的虚拟化应用326在企业资源304处使用的资源可包括用户界面生成资源、处理资源等。用户界面生成资源可用于装配用户界面、修改用户界面、刷新用户界面等等。处理资源可用于创建信息、读取信息、更新信息、删除信息等等。例如,虚拟化应用可记录与图形用户界面(GUI)相关联的用户交互,并将它们传递到服务器应用,其中服务器应用将使用用户交互数据作为对在服务器上操作的应用的输入。在该布置中,企业可选择在服务器侧上保持应用以及与该应用相关联的数据、文件等。虽然企业可选择根据本文中的原理通过保护一些应用来“调动”它们以用于部署在移动设备上,但是该布置还可被选择用于特定应用。例如,虽然一些应用可被保护用于在移动设备上使用,但其它应用可能未准备或不适于部署在移动设备上,因此企业可选择通过虚拟化技术来向移动用户提供对未准备的应用的访问。作为另一个示例,企业可以具有带有大而复杂的数据集的大型复杂应用(例如,材料资源规划应用),其中对于移动设备定制应用将是非常困难或相反不期望的,因此企业可选择通过虚拟化技术来提供对应用的访问。作为又一示例,企业可具有保持可被企业视为甚至对于安全的移动环境是过于敏感的高度安全的数据(例如,人力资源数据、客户数据、工程数据)的应用,因此企业可选择使用虚拟化技术来允许对这样的应用和数据的移动访问。企业可以选择在移动设备上提供完全安全的和完善功能性的应用两者以及虚拟化应用以允许对被视为在服务器侧上更适当地操作的应用的访问。在实施方式中,虚拟化应用可以在安全存储位置中的一个中的移动电话上存储一些数据、文件等。例如,企业可以选择允许特定信息存储在电话上同时不允许其它信息存储在电话上。

结合虚拟化应用,如本文所述,移动设备可具有被设计成呈现GUI并且然后记录与GUI的用户交互的虚拟化应用。应用可将用户交互传递到服务器侧,以供服务器侧应用作为与应用的用户交互使用。作为响应,在服务器侧上的应用可将新的GUI传输回到移动设备。例如,新的GUI可以是静态页面、动态页面、动画等,从而提供对远程定位的资源的访问。

安全应用可以访问存储在移动设备的受管分区310中的安全数据容器328中的数据。在安全数据容器中被保护的数据可由安全封装的应用314、由安全应用启动器318执行的应用、由安全应用启动器318执行的虚拟化应用326等访问。存储在安全数据容器328中的数据可包括文件、数据库等。存储在安全数据容器328中的数据可包括限于特定的安全应用330、在安全应用332之间共享的数据等。限于安全应用的数据可包括安全通用数据334和高度安全数据338。安全通用数据可使用强加密形式(诸如高级加密标准(AES)128位加密等),而高度安全数据338可使用非常强的加密形式(诸如AES 256位加密)。在接收到来自设备管理器324的命令后,可从设备删除存储在安全数据容器328中的数据。安全应用可具有双模式选项340。双模式选项340可以向用户呈现在非安全或非受管模式中操作安全应用的选项。在非安全或非受管模式中,安全应用可访问存储在移动设备302的非受管分区312上的非安全数据容器342中的数据。存储在非安全数据容器中的数据可以是个人数据344。存储在非安全数据容器342中的数据也可由在移动设备302的非受管分区312上运行的非安全应用访问。当存储在安全数据容器328中的数据从移动设备302被删除时,存储在非安全数据容器342中的数据可保持在移动设备302上。企业可能想要从移动设备删除由企业拥有、特许或控制的选择的或所有的数据、文件和/或应用(企业数据),同时留下或以其它方式保留由用户拥有、特许或控制的个人数据、文件和/或应用(个人数据)。该操作可被称为选择性擦除。利用根据本文描述的方面布置的企业和个人数据,企业可以执行选择性擦除。

移动设备可连接到在企业处的企业资源304和企业服务308、连接到公共互联网348等。移动设备可通过虚拟专用网络连接来连接到企业资源304和企业服务308。虚拟专用网络连接(也被称为微VPN或应用特定VPN)可以是特定于移动设备上的特定的应用350、特定的设备、特定的安全区域等。例如,在电话的安全区域中的封装的应用中的每一个可通过应用特定的VPN来访问企业资源,使得对VPN的访问将基于与应用相关联的属性可能结合用户或设备属性信息而被授予。虚拟专用网络连接可运载微软交换(Microsoft Exchange)流量、微软活动目录流量、超文本传输协议(HTTP)流量、超文本传输协议安全(HTTPS)流量、应用管理流量等。虚拟专用网络连接可支持和实现单点登录认证过程354。单点登录过程可允许用户提供认证凭证的单个集合,其然后由认证服务358进行验证。认证服务358然后可以授权用户访问多个企业资源304,而不需要用户向每个单独的企业资源304提供认证凭证。

虚拟专用网络连接可由接入网关360建立和管理。接入网关360可包括管理、加速和提高企业资源304到移动设备302的传递的性能增强特征。接入网关还可以重新路由从移动设备302到公共互联网348的流量,使移动设备302能够访问在公共互联网348上运行的公共可用且非安全的应用。移动设备可经由传输网络362连接到接入网关。传输网络362可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、专用网络等。

企业资源304可包括电子邮件服务器、文件共享服务器、SaaS应用、网络应用服务器、Windows应用服务器等。电子邮件服务器可包括交换服务器、Lotus Notes服务器等。文件共享服务器可包括ShareFile服务器等。SaaS应用可包括Salesforce等。Windows应用服务器可包括被构建以提供意欲在本地Windows操作系统上运行的应用的任何应用服务器等。企业资源304可以是基于场所的资源、基于云的资源等。企业资源304可由移动设备302直接访问或通过接入网关360来访问。企业资源304可由移动设备302经由传输网络362来访问。传输网络362可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、专用网络等。

企业服务308可包括认证服务358、威胁检测服务364、设备管理器服务324、文件共享服务368、策略管理器服务370、社交整合服务372、应用控制器服务374等。认证服务358可包括用户认证服务、设备认证服务、应用认证服务、数据认证服务等。认证服务358可使用证书。证书可由企业资源304等存储在移动设备302上。存储在移动设备302上的证书可存储在移动设备上的加密位置中,证书可以暂时存储在移动设备302上以用于在认证的时间使用等等。威胁检测服务364可包括入侵检测服务、未经授权的访问尝试检测服务等。未经授权的访问尝试检测服务可包括未经授权尝试访问设备、应用、数据等。设备管理服务324可包括配置、提供、安全性、支持、监控、报告和停止运作服务。文件共享服务368可包括文件管理服务、文件储存服务、文件协作服务等。策略管理器服务370可包括设备策略管理器服务、应用策略管理器服务、数据策略管理器服务等。社交整合服务372可包括联系人整合服务、协作服务、与社交网络(例如,Facebook、Twitter和LinkedIn)的整合等。应用控制器服务374可包括管理服务、提供服务、部署服务、分配服务、撤销服务、封装服务等。

企业移动性技术架构300可包括应用商店378。应用商店378可包括未封装的应用580、预封装的应用382等。应用可以从应用控制器374被填充于应用商店378中。应用商店378可通过接入网关360、通过公共互联网348等由移动设备302访问。应用商店可以被提供有直观并易于使用的用户界面。

软件开发工具包384可以通过封装如先前在本描述中描述的应用来给用户提供保护由用户选择的应用的能力。已经使用软件开发工具包384来封装的应用然后可以通过使用应用控制器374将其填充在应用商店378中而使其可用于移动设备302。

企业移动性技术架构300可包括管理和分析能力388。管理和分析能力388可提供与如何使用资源、多久使用资源一次等相关的信息。资源可包括设备、应用、数据等。如何使用资源可包括哪些设备下载哪些应用、哪些应用访问哪些数据等等。多久使用资源一次可以包括多久下载一次应用、特定的数据集已被应用访问多少次等等。

图4是另一个说明性企业移动性管理系统400。为了简单起见,以上参考图3所述的移动性管理系统300的一些组件已经被省略。在图4中描绘的系统400的架构在很多方面类似于以上参考图3所述的系统300的架构并且可以包括以上未提到的附加的特征。

在这种情况下,左手边表示具有客户端代理404的登记客户端设备(例如,移动设备)402,其与网关服务器406(其包括接入网关和应用控制器功能)进行交互以访问各种企业资源408和服务609,诸如,如以上右手边所示的Exchange、Sharepoint、公共密钥基础设施(PKI)资源、Kerberos资源、证书发布服务。虽然没有具体示出,但是移动设备402还可以与企业应用商店(店面(StoreFront))交互以用于应用的选择和下载。

客户端代理404充当在企业数据中心中托管的Windows应用/桌面的UI(用户界面)媒介,其使用高清用户体验(HDX)/ICA显示远程协议来访问。客户端代理404还支持在移动设备402上的本机应用(诸如本机iOS或Android应用)的安装和管理。例如,在以上附图中所示的受管应用410(邮件、浏览器、封装应用)都是在设备上本地执行的本机应用。客户端代理404和这种架构的应用管理框架起作用以提供策略驱动的管理能力和特征,诸如到企业资源/服务408的连接性和SSO(单点登录)。客户端代理404处理对企业的主用户认证、通常对具有到其它网关服务器组件的SSO的接入网关(AG)的认证。客户端代理404从网关服务器406得到策略以控制在移动设备402上的受管应用410的行为。

在本机应用410和客户端代理404之间的安全进程间通信(IPC)链路412表示管理通道,其允许客户端代理供应将通过应用管理框架414"封装"每个应用执行的策略。IPC通道412还允许客户端代理404供应能够实现到企业资源408的连接和SSO的凭证和认证信息。最后,IPC通道412允许应用管理框架414调用由客户端代理404实现的用户界面功能,例如在线认证和离线认证。

在客户端代理404和网关服务器406之间的通信本质上是来自封装每个本机受管应用410的应用管理框架414的管理通道的延伸。应用管理框架414请求来自客户端代理404的策略信息,客户端代理404转而从网关服务器406请求该策略信息。应用管理框架414请求认证,并且客户端代理404登录到网关服务器406的网关服务部分(也被称为NetScaler接入网关)。客户端代理404还可调用在网关服务器406上的支持服务,其可产生获得本地数据仓库416的加密密钥的输入材料或提供可以使得对PKI受保护资源能够直接认证的客户端证书,如下面更充分解释的。

更详细地,应用管理框架414“封装”每个受管应用410。这可以经由明确的构建步骤或经由构建后处理步骤来合并。应用管理框架414可在应用410的首次启动时与客户端代理404“配对”以初始化安全IPC通道并得到用于该应用的策略。应用管理框架414可执行在本地应用的策略的相关部分,诸如客户端代理登录依赖关系和限制可如何使用本地OS服务或本地OS服务可如何与应用410交互的遏制策略中的一些。

应用管理框架414可使用由客户端代理404在安全IPC通道412上提供的服务来促进认证和内部网络访问。对于专用和共享数据仓库416(容器)的密钥管理还可由在受管应用410和客户端代理404之间的适当交互进行管理。仓库416可以只在在线认证之后是可用的,或可在离线认证之后变得可用的(如果策略允许的话)。仓库416的首次使用可能需要在线认证,并且离线访问可以限于至多在在线认证再次被要求之前的策略刷新周期。

对内部资源的网络访问可通过接入网关406从单独的受管应用410直接发生。应用管理框架414负责精心安排代表每个应用410的网络访问。客户端代理404可通过提供在线认证之后所获得的合适的时间限制次级凭证来促进这些网络连接。可以使用网络连接的多个模式,诸如反向web代理连接和端到端VPN式隧道418。

邮件和浏览器管理的应用410具有特殊状态并且可以利用一般可能不用于任意封装的应用的设施。例如,邮件应用可使用特殊的后台网络访问机制,其允许它在延长的时间段内访问Exchange而不需要完整的AG登录。浏览器应用可使用多个专用数据仓库来分隔不同种类的数据。

该架构支持各种其它安全特征的并入。例如,在某些情况下,网关服务器406(包括它的网关服务)将不需要验证活动目录(AD)密码。可以交给企业来判定是否将AD密码用作关于在一些情况下一些用户的认证因素。如果用户是在线的或离线的(即,连接到网络或未连接到网络),则可以使用不同的认证方法。

加强认证是特征,其中网关服务器406可识别被允许访问需要强认证的高度机密的数据(classified data)的受管本机应用410,并且确保对这些应用的访问仅在执行适当的认证之后被允许,即使这意味着在先前较弱级别的登录之后用户需要重新认证。

该解决方案的另一个安全特征是在移动设备402上的数据仓库416(容器)的加密。仓库416可被加密,使得包括文件、数据库和配置的所有设备上数据被保护。对于在线仓库,密钥可存储在服务器(网关服务器406)上,并且对于离线仓库,密钥的本地副本可由用户密码或生物特征验证保护。当数据本地存储在安全容器416中的设备402上时,优选的是使用AES256加密算法的最小值。

其它安全容器特征也可以被实现。例如,日志特征可以被包括,其中在应用410内发生的所有安全事件都被记录并报告给后端。可以支持数据擦除,例如,如果应用410检测到篡改,则相关联的加密密钥可以用随机数据被改写,不在文件系统上留下用户数据被破坏的暗示。屏幕截图保护是另一个特征,其中应用可防止任何数据存储在屏幕截图中。例如,密钥窗口的隐藏属性可被设置为是(YES)。这可使当前显示在屏幕上的任何内容被隐藏,其产生其中任何内容将正常存在的空白的屏幕截图。

本地数据传输可以被阻止,诸如通过防止任何数据被本地传输到应用容器之外,例如,通过将其复制或发送到外部应用。键盘缓存特征可操作来禁用敏感文本字段的自动校正功能。SSL证书验证可以是可操作的,因此应用特别地验证服务器SSL证书来代替其被存储在密钥链中。可以使用加密密钥生成特征,使得使用由用户提供的密码或生物特征数据(如果离线访问是需要的)来生成用于在设备上加密数据的密钥。如果不需要离线访问,则它可与随机生成的并存储在服务器侧上的另一个密钥进行异或。密钥导出功能可操作,使得从用户密码生成的密钥使用KDF(密钥导出功能,尤其是基于密码的密钥导出功能2(PBKDF2))而不是创建它的密码散列(cryptographic hash)。后者使密钥易受暴力破解或字典攻击的影响。

此外,可以在加密方法中使用一个或多个初始化向量。初始化向量将使相同加密的数据的多个副本产生不同的密码文本输出,防止重放攻击和密码分析攻击两者。如果用于加密数据的特定的初始化向量是未知的,则这还将阻止攻击者甚至使用被盗的加密密钥来解密任何数据。此外,可以使用认证然后解密,其中应用数据仅在用户在应用内认证之后才被解密。另一个特征可涉及存储器中的敏感数据,仅在其被需要时才可保持在存储器中(并且不在磁盘中)。例如,登录凭证可以在登录之后从存储器被擦除,并且加密密钥和objective-C实例变量内的其它数据不被存储,这是由于它们可被容易地引用。相反,存储器可以被手动分配以用于这些功能。

可以实现不活动超时,其中在策略定义的不活动周期之后,终止用户会话。

可以以其它方式防止应用管理框架414的数据泄露。例如,当应用410被置于后台中时,存储器可在预定(可配置的)时间段之后被清除。当作为后台时,可以拍下应用的最后显示的屏幕的快照以加快前台设置过程。屏幕截图可包含机密数据且因此应被清除。

另一个安全特征涉及使用OTP(一次性密码)420而不使用访问一个或多个应用的AD(活动目录)422密码。在一些情况下,一些用户不知道(或不被允许知道)他们的AD密码,所以这些用户可使用OTP 420进行认证,例如通过使用类似于SecurID的硬件OTP系统(OTP也可由不同的供应商来提供,诸如Entrust或Gemalto)。在一些情况下,在用户使用用户ID进行认证之后,文本被发送到具有OTP 420的用户。在一些情况下,这可以仅为了在线使用而实现,其中提示是单个字段。

离线密码可以被实现用于这些应用410的离线认证,对于应用410,离线使用经由企业策略被允许。例如,企业可能希望StoreFront以这种方式被访问。在这种情况下,客户端代理404可以要求用户设置自定义离线密码并且不使用AD密码。网关服务器406可提供策略以控制并执行关于诸如由标准Windows服务器密码复杂性要求所描述的密码的最小长度、字符类组成、使用年限的密码标准,虽然这些要求可被修改。

另一个特征涉及用于某些应用410的客户端侧证书作为次级凭证的启用(用于经由应用管理框架微VPN特征访问PKI受保护的网络资源的目的)。例如,应用可利用这样的证书。在这种情况下,可支持使用ActiveSync协议的基于证书的认证,其中来自客户端代理404的证书可由网关服务器406获取,并在密钥链中使用。每个受管应用可具有通过在网关服务器406中定义的标签识别的一个相关联的客户端证书。

网关服务器406可与企业专用网络服务进行交互以支持客户端证书的发布,以允许相关的受管应用对内部PKI受保护资源进行认证。

客户端代理404和应用管理框架414可以被增强以支持获得并使用客户端证书,以用于对内部PKI受保护网络资源进行认证。可支持多于一个证书,例如以匹配各种级别的安全和/或分离要求。该证书可由邮件和浏览器管理的应用使用并最终由任意封装的应用使用(假定那些应用使用网络服务型通信模式,其中应用管理框架调解https请求是合理的)。

在iOS上的应用管理客户端证书支持可依赖于在每个使用周期内将公共密钥加密标准(PKCS)12BLOB(二进制大对象)导入到每个受管应用中的iOS密钥链内。应用管理框架客户端证书支持可使用具有私有存储器内密钥存储的HTTPS实现。客户端证书将从不存在于iOS密钥链中,并且除了可能在被强保护的“仅在线”数据值中以外将不被持久保存。

相互SSL还可以被实现以通过要求移动设备402对企业进行认证来提供附加的安全性,并且反之亦然。也可实现用于对网关服务器406认证的虚拟智能卡。

有限和完整的Kerberos支持都可以是附加的特征。完整的支持特征涉及使用AD密码或信任的客户端证书来执行对活动目录(AD)422的完整Kerberos登录并获得Kerberos服务票证来对HTTP协商认证挑战作出响应的能力。有限的支持特征涉及在Citrix接入网关企业版本(AGEE)中的约束委派,其中AGEE支持调用Kerberos协议转换,所以它可响应于HTTP协商认证挑战而得到并使用Kerberos服务票证(受到约束委派)。这种机制在反向网络代理(又称作公司虚拟专用网络(CVPN))模式中以及当http(但不是https)连接在VPN和微VPN模式中被代理时工作。

另一个特征涉及应用容器锁定和擦除,这可在检测到越狱或获得管理员权限时自动发生,并且作为来自管理控制台的推送命令而发生,并且甚至在应用410不运行时还可包括远程擦除功能。

可支持企业应用商店和应用控制器的多站点架构或配置,其允许用户在出现故障的情况下由几个不同的位置中的一个来服务。

在一些情况下,受管应用410可以被允许经由API(示例OpenSSL)访问证书和私有密钥。企业的信任的受管应用410可以被允许利用应用的客户端证书和私有密钥来执行特定的公共密钥操作。诸如当应用行为类似浏览器并且不需要证书访问时,当应用读取“我是谁”的证书时,当应用使用证书来构建安全会话令牌时,以及当应用使用私有密钥以用于重要数据(例如,事务日志)的数字签名或用于临时数据加密时,各种使用情况可被识别并且相应地处理。

说明性实施方式

图5是说明性流程图以及图6和图7是说明性示意图,其全部示出使用网关设备来认证并授权在企业系统中的客户端设备的特征、方法和系统的各种示例。下面参考图5-7所述的特征和方法可由计算设备或设备的组合(诸如图1-4所示的各种计算设备和系统)执行,并且可以在各种不同类型的企业系统(诸如图3和图4所示的说明性系统)或任何其它企业系统(即,当提供对资源的访问时可能需要认证的任何计算设备)内实现。下面参考图5-7所述的特征、步骤和方法可以以任何顺序执行,并且可以省略和/或添加一个或多个特征、步骤或方法。图5-7涉及在网关上和在企业系统上认证客户端设备。图5-7还涉及授权客户端设备和/或网关设备对企业系统资源的访问。例如,在终端240或客户端设备302或402处的用户可通过网关360或406与企业系统进行通信,可提供认证凭证以验证用户或客户端设备的身份,并且然后可以请求并访问企业系统的各种资源和服务。图5-7可使用各种协议,诸如安全断言标记语言(SAML),其为用于交换认证和授权信息的基于XML的方法。

参考图5-7所述的各种实施方式和示例可包括用于对在企业系统中的用户/客户端设备的认证和资源访问控制的几个特征和潜在优点。如本文中更详细描述的,某些实施方式可允许客户端设备(例如,受管移动设备、受管桌面设备等)减少其接收并传输到企业系统和资源的通信量。所公开的实施方式允许通过减少客户端设备必须进行的调用(例如,HTTP请求)的数量来减少来去客户端设备的抖动,从而释放网络资源。所公开的实施方式允许在网关设备上对客户端设备会话认证,并且允许网关设备在与客户端设备请求的企业资源通信时充当客户端设备的代理。因此,网关设备(和/或其任何相关联的组件)可代表客户端设备与所请求的企业资源协商,直到企业资源授予/允许对客户端设备和/或网关的访问为止。在协商期间,网关设备可传输调用、请求、响应等。网关还可以获取/访问/请求认证信息(例如,密码、登录凭证等)和/或授权信息(例如,cookie、令牌等),并可将该获取的信息传输到企业资源。根据所公开的实施方式,客户端设备可以不需要接收、传输或以其他方式处理认证信息(例如,令牌),而是该认证信息可由网关设备维护、保持或以其他方式管理。这可以减少在客户端设备上要求/所需的处理和/或存储的量,因为一些令牌的大小可以是4KB,并且减少在网络上传输的通信量。虽然令牌可以是本文公开的授权信息的示例,但是可以根据所公开的方面使用任何其它类型的授权信息。

根据本文描述的一个或多个公开的特征,所公开的实施方式允许实现各种因素的平衡,诸如将协议有效负载处理与认证令牌逻辑进行分离。所公开的实施方式(例如,网关实施方式)可包括数据包引擎核心、用数据包引擎核心实现或以其他方式与数据包引擎核心相关联,其可以以状态机驱动的分组输入到分组输出形式实现。根据一些方面,数据包引擎核心可以以诸如C(尽管可以使用其它语言)的编程语言来实现。数据包引擎可以实现可在开放系统互连(OSI)模型中实现的处理逻辑。OSI模型定义了可以在七个层中实现网络协议的网络结构。七个层可以包括物理层(L1)、数据链路层(L2)、网络层(L3)、传输层(L4)、会话层(L5)、表示层(L6)和应用层(L7)。在OSI模型中,控制可以从一层传递到下一层,以应用层(L7)开始。所公开的实施方式可以在L2-L7层中的任一个上实现处理逻辑,并且可以在这些层中遵守一个或多个网络标准(或视情况选择性地从一个或多个网络标准偏离)。

所公开的实施方式可以实现许多功能,其可能以其他方式由操作系统中的单独组件执行。这些功能可包括TCP/IP和网络接口处理。所公开的实施方式可以避免可能增加开销的很多更高级编程构造(例如,线程和中断)。所公开的实施方式可以操纵各种协议有效负载。根据一些方面,这些协议可以包括可在各种产品(诸如企业资源和服务)中实现的网络服务协议。根据一些方面,这些协议可以是XML或JSON文档,例如,其可以经由HTTP传送/传输。

根据一些方面,所公开的网关特征可以在OSI模型的应用层(L7)中实现,该应用层是最接近终端用户或客户端的层。例如,所公开的网关实施方式可被插入到协议流内,以便保持在可被客户端侧和服务器侧(例如,企业侧)理解和/或使用的任何定义的语义内。这可导致很多增值操作,例如减少对客户端的抖动、在高级协议之间的转换或桥接(例如,将遗留协议映射到后继协议)、将(例如,不同类型和/或版本的)多个资源目录聚合成单个资源目录(其可以是虚拟目录),等等。

所公开的实施方式允许认证处理发生在例如网关的数据包引擎中。这可允许可被明确定义的且很少改变的公共动作的最佳性能,同时使认证协议的更复杂的部分与为标准操作系统环境编写的其它组件(例如,现成的库、java servlet等)一起被处理。例如,高级协议有效负载的操作可由在所公开的网关实施方式上托管的java servlet环境处理。java servlet环境可以与网关数据包引擎核心互连,从而允许认证上下文在java servlet和网关数据包引擎核心中共享,这允许最佳功能。根据一些方面,java servlet可以独立于网关的更新来被更新,从而允许升级/更新在不同的时间在java servlet或网关上实现而不影响其它的性能。

图5是示出根据本文描述的一个或多个特征使用网关设备来认证并授权在企业系统中的客户端设备的示例过程500的说明性流程图。在一个或多个实施方式中,图5所示的过程和/或其一个或多个步骤可由计算设备(例如,客户端设备,诸如终端240、客户端设备302和/或登记移动设备402;网关设备,诸如接入网关360、网关服务器406和/或云网关;和/或企业服务器机器或设备;等等)执行。在其它实施方式中,图5所示的过程和/或其一个或多个步骤可以体现在被存储在计算机可读介质(诸如非暂时性计算机可读存储器)中的计算机可执行指令中。可选地或另外,在过程500中的任何步骤可以在任何客户端设备、网关设备或企业服务器机器上执行。

过程500可以以步骤502开始,其中诸如客户端设备302的客户端设备可以发起认证请求。认证请求可以是客户端设备302使用在客户端设备302上运行的安全和/或不安全应用(诸如控制台应用、移动应用、网络浏览器、基于网络的应用或任何其它应用)来登录到企业系统的尝试。客户端设备302的用户可使用客户端设备302的输入接口/设备来将认证凭证输入到客户端设备302中。例如,用户可使用键盘或触摸屏来将用户标识符和/或密码输入到客户端设备302中。认证凭证可被加密和/或安全地传输到企业系统的网关(例如,网关360)。

网关360可以是安全服务器,并且可被实现为一个或多个单独的计算设备。可选地,网关360可在服务器或提供资源或服务的其它计算设备(例如,电子邮件服务器、网络应用服务器等)内实现。网关360可支持各种附加的认证技术,例如基于密码的、基于令牌的(例如,智能卡、磁条卡等)、生物特征(例如,指纹、声纹、虹膜或视网膜扫描)等。在步骤502中传输的认证信息可以是单因子或多因子认证信息。例如,在多因子认证中,用户可提供密码和用户的智能卡,但可能在单因子认证中仅需要提供这些中的一个。认证还可包括多个认证步骤(例如,挑战问题)和/或相互认证技术。

在步骤504,网关360可从客户端设备302接收登录请求和授权信息。网关360可将授权信息存储在例如本地存储器中。网关360然后可以确定登录请求是否是来自客户端设备302的新的登录请求。例如,网关360可确定该请求是否是与企业资源或服务的现有的通信会话的一部分和/或与之相关联(例如,通过检查客户端设备的会话信息,诸如cookie,其将在下面进一步解释)。如果登录请求是针对现有的会话,则网关360可自动认证客户端设备。如果登录请求是新请求,则网关360然后可以通过试图使用所接收的认证信息认证客户端设备来确定客户端设备是否被授权登录到网关/企业系统。在一些实施方式中,网关360可将该认证信息传输到认证服务,其可以基本上与认证服务358类似和/或相同,并且可以或可以不被包括在网关设备360中。例如,网关360可以通过将所接收的认证凭证呈现给活动目录(诸如AD 422)来认证客户端设备,活动目录可以对认证凭证的准确度和/或有效性进行裁决。

在步骤506,在客户端设备302的成功认证之后,网关360然后可以将用信号表示成功认证(例如,coolie)的数据传输到客户端设备302。例如,cookie可以是从网关360发送并存储在客户端设备302上的一小块数据。Cookie可以是HTTP cookie、网络cookie、浏览器cookie等。Cookie可识别客户端设备302的当前会话(诸如登录会话)。会话cookie通常可以是当前调用者(例如,客户端设备)与先前授权的调用者相同的短寿命的证据。会话cookie通常可以是短寿命的,使得例如,如果客户端设备丢失或被盗,则攻击者不能继续登录网关/企业。在一些实施方式中,网关360可将期满失效附接到会话cookie和/或使之与会话cookie相关联。例如,cookie可具有5分钟的时间限制,使得在5分钟之后,当前登录会话可被禁用,并且客户端设备302可能需要随后登录回到网关360。在一些实施方式中,其它会话或认证信息可在认证之后从网关360传输到客户端设备302,诸如令牌。在一些实施方式中,可以通过检查消息的报头来识别客户端会话,消息的报头可包括会话标识信息。

在步骤508,客户端设备302可将用于访问企业资源或服务的请求(连同会话cookie一起)传输到企业系统。例如,在客户端设备302上运行的应用可从应用商店企业资源(例如,应用商店378)请求(例如,购买)受管应用。在一些实施方式中,网关360可从客户端设备302接收请求和会话cookie,检查会话cookie以确定客户端设备302是否在当前活动会话期间请求,并且可随后将请求(和会话cookie)传递到企业系统。在接收到请求之后,企业系统然后可以确定客户端设备或对企业资源的请求是否被授权,并从而有权访问所请求的企业资源。

例如,在企业系统准予客户端设备访问所请求的企业资源之前,企业系统可能需要附加的授权信息(诸如访问令牌)。因此,在一些实施方式中,如果网关360和/或客户端设备302已经具有访问令牌,则网关360和/或客户端设备302可以随请求来传输令牌,从而满足企业的授权要求。在其它实施方式中,网关360和/或客户端设备302可以没有或不知道需要哪个令牌来满足企业的授权要求,并且因此初始请求可以不包括企业的授权要求(例如,所需令牌)。在这种情况下,企业系统可拒绝对企业资源的初始请求,并且可将该拒绝传输到网关360。在一些实施方式中,企业系统可将HTTP 401未授权状态代码与拒绝一起传输到网关360。401拒绝消息可包括请求被拒绝的原因,或者包括企业资源在授权对该资源的访问之前需要什么授权信息。例如,拒绝(例如,在消息报头中)可说明请求应用必须是基于网络的应用(诸如浏览器),需要什么授权信息(例如,应用商店企业资源的令牌),调用者(例如,网关360)应在哪里查找授权信息(例如,对应用商店的令牌发放者服务进行调用以请求应用商店资源的令牌),调用者(例如,网关360)应调用企业资源的什么服务来登录/认证客户端设备(例如,对应用商店的登录服务进行调用以认证客户端设备302),等等。企业资源还可以将HTTP 300多选择状态代码传输到网关设备。300状态代码可向网关360指示登录到所请求的企业服务可用的登录/认证方法(例如,单点登录、密码、Kerberos、智能卡等)。

在步骤510,网关360可接收企业的响应(例如,请求的拒绝)以及企业系统和/或资源可传输的任何附加的信息(例如,401拒绝信息)。网关360然后可以检查该响应以确定请求被拒绝的原因以及需要什么信息来对拒绝作出响应,以便获得对所请求的企业资源的访问。在这个意义上,网关360可充当客户端设备302的代理。

在步骤512,基于对拒绝的检查,网关360可以向企业系统传输可满足企业系统或资源所需的认证信息的任何信息。根据一些方面,网关360可通过调用外部认证或声明转换服务来获得该信息(例如,代表客户端设备302),并随后将所获得的信息传输到企业系统。根据一些其它方面,由网关360传输的信息可包括本地存储在网关360上的任何信息。例如,在步骤504,网关360可将认证凭证(例如,登录名、密码、PIN等)存储在例如本地存储器中。另外,企业源可将使用单点登录(SSO)方法登录的选项传输到网关360(在步骤508)。在这种情况下,网关360可选择SSO登录方法并可将认证凭证与SSO登录请求一起传输到企业系统或源。在一些情况下,如果企业资源在拒绝中指示登录到企业资源的登录服务,则网关360可将该认证信息传输到企业资源的该登录服务。在一些情况下,登录服务可以是企业服务的认证服务的一部分,该认证服务可与认证服务358类似或相同。响应于接收到认证凭证连同所选择的登录方法,企业服务可认证网关360和/或客户端设备302。根据一些方面,如上面提到的,企业服务可包括授权服务358,其还可包括可认证网关360和/或客户端设备302的登录服务。

根据一些方面,网关360可以预期由客户端设备302传输(例如,在步骤508)的对企业资源的初始请求可被企业系统或资源拒绝。在这种情况下,网关360可以将认证凭证(和/或登录方法)添加到初始请求的传输,从而满足任何企业认证要求。

在步骤514,在将认证凭证传输到企业服务之后,网关360然后可以基于在企业的响应中传输的信息(例如,与401拒绝一起传输的信息)来检索访问企业服务需要的所需授权信息。例如,应用商店或应用控制器企业服务可以要求网关360在准予对该企业服务的访问之前传输/提供特定于该企业服务的一个或多个令牌。网关360可从各种源(诸如可存储所需令牌的外部服务器)获得令牌。在一些实施方式中,网关360可具有存储在本地存储器中的所需令牌,并可从该本地存储器中获取令牌。这可发生在网关可以例如在先前的或相关联的会话中或在当前会话中的早期先前获得并存储所需令牌时。

在一些情况下,网关360可从企业系统例如从可具有所需令牌的企业资源、服务和/或服务器获取令牌。在一些情况下,可从所请求的企业资源获取令牌。在这种情况下,企业资源可包括设计成发出令牌的服务(例如,令牌发放者),并且网关360可从该令牌发放者获取令牌。令牌发放者可以是企业资源的认证服务的一部分。令牌发放者还可与企业资源的登录服务进行通信,从而确定网关或客户端设备何时被企业资源认证。在一些情况下,令牌发放者可能需要在向网关360提供/传输令牌之前接收令牌,并且在这种情况下,企业资源可响应于网关360和/或客户端设备302的成功认证而将特定于令牌发放者的令牌传输到网关360。在其它情况下,网关360可从不同的或外部源(诸如服务器、会话数据库或本地存储器)获得令牌发放者所需的令牌。

在步骤516,网关360然后可以将任何所需的授权信息传输到企业系统或资源。例如,如果企业资源的令牌发放者需要令牌,则在获取令牌发放者的令牌之后,网关可将该令牌传输到令牌发放者。响应于此,令牌发放者然后可以将企业资源的令牌(例如应用商店或应用控制器资源的令牌)传输到网关(这也可在步骤514处执行)。在接收到应用商店的令牌之后,网关360然后可以将该令牌连同客户端设备对企业资源的访问的请求一起传输到企业系统或资源,从而满足所需的授权信息。在一些情况下,网关360可分开地传输所需的授权信息和客户端设备请求。

在步骤518,在接收到所需的授权信息(例如,所需的令牌)和客户端设备请求之后,企业系统和/或资源然后可以准予客户端设备302访问所请求的企业资源。例如,如果客户端设备302最初请求(例如,在步骤508)访问应用商店资源(例如,应用商店378)以获得受管应用(例如,预封装应用382),则在经历前面所述的步骤中的一个或多个之后,客户端设备302现在可以访问应用商店资源和受管应用。例如图3和图4所示,客户端设备302可经由网关360来访问企业资源。过程500然后可以在步骤520结束。

图6是示出根据本文描述的一个或多个特征使用网关设备来认证并授权在企业系统中的客户端设备的流程示意图的说明性系统600。在一个或多个实施方式中,图6所示的过程和/或其一个或多个步骤可由计算设备(例如,客户端设备,诸如终端240、移动设备302和/或登记移动设备402;网关设备,诸如接入网关360、网关服务器406和/或云网关;和/或企业服务器机器或设备;等等)执行。在其它实施方式中,图6所示的过程和/或其一个或多个步骤可以体现在被存储在计算机可读介质(诸如非暂时性计算机可读存储器)中的计算机可执行指令中。可选地或另外,在系统600中所示或关于系统600描述的任何步骤可在任何客户端设备、网关设备或企业服务器机器上执行。

系统600可包括客户端设备302。客户端设备302还可包括可由网关360已经提供给客户端设备302的cookie。网关360可响应于在网关360上对客户端设备302的成功认证而将该cookie传输到客户端设备302(例如,如以上在步骤502、504和506中类似地所示的)。在一些实施方式中,网关360可以不建立与客户端设备302的会话,并且可以不将cookie传输到客户端设备302。例如,当初始认证(例如,步骤502和504)和对企业资源或服务的请求(例如,步骤508)是对企业资源或服务的较大或其它请求的一部分时,可以不建立会话。

系统600还可包括企业资源606(例如应用商店378或应用控制器374)。资源606可包括商店服务608,例如预封装应用382或未封装应用380。资源606还可包括认证服务610。注意到,每当资源606在本文中被详述为执行方法、步骤、动作、功能等或具有在资源606上执行的方法、步骤、动作、功能等时,可包括资源606和/或与资源606相关联的任何部分、元件、服务等可执行这样的方法、步骤、动作、功能等或具有在其上执行的这样的方法、步骤、动作、功能等。

图7是认证服务610的说明性示意图。认证服务610可与认证服务358相同或类似。认证服务610可包括令牌发放者服务702和登录服务704。令牌发放者702可以为各种企业/资源服务(诸如商店服务608)以及未明确示出的附加服务发出授权信息(诸如令牌)。登录服务704可包括认证/登录方法/类型的各种选项,例如密码登录706a、Kerberos登录706b、智能卡登录706c和访问闸单点登录(AG SSO)706d。注意到,可以根据本文公开的方面实现任何其它登录/认证方法。

返回参考图6,在步骤618,在客户端设备302已经在网关360上认证之后,客户端设备302可以“做某事”,其可以是对访问服务608的请求(例如,从应用商店获得应用)。该请求可由资源606(例如,在所请求的服务608处)接收。资源606和/或服务608然后可以确定客户端设备是否在资源606(和/或企业系统)上被认证。在一些实施方式中,客户端设备302可以先前登录到资源606中并且可以已经在企业上被认证。如图6所示,资源606可能需要在允许客户端设备302访问商店服务608之前认证客户端设备302。

在步骤620,资源606然后可以将访问拒绝响应传输到网关360。该访问拒绝响应可以是HTTP响应,例如401未授权响应状态代码。该响应还可指示附加的信息,诸如指令,可能需要什么授权信息,可能需要什么认证,在哪里获得/获取授权信息,从什么组件获得/获取授权信息,等等。在该示例中,拒绝可指示可能需要特定的授权信息(例如,资源606/商店服务608的令牌和令牌发放者702的令牌)来访问资源以及从哪里得到这些令牌。如图6所示,资源606可指示网关360与令牌发放者进行对话。

在步骤622,在接收到在资源606的响应中传输的任何信息之后,网关然后可以将针对访问资源606所需的令牌的GET请求(例如,HTTP请求)传输到令牌发放者702或认证服务610(或其它组件)。

在步骤624,网关360可被认证服务610拒绝访问,因为网关360(例如,充当客户端设备302的代理)还没有被认证服务610认证。因此,认证服务610可使用拒绝(例如,401响应)对网关360的GET请求作出响应。该拒绝可包括信息,例如关于如何对资源606进行认证的指令,向哪里发送认证凭证的位置,等等。在该示例中,拒绝可向网关360通知要与哪些组件或服务通信,以便认证网关360(例如,充当客户端设备302的代理)。如图6所示,认证服务610可通知网关360与登录704对话。

在步骤626,在接收到在认证服务610的响应中传输的任何信息之后,网关360然后可以针对令牌发放者702的令牌做出对登录704的GET请求。注意到,网关360可以使用在例如步骤620(其中资源606指示网关360得到资源606的令牌和令牌发放者702的令牌)中从资源606传输的信息/指令来对令牌发放者702做出该请求。

在步骤628,在接收到得到令牌发放者702的令牌的请求之后,登录704然后可以将可包括例如关于如何认证的指令、用于认证的方法、用于认证的选项等的响应传输到网关360。该响应可以是HTTP 300多选择响应。在该示例中,响应可包括登录方法,例如密码706a、Kerberos 706b、智能卡706c和AG SSO 706d。注意到,可实现任何其它认证/登录方法。

在步骤630,在接收到登录方法响应之后,网关360然后可以选择这些方法中的一个。如图6所示,网关360可选择SSO登录方法,并且可以(例如,在没有传输任何认证凭证/信息的情况下)试图登录到认证服务610。

在步骤632,认证服务610/登录704可接收登录尝试,并且因为没有认证凭证与登录尝试一起被发送,认证服务610/登录704可拒绝登录请求/尝试。认证服务610/登录704然后可以将拒绝(例如,401响应)发送到网关。该拒绝可包括信息,例如请求被拒绝的原因,使用该方法需要什么来登录,等等。在这种情况下,拒绝可指示网关360没有随同登录请求发送任何认证证书。

在步骤634,在从认证服务610/登录704接收到响应之后,网关360然后可以传输网关360可访问和/或(例如,从本地存储器、从网关360被认证的服务器/设备等)先前获取的任何认证凭证。这样的认证凭证可包括当客户端设备302向网关360(例如,步骤502和504)认证(例如,登录到)自身时由客户端设备302传输到网关360的认证凭证。

在步骤636,在接收到认证凭证之后,认证服务610/登录704然后可以处理认证凭证以确定客户端设备302是否可以在资源606上被认证。如果认证是成功的,则认证服务610/登录704可向网关360发送确认响应(例如,HTTP 200响应),通知网关360它(例如,充当客户端设备302的代理)已在资源606上被认证。

在步骤638,网关360然后可以将OK响应(例如,HTTP 200响应)发送到认证服务610/登录704,OK响应可指示网关360现在知道它(例如,充当客户端设备302的代理)在资源606上被认证。

在步骤640,认证服务610(和/或登录704)然后可以向网关360传输访问令牌发放者702所需的任何授权信息(例如,令牌642)。

在步骤644,在接收到令牌642之后,网关360然后可以向认证服务610/令牌发放者702发送针对令牌发放者702的授权信息(例如,令牌642)连同对例如在步骤618由客户端设备302请求的企业资源606/服务608的令牌的GET请求。

在步骤646,认证服务610可接收令牌发放者702的授权信息(例如,令牌642)连同对企业服务608的令牌的GET请求。在使用令牌642成功授权之后,令牌发放者702然后可以将所请求的授权信息(例如,令牌648)传输到网关360。

在步骤650,在接收到令牌648之后,网关360然后可以向企业服务608重新发送访问服务608的请求(例如,从应用商店获得应用的请求)连同令牌650。

在步骤652,企业服务608可接收对服务608的授权信息(例如,令牌650)连同访问服务608的请求。在使用令牌650成功授权之后,企业服务608然后可以向网关360和客户端设备302准予访问。例如,商店服务608可将所请求的应用发送到客户端设备302。在步骤654,客户端设备302可通过接收客户端设备302的请求的结果来接收对企业服务608的访问(例如,经由网关360)。

在一些实施方式中,当客户端设备302在网关360上和资源606上被认证之后,客户端设备302可做出对资源606(例如,对相同或另一个企业/资源服务)的访问的后续请求。因此,如果该请求在活动会话期间(例如,cookie仍然是有效的和/或未到期的)进行,则网关360在接收到该后续请求之后可获取或添加所请求的企业/资源服务的授权信息(例如,令牌、cookies等),并且将该请求连同相应的授权信息一起传输到资源606。在一些情况下,网关360可从外部源(诸如企业资源606、其它企业资源或其它服务器/计算设备)获取授权信息。例如,如果客户端设备302已经在资源606上被认证,则网关360可以针对由客户端设备302作出的对资源606所提供的附加服务的任何后续请求从令牌发放者702获取相应的/所需的授权信息(例如,令牌)。在一些情况下,网关360可以具有先前从资源606获取/获得的授权信息(例如,令牌),并可将其存储在本地。在这些情况下,如果客户端设备302请求对应于网关360先前获得的令牌的服务,则网关360可能不需要执行以上描述的一些或全部协商步骤。相反,网关360可从它的本地储存器获取所需令牌,并将所获取的令牌和请求传输到资源606。

图8示出根据本文描述的一个或多个特征使用网关设备和多商店来认证并授权在企业系统中的客户端设备的说明性系统800。系统800可包括客户端设备302、网关设备360、多商店组件810、企业资源374(例如,应用控制器)和企业资源378(例如,应用商店)。根据一些方面,多个企业资源、端点和/或产品可被聚合成多商店组件810,多商店组件810可与网关360集成在一起、作为网关360的一部分或以其他方式与网关360相关联。根据一些方面,多商店810然后可以代表客户端302与多个单独的企业资源进行通信。

例如,在接收到例如本文所述(例如,在图5-7中)的相应的/所需的授权信息(例如,令牌)之后,网关360然后可以将应用商店378的资源/应用和应用控制器374的资源/应用聚合成多商店。在这种意义上,聚合的资源可包括重写或以其他方式实现这些资源作为网关代理的服务(例如VPN、cVPN等),使得这些资源配对成在多商店中的单个资源/服务。例如,如果在应用商店378中存在图像服务,则图像服务可在多商店810上实现,使得多商店810可以与应用商店378中的图像服务进行通信。同样,如果在应用控制器374中存在图像服务,则在多商店810上实现的图像服务还可包括与应用控制器374中的图像服务通信的能力。因此,在多商店/网关和应用控制器374与应用商店378之间的通信可以与如以上关于网关360和图5-7所述的通信相同或相似,但可能由于在多商店/网关上实现的代理的服务而具有增加的协议知识。

根据一些方面,如果客户端设备302做出可能需要访问多于一个企业资源(例如,应用商店378和应用控制器374)的请求,则网关360(经由多商店810)可通过与那些资源通信/协商来充当客户端设备302的代理,使得客户端设备302不必进行与网关360不用作客户端设备302的代理时必须进行的调用一样多的调用。因此,如果客户端设备302请求访问一些应用并搜索那些应用,则由于网关360和/或多商店810的代理和限制客户端设备302和企业资源之间的通信的通信能力,客户端设备302可能不知道/意识到搜索结果可能来自应用商店378并且也来自应用控制器374。

虽然已经以特定于结构特征和/或方法动作的语言描述了主题,但是应理解,在所附权利要求中定义的主题不一定限于以上描述的特定特征或动作。相反,以上描述的特定特征和动作被描述为下面的权利要求的示例实现。

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