基于隧道客户端网络请求的设备认证的制作方法

文档序号:16513048发布日期:2019-01-05 09:27阅读:142来源:国知局
基于隧道客户端网络请求的设备认证的制作方法

本申请要求于2016年5月31日提交的标题为“基于隧道客户端网络请求的设备认证(deviceauthenticationbasedupontunnelclientnetworkrequests)”的美国非临时专利申请no.15/168,394的权益,其全部内容通过引用并入本文。

本申请涉及标题为“基于隧道客户端网络请求的设备认证(deviceauthenticationbasedupontunnelclientnetworkrequests)”的申请no.15/168,398和标题为“基于隧道客户端网络请求的设备认证(deviceauthenticationbasedupontunnelclientnetworkrequests)”的申请no.15/168,404,两者均于2016年5月31日提交。



背景技术:

企业经常将应用程序部署到用户客户端设备,诸如智能手机。客户端设备可以由管理服务管理,该管理服务提供远程管理或管理向管理服务注册为托管设备(manageddevice)的客户端设备的能力。例如,运行androidtm操作系统的变体的设备可以使用应用程序编程接口(api)或嵌入在设备的操作系统内的其他能力来向远程执行的管理服务注册。管理组件也可以安装在客户端设备上,因此设备可以由管理组件本地管理并由管理服务远程管理。管理员可以通过管理服务定义与特定客户端设备相关联的策略或简档(profile),管理服务可以将策略或简档发送到客户端设备。客户端设备上的管理组件可以在客户端设备上安装或实施策略或简档。另外,管理服务可以向管理组件发出命令以在客户端设备上采取某些动作。

管理员还可以通过管理服务将应用程序部署到注册为托管设备的客户端设备。在一个示例中,管理服务可以指示管理组件安装企业可能希望部署的特定应用程序。应用程序可以包括第三方应用程序,诸如生产力应用程序、消息应用程序或可能需要向与应用程序相关联的一个或更多个服务器或服务进行认证的其他应用程序。例如,生产力应用程序可能需要订阅,该订阅需要执行登录或认证过程。认证过程可以由应用程序服务提供商联合到企业的目录服务或身份管理服务。

因此,为了完成认证过程,应用程序服务可以从在客户端设备上执行的应用程序接收认证请求,并将该请求重定向到企业的身份管理服务。企业的身份管理服务可以对用户进行认证并向应用程序提供认证断言或令牌,这可以呈现给应用程序服务以认证用户的身份。提供单点登录能力允许用户登录而无需提供他或她的凭证来认证他或她对应用程序的访问。

然而,通过身份提供商进行的单点登录过程无法检查设备是否符合企业规则。也就是说,虽然单点登录会对用户进行认证,但设备本身仍可能陷入危险。结果,在用户认证以确保设备被注册为托管设备并且符合企业的一个或更多个设备合规策略时,在其上运行应用程序的设备的姿态评估仍然存在问题。

附图说明

参考以下附图可以更好地理解本公开的许多方面。附图中的组件不一定按比例绘制,而是重点在于清楚地说明本公开的原理。此外,在附图中,相同的附图标记在若干视图中表示相应的部分。

图1是描绘根据本公开的各种示例的示例实现方式的简略框图。

图2是示出根据本公开的第一示例的功能的流程图。

图3是示出根据本公开的第二示例的功能的流程图。

图4是示出根据本公开的第三示例的功能的流程图。

图5是示出根据本公开的第四示例的功能的流程图。

具体实施方式

公开了辅助对用户和由管理服务管理的客户端设备进行认证的系统的示例。应用程序开发人员通常支持用于在实体之间交换认证数据的各种标准,所述实体诸如与应用程序相关联的服务或服务器,从其访问服务的设备,以及可以对用户进行认证的身份提供商。一个示例包括安全断言标记语言(saml),其是可以支持用户到服务的单点登录的规范,其中基于身份提供商内的用户身份来确定对服务的访问。

本公开的示例可以通过利用如saml一样向身份提供商提交认证请求的规范和协议来辅助用户的单点登录。此外,本公开的示例还可以识别设备和认证请求源自的特定应用程序。通过识别设备和应用程序,还可以评估由托管设备上的管理服务强制执行的设备与设备合规策略的符合性。另外,例如,通过识别设备和与设备相关联的各种设备标识参数,用户的认证可以限于某些设备甚至某些网络、位置或其他参数。通过这种方式,可以为企业提供更细粒度的认证框架。

通过重定向认证请求和来自应用程序的可能的其他流量来实现对用户、设备和应用程序的认证,通过在安装有应用程序的客户端设备上的隧道客户端来进行该重定向。各种操作系统(诸如)允许安装虚拟专用网络(vpn)配置或简档,该简档在客户端设备上配置隧道客户端。在某些情况下,这些操作系统允许基于每个应用程序安装vpn配置,以便特定应用程序的某些或所有流量通过由隧道客户端发起的vpn连接进行路由。vpn配置可以指定通过vpn连接路由的网络流量应该使用包含设备标识参数的安全层进行保护,并使用由管理服务安装在客户端设备上的证书进行保护。以这种方式,设备标识参数以及证书签名或指纹可以由身份提供商或与身份提供商通信的管理服务来验证。

图1示出了根据本公开的示例的联网环境100的示例。在所描绘的网络环境100中,企业计算环境103通过网络119与至少一个客户端设备106和应用程序服务107进行通信。

网络119包括因特网、内联网、外联网、广域网(wan)、局域网(lan)、有线网络、无线网络、其他合适的网络或两个或更多个这种网络的任何组合。网络可以包括卫星网络、线缆网络、以太网和其他类型的网络。

企业计算环境103可以是由企业(例如工商企业或其他组织)操作的计算环境。企业计算环境103包括提供计算能力的计算设备,诸如服务器计算机。可选地,企业计算环境103可以采用布置在一个或更多个服务器库或计算机库中的多个计算设备。在一个示例中,计算设备可以位于单个安装中。在另一示例中,用于企业计算环境103的计算设备可以分布在多个不同的地理位置中。在一种情况下,企业计算环境103包括多个计算设备,其共同可以形成托管计算资源或网格计算资源。另外,企业计算环境103可以作为弹性计算资源操作,其中计算相关资源(诸如处理资源、网络资源和存储资源)的分配容量可以随时间变化。在其他示例中,企业计算环境103可以包括或被操作为一个或更多个虚拟化计算机实例,其可以被执行以执行本文描述的功能。

可以在企业计算环境103中执行各种应用程序或其他功能。此外,各种数据可以存储在企业计算环境103可以访问的数据存储112中。数据存储112可以表示多个数据存储112。存储在数据存储112中的数据可以与下面描述的各种应用程序或功能实体的操作相关联。

在企业计算环境103上执行的组件可以包括管理服务116、身份提供商118、隧道网关120,以及本文未详细讨论的其他应用程序、服务、进程、系统、引擎或功能。管理服务116可以在企业计算环境103中执行,以由管理员监视和监督一个或更多个客户端设备106的操作。在一些示例中,管理服务116可以表示由企业移动性管理(emm)提供商执行的一个或更多个进程或应用程序,其辅助对注册到emm提供商的企业的客户端设备106的管理。为此,与客户端设备106相关联的操作系统和应用程序生态系统可以提供各种api和服务,其允许客户端设备106向管理服务116注册为托管设备。

管理服务116可以包括管理控制台,其可以允许管理员管理注册到管理服务116的客户端设备106。用户界面可以允许管理员为与企业环境相关联的用户账户或设备定义策略。用户界面还可以包括例如对与可以由管理服务116管理的客户端设备106相关的统计数据或其他信息的呈现。

企业计算环境103还可以执行身份提供商118。身份提供商118可以代表企业执行联合用户认证。例如,身份提供商118可以实现允许联合用户授权或认证的oauth、saml或类似协议。在本公开的示例中,身份提供商118还可以响应于认证请求基于对发起认证请求的设备的姿态评估来执行对用户的附加认证。

企业计算环境103还可以执行认证代理122。在一些示例中,认证代理122可以实现为识别提供商服务118的功能或者与身份提供商118通信的单独模块或服务。认证代理122可以从客户端设备106接收通过vpn连接进行隧道传送的认证请求。在一些示例中,客户端设备106可以在认证代理122的网络地址处终止vpn连接。然后,认证代理122可以移除应用于认证请求的安全层,诸如加密层,并向身份提供商118提供认证请求。

在一些示例中,安全层可以包括应用于认证请求的传输层安全性(tls)加密层,其可以层叠在由应用程序147应用于认证请求的另一tls加密层的顶部上。在该示例中,应用程序147可以将其自己的加密层应用于认证请求,其中请求在身份提供商118处终止,并且vpn连接可以导致另一加密层被应用于在认证代理122处终止的认证请求。

当认证代理122从客户端设备106接收到认证请求时,它可以从认证请求移除安全层,诸如加密层。认证代理122可以保留用于保护或加密应用于认证请求的安全层的证书的签名或将其存储在数据存储112中。认证代理122还可以从客户端设备106提取嵌入在由vpn连接指定的安全层内的设备标识参数。设备标识参数可以包括网络地址、设备标识符、从其接收认证请求的应用程序147的应用程序标识符、嵌入在安全层内的地理定位参数,或客户端设备106可以识别的其他参数。

当向身份提供商118提供认证请求时,身份提供商118可以向认证代理122查询与安全层所应用的证书相对应的证书签名。身份提供商118还可以向认证代理122查询由认证代理122存储在数据存储112中的设备标识参数。然后,身份提供商118可以向管理服务116查询设备标识参数和证书签名,这可以提供与参数相关联的客户端设备106是否是符合企业的合规规则的托管设备的指示。

企业计算环境103还可以执行隧道网关120,其可以与隧道客户端149通信。在隧道客户端149的一些示例中,所有网络流量通过服务器进程路由并且确定用于网络流量的网络119上的终点。在隧道客户端149的其他示例中,隧道客户端149采用分离路由,其中发往外部网络上的网络地址的流量被发送到网络119上的终点,并且发往专用网络上的内部网络的流量被发送到隧道网关120,其将流量路由到内部网络目的地。

存储在数据存储112中的数据可以包括设备数据123、用户数据127、应用程序数据129、代理数据131以及可能的其他数据。设备数据123可以包括向管理服务116注册为托管设备的客户端设备106的记录。设备数据123内的记录可以包括为在注册到管理服务116的客户端设备106上执行而选择的各种安全设置。因此,设备记录可以包括与设备(诸如客户端设备106)相关联的设备标识符、一个或更多个设备证书124以及合规状态125。在一些示例中,设备数据123还可以标识与特定客户端设备106相关联的用户。设备记录还可以存储其他设备特定信息,诸如设备类型、操作系统类型或版本、设备所需或可选的应用程序或设备的注册状态。在这种情况下,设备数据123还可以指示托管设备是计算设备还是外围设备,诸如打印机、扫描仪或可以在环境中部署并与目录服务中的记录相关联的其他设备。

设备证书124可以包括代表向管理服务116注册为托管设备的客户端设备106生成的证书。设备证书124可以包括密钥对,例如公钥和在公钥加密方法中采用的私钥。设备证书124还可以包括x.509数字证书,其可以用于加密客户端设备106与经由网络119可访问的其他系统之间的通信。在本公开的一个示例中,管理服务116可以生成或获得用于客户端设备106的设备证书124。在本公开的另一示例中,管理服务116可以生成或获得用于由管理服务116安装在客户端设备106上的每个应用程序的设备证书124。

客户端设备106的合规状态125表示设备是否符合一个或更多个合规规则。可以由客户端设备106的管理服务116强制执行各种合规规则。合规规则可以基于时间、地理位置或设备和网络属性。例如,当客户端设备106位于特定地理位置内时,客户端设备106可以满足合规规则。在其他示例中,当客户端设备106与特定局域网(诸如由企业计算环境103管理的特定局域网)通信时,客户端设备106可以满足合规规则。此外,在另一个示例中,合规规则可以基于匹配指定值的时间和日期。

合规规则可以指定在指定时间段期间客户端设备106需要关闭或处于低功率“睡眠”状态。另一合规规则可以指定在指定时间段期间客户端设备106需要开启或处于正常操作“唤醒”状态。作为另一示例,合规规则可以指定禁止客户端设备106呈现已被指定为机密的内容。

合规规则的另一示例涉及用户是否属于特定用户组。例如,合规规则可以包括白名单或黑名单,其指定特定用户或用户组是否被授权执行各种功能,诸如安装或执行特定应用程序。

合规规则的其他示例包括指定客户端设备106是否陷入危险或“越狱”的规则。例如,客户端设备106可以具有适当的硬件或软件保护,其防止对客户端设备106的未授权修改。如果覆盖或绕过这些保护,则可以认为客户端设备106不合规。作为另一示例,合规规则可以指定客户端设备106被要求提示用户输入密码或个人识别码(pin)以解锁设备。

合规规则还可以要求客户端设备106启用设备加密,其中存储在设备上的数据以加密形式存储。数据可以由设备证书124加密。合规规则还可以指定客户端设备106向管理服务116注册为托管设备。另一合规规则可以指定要求用户接受由客户端设备106上的管理组件145呈现的服务条款。作为另一示例,合规规则可以指定管理组件145被要求与管理服务116定期通信或向管理服务116“登记”以报告其状态。如果自客户端设备106的先前登记以来已经过了阈值时间量,则可以认为该设备违反了该合规规则。

另一合规规则可以指定客户端设备106正在运行特定操作系统的指定变体或版本之一。合规规则还可以指定注册的设备由特定制造商制造或具有特定制造商标识符。另一合规规则可以指定注册的设备是特定的型号名称或型号编号。如果设备处于数据漫游模式或已使用阈值量的周期性网络数据使用容限,则也可以认为客户端设备106不合规。

因此,合规状态125指示特定客户端设备106是否符合管理服务116分配给客户端设备106的合规规则以及符合的程度。合规状态125可以由客户端设备106上的管理组件145确定,其分析客户端设备106的状态并向管理服务116报告合规性。在其他示例中,合规状态125可以由管理服务116基于关于由管理组件145报告的客户端设备106的状态的信息来确定。在本公开的示例中,合规状态125还可以由身份提供商118或管理服务116基于对嵌入在源自应用程序147或与应用程序147相关联的应用服务107的认证请求内的设备标识参数的分析来确定。

用户数据263包含关于与注册到管理服务116的客户端设备106相关联的用户的信息。用户数据263可以包括关于用户的简档信息、关于用户的认证信息、安装在客户端设备106上与用户相关联的应用程序、以及其他用户信息。例如,用户数据263可以包括关于与用户的用户账户相关联的客户端设备106的信息,特定用户可以访问的企业资源的信息,诸如电子邮件、日历数据、文档、媒体、应用程序、网络站点或其他资源。用户数据263还可以标识特定用户是其成员的一个或更多个用户组,其又可以定义用户对一个或更多个企业资源的访问权限以及识别应该将哪些应用程序部署到与用户相关联的客户端设备106。为此,用户数据263还可以标识一个或更多个设备标识符,其可以唯一地标识与用户的用户账户相关联的客户端设备106。

应用程序数据129表示关于可以通过管理服务116部署到注册为托管设备的客户端设备106的应用程序的数据。应用程序数据129可以包括应用程序二进制文件或应用程序包、对可从其获得应用程序147的可公开访问的存储库的引用,以及应用程序129的许可数据或认证数据。应用程序数据129还可以存储其上安装了应用程序147的副本的每个客户端设备106的配置数据。配置数据可以包括与用户的特定客户端设备106上的应用程序147的唯一安装相对应的应用程序标识符。配置数据还可以包括关于客户端设备106上的vpn配置151的数据,通过该vpn配置151可以路由应用程序流量(诸如认证请求),使得包括特定应用程序标识符的认证请求可以与特定客户端设备106相关联。

代理数据131表示由认证代理122存储的数据,该数据是从应用于来自应用程序147的认证请求的安全层提取的。安全层可以由隧道客户端149应用到客户端设备106上。证书签名132表示证书的签名或指纹,其用于保护隧道客户端149和认证代理之间的连接。因为证书可以由管理服务116安装在客户端设备106上,所以可以执行对客户端设备106的识别,因为证书签名132可以唯一地识别与用于加密或以其他方式保护发送到认证代理122的认证请求的证书相对应的公钥或私钥。证书签名132可以是从公钥或公共证书数据生成的唯一密码签名,其用于将安全层应用于被发送到认证代理122的认证请求。

设备标识参数134表示隧道客户端149包括在安全层内的其他设备标识信息。如上所述,设备标识参数可以包括应用程序标识符,其标识从其发起认证请求的应用程序147。设备标识参数还可以包括标识客户端设备106的位置、客户端设备106的网络地址的地理位置参数,或者隧道客户端149可以嵌入应用于来自应用程序147的认证请求的安全层内的其他设备标识参数。

客户端设备106可以表示耦合到网络119的多个客户端设备106。客户端设备106包括例如基于处理器的计算机系统。根据各种示例,客户端设备106可以是台式计算机、膝上型计算机、个人数字助理、移动电话、智能手机或平板计算机系统的形式。客户端设备106可以表示由企业拥有或发给用户的设备,或者用户拥有的设备。当被供应时,客户端设备106可以向管理服务116注册为企业的托管设备。

客户端设备106可以执行管理组件145,其可以与管理服务116通信以辅助客户端设备106的管理。管理组件145可以与管理服务116通信以在客户端设备106上强制实施管理策略和合规规则。例如,管理组件145可以强制实施数据安全要求,安装、移除或更新安全证书,或者从客户端设备106写入、修改或删除某些数据。管理组件145还可以监视客户端设备106的网络活动、客户端设备106的位置、强制实施密码或个人标识号(pin)要求或者在管理服务116中定义并通过网络119发送到管理组件145的任何其他安全或可接受使用策略。

为了执行客户端设备106的本地管理,可以在客户端设备106上以提升的特权或管理特权安装和执行管理组件145。在一些场景中,操作系统可以允许特定应用程序或分组被识别为设备所有者或设备管理员。

可以在客户端设备106上安装一个或更多个应用程序147。作为注册到管理服务116的托管设备,一些应用程序147可以由管理服务116安装。在一个场景中,管理服务116可以向管理组件145发送请求以在客户端设备106上检索和安装特定应用程序147。在这个意义上,由管理服务116发起应用程序的安装。管理服务116还可以提供用于安装在客户端设备106上的特定应用程序147的配置数据。例如,管理服务116可以发送指示客户端设备106通过隧道客户端149从应用程序147路由一些或所有网络流量的策略或简档。隧道客户端149可以通过向流量应用安全层(例如加密层)来保护流量。换句话说,隧道客户端149可以用加密层来包裹流量。

客户端设备106还可以执行提供网络隧道或vpn能力的隧道客户端149。在一些示例中,客户端设备106的操作系统还可以允许vpn能力绑定到一个或更多个应用程序147。换句话说,隧道客户端149可以提供每个应用程序vpn能力,其中源自应用程序147的一些或所有网络流量通过隧道客户端149路由。在一些示例中,可以使用由管理服务116生成或获得的设备证书124来保护通过隧道客户端149路由的流量,当从管理服务116接收到设备证书124时,其可以由管理组件145安装在客户端设备106上。

如上所述,单独的vpn配置151可以用于安装在客户端设备106上的每个应用程序147。例如,企业可以偏好将从特定应用程序147发送和接收的网络流量根据特定vpn配置151通过隧道客户端149路由。vpn配置151还可以指定将哪些设备标识信息嵌入到通过隧道客户端149路由的分组中。例如,vpn配置151可以指定应该采用tls来保护来自特定应用程序147的流量,以及指定设备标识参数(诸如客户端设备106的网络地址、客户端设备106的地理位置、时间戳、应用程序147的身份、客户端设备106的设备标识符、操作系统版本、用户识别信息(诸如用户标识符或可从操作系统或管理组件145中提取的其他设备标识参数))。

vpn配置151可以包括隧道客户端149用来连接到相应vpn的vpn连接的设置列表。例如,vpn配置151可以包括用户名、密码、数字证书、vpn服务器的地址(诸如隧道网关120)、vpn连接的通信协议(例如,ppp、ipsec、基于安全套接字层(ssl)或传输层安全(tls)的vpn协议或其他一些vpn协议。在一些实例中,vpn配置151还可以指定隧道客户端149的各种设置的值。例如,vpn配置151可以指定哪个域名系统(dns)服务器与隧道客户端149一起使用,哪个或哪些ip地址指派给隧道客户端149或与隧道客户端149相关联,隧道客户端149的子网掩码,指派给隧道客户端149或与隧道客户端149相关联的媒体访问控制(mac)地址,以及隧道客户端149的潜在其他设置。这些各种设置可以被认为是嵌入安全层内的设备标识参数134,并且管理服务116可以使用这些设备标识参数134来标识客户端设备106,因为管理服务116可以是向客户端设备106供应vpn配置151的过程。

vpn配置151可以由管理组件145从管理服务116获得并且作为简档安装在客户端设备106上。在一个示例中,管理服务116可以发起特定应用程序147的安装并生成vpn配置151,其可以发送到客户端设备106并由管理组件145安装在客户端设备106上。可以通过应用程序147的安装来具体地生成vpn配置151。vpn配置151可以使客户端设备106的操作系统通过隧道客户端149建立的vpn连接来路由来自应用程序147的一些或所有网络流量。

vpn配置151可以指定将安全层应用于来自应用程序147的网络流量,诸如发送到应用程序服务107或身份提供商118的认证请求。安全层可以包括加密层,诸如tls加密层,其被应用于发送到特定目的地的网络流量。例如,tls加密层可以在认证代理122处终止。

应用程序服务107表示与应用程序147可以通过网络119访问的服务相关联的一个或更多个服务器。例如,部署到客户端设备106上的特定应用程序147可能需要访问互联网或基于云的服务。在一些示例中,应用程序服务107可以要求用户认证。在一些实例中,应用程序服务107可以支持联合认证协议,其中由身份提供商118执行用户身份的认证。本公开的示例可以辅助用户的单点登录,其中用户可以向身份提供商118认证他或她的凭证,并在应用程序服务107支持联合认证并且还支持使用身份提供商118的用户认证的情况下通过应用程序147访问应用程序服务107。

在一个示例中,应用程序147可以从应用程序服务107请求内容。在一些场景中,对内容的请求可以通过隧道客户端149进行隧道传输,其中安全层被应用于该请求。在其他场景中,vpn配置151可以指定只有路由到身份提供商118或认证代理122的流量应当通过隧道客户端149进行路由。作为响应,应用程序服务107可以确定应用程序147是否已被认证。例如,应用程序服务107可以确定应用程序147是否向应用程序服务107提供了有效且未过期的认证令牌。

如果应用程序147未被认证或需要重新认证,则应用程序服务107可以采用从身份提供商118获得认证凭证或令牌(诸如,认证断言)并将凭证呈现给认证服务107的指令,将应用程序147重定向到身份提供商118。在一种情况下,应用程序服务107可以采用重定向到身份提供商118的指令向应用程序147发出重定向消息。

在接收到重定向指令时,应用程序147可以生成认证请求用于传输到身份提供商118。如上所述,由管理组件145安装的vpn配置151可以指定发送到身份提供商118的流量是通过vpn连接发送的,以便将安全层加层到认证请求上。在一些场景中,应用程序147可以使用tls加密层来保护认证请求,并且隧道客户端149可以利用附加tls加密层来包裹认证请求,其中嵌入了设备标识参数134。安全层或附加tls加密层可以在认证代理122处终止。如果应用程序147将初始加密层应用于认证请求,则可以在身份提供商118处终止该初始加密层。

另外,尽管被描述为企业计算环境103的一部分,但是管理服务116、身份提供商118和隧道网关120可以是相对于彼此的第三方服务、本地服务、基于云的服务或由单个实体提供的服务。

接下来参考图2,示出了提供管理服务116如何将应用程序部署到托管设备并安装与应用程序相关联的vpn配置151以便通过隧道客户端149将认证请求路由到认证代理122的一个示例的流程图。首先,在步骤201,管理服务116可以获得将客户端设备106注册为托管设备的请求。可以从管理组件145或安装在客户端设备106上的另一个进程获得注册客户端设备106的请求。该请求可以包括企业环境内用户的用户凭证。

在步骤203,管理服务116可以获得或生成与客户端设备106相关联的设备证书124。设备证书124可以与客户端设备106唯一地相关联或者与安装在客户端设备106上的特定应用程序147唯一地相关联。在步骤205,管理服务116可以将客户端设备106注册到管理服务116。在一个示例中,可以通过创建与客户端设备106相关联的设备记录和将管理组件145安装在客户端设备106上来完成注册。

在步骤207,管理服务116可以在客户端设备106上发起设备证书124的安装。在一个示例中,管理服务116可以将设备证书124提供给管理组件145,其可以将设备证书124保存或安装在客户端设备106上仅可由管理服务116或某些应用程序和服务部署的应用程序147访问的区域中。应用程序和服务可以由管理服务116或操作系统标识。在一个示例中,对设备证书124的访问可以限于隧道客户端149。

在步骤209,管理服务116可以发起将应用程序147安装在客户端设备106上。在一个示例中,管理服务116可以向管理组件145发送命令,以从公共应用程序库下载和安装应用程序147。应用程序147可以由管理组件145安装和管理。在步骤211,然后管理服务可以发起将vpn配置151安装在客户端设备106上。vpn配置151可以与应用程序147链接,使得源自应用程序147的一些或所有网络流量通过隧道客户端149路由,隧道客户端149通过vpn连接隧道传输流量。在这个意义上,隧道客户端149可以根据vpn配置151将安全层应用于流量。vpn配置151可以指定应该用于保护或加密流量的设备证书124以及应该采用的vpn协议。

在一些示例中,vpn配置151可以指定应该通过vpn连接将所有网络流量发送到隧道网关120。然后,隧道网关120可以将认证请求路由到身份提供商118。在其他情况下,vpn配置151和隧道客户端149可以采用分离路由,由此仅由域名、网络地址或其他标识机制标识的某些流量通过隧道客户端149并通过vpn连接路由到其目的地。

由管理服务116生成的vpn配置151还可以在认证代理122处终止其连接,使得认证代理122可以移除安全层并从认证请求中提取设备标识参数。认证代理122还可以存储采用其生成安全层的证书签名132。

在一些示例中,管理服务116或身份提供商118的管理员可以指定配置选项,其确定在分析认证请求时是否应该执行设备姿态评估。在一些示例中,除了认证用户的凭证之外,还可以基于管理员是否已启用执行设备姿态评估的要求来安装vpn配置151。在其他示例中,管理服务116可以发送可以由管理组件145强制执行的合规规则,其除了认证用户的凭证之外还识别需要进行设备姿态评估的应用程序147。对于已识别的应用程序147,管理组件145可以安装vpn配置151,其将包括设备标识参数134的安全层应用于从应用程序147发送的认证请求。

对于未识别的应用程序147,管理组件145可以避免为那些应用程序147安装vpn配置151。换句话说,管理组件116或身份提供商118的管理员可以指定是否需要对设备进行评估以对认证请求进行认证,并且管理组件145可以对由管理员识别的应用程序147强制实施要求,该要求从管理服务116被通信到管理组件145。

在一些示例中,管理服务116或身份提供商118还可以通过识别应该从认证请求中提取哪些设备标识参数134以及哪些应该保留来配置认证代理122。认证代理122还可以被配置为指定应当应用于认证请求的特定格式或类型的安全层。以这种方式,非期望的通信或没有适当地用安全层包裹的通信可以被丢弃或指定为可能恶意的。

在一些示例中,可以由管理服务116为某些用户或用户组以及安装在向管理服务116注册为托管设备的客户端设备106上的某些应用程序147或某些类型的应用程序147设置将设备姿态评估包括为认证来自应用程序147的认证请求的一部分的要求。

接下来参考图3,示出了提供认证代理122如何能够获得认证请求并将设备标识参数存储在数据存储113中的一个示例的流程图。首先,在步骤301,认证代理122可以从隧道客户端149获得源自客户端设备106上的应用程序147的认证请求。在一些示例中,如果隧道客户端149将所有流量通过隧道网关120路由到其目的地或终点而不是直接路由到其目的地或终点,则可以从隧道网关120接收认证请求。

在步骤303,认证代理122可以从隧道客户端149应用于认证请求的安全层提取或生成证书签名。换句话说,认证代理122可以存储数据,可以从该数据识别隧道客户端149用于加密或保护认证请求的设备证书124。在步骤305,认证代理122可以提取隧道客户端149应用于认证请求的安全层内嵌入的设备标识参数。在步骤307,认证代理122可以将设备标识参数134和证书签名132存储在数据存储113中。

接下来参考图4,示出了提供身份提供商118如何代表应用程序147或应用程序服务107认证用户的一个示例的流程图。图4还示出了身份提供商118如何能够执行作为认证过程的一部分的设备姿态评估或设备合规性检查。首先,在步骤403,身份提供商118可以从认证代理122获得认证请求。认证请求可以包括用户标识符、认证令牌或可以由身份提供商118验证或认证的任何其他凭证。在步骤406,身份提供商118可以从认证代理122请求对应于认证请求的设备标识参数134和证书签名132。在一个示例中,身份提供商118可以提取嵌入在认证请求中的网络地址或其他标识符,其中认证代理122可以用其识别所请求的设备标识参数134和证书签名132。在一些情况下,认证代理122可以不具有与从身份提供商118接收到的请求相对应的任何设备标识参数134或证书签名132。在这种情况下,认证代理122可以向身份提供商118返回错误。

在步骤409,身份提供商118可以基于设备标识参数134和证书签名132来请求对客户端设备106进行认证。对客户端设备106进行认证可以包括由管理服务116进行的合规性检查。身份提供商118可以向管理服务116提供设备标识参数134和/或证书签名132。管理服务116在数据存储113中查找设备的合规状态125,其已经由管理组件145和管理服务116预先存储并持续更新。换句话说,管理服务116可以确定对应于客户端设备106的合规状态125是否指示客户端设备106符合与企业相关联的合规规则。

在步骤412,身份提供商118可以基于来自管理服务116的响应来确定客户端设备106是否符合企业的一个或更多个合规规则。如果根据合规状态125客户端设备106不符合企业的一个或更多个合规规则,则身份提供商118可以前进到步骤419并返回认证错误。可以利用认证代理122通过隧道客户端149将认证错误发送到应用程序服务107或应用程序147。

在一些示例中,在步骤419,身份提供商118可以在认证错误内提供关于违反了哪些合规规则的信息,以便用户可以采取动作以使设备合规。

如果客户端设备106符合企业的合规规则,则该过程可以从步骤412进行到步骤415,其中身份提供商118可以认证该认证请求内用户的用户凭证。

在步骤418,身份提供商118基于认证请求确定是否可以认证用户。如果无法认证用户的用户凭证,则过程进行到步骤419,其中将认证错误返回到应用程序147或应用程序服务107。在一些场景中,身份提供商118可以确定认证令牌已经过期并且请求用户重新认证或更新认证令牌,此时可以认证认证请求。

如果在步骤418可以认证该认证请求,则过程进行到步骤421,其中身份提供商118可以将认证断言返回到隧道客户端149,其可以将认证断言转发给应用程序147。应用程序147可以向应用程序服务107提供认证断言以认证用户对应用程序服务107的访问。以这种方式,可以基于他或她先前在客户端设备106上已由身份提供商118认证的企业凭证连同对设备合规姿态的检查来认证用户。因此,用户可以由身份提供商118认证,而不用第二次需要用户的凭证。

接下来参考图5,示出了提供管理服务116如何能够通过确定设备是否符合企业的合规规则来执行设备姿态评估的一个示例的流程图。首先,在步骤504,管理服务116可以从身份提供商118获得认证设备的请求。认证客户端设备106的请求可以包括由认证代理122从安全层中提取的一个或更多个设备标识参数134或证书签名132。管理服务116可以识别与设备标识参数134或设备证书132相对应的客户端设备106,并且在步骤506确定该设备是否是注册到管理服务116的托管设备。

在步骤508,管理服务116可以确定客户端设备的合规状态125。合规状态125可以指示管理服务116是否符合企业的合规规则以及符合企业的合规规则的程度。在一个示例中,可以通过确保嵌入到设备标识参数134的应用程序标识符对应于由管理服务116部署到从其接收到认证请求的客户端设备106的托管应用程序来确定客户端设备106是否符合合规规则。可以基于嵌入到设备标识参数134内的设备标识符或证书签名132来识别客户端设备106。当设备被注册以及当应用程序147分别被部署到客户端设备106时,设备标识符和应用程序标识符可以由管理服务116存储在数据存储112中。

在步骤510,管理服务116可以将合规性检查或设备姿态评估的结果返回给身份提供商118,其可以基于客户端设备106的合规状态125来确定是否认证认证请求。以这种方式,身份提供商118可以在确定是否认证认证请求时考虑用户的凭证以及认证请求源自的客户端设备106的状态。

图2-5的流程图示出了功能的示例,并且本文中的操作可以体现为硬件、软件或硬件和软件的组合。如果体现为软件,则每个元素可以表示代码模块或代码的一部分,其包括用于实现一个或更多个指定逻辑功能的程序指令。程序指令可以以源代码的形式体现,其包括用编程语言编写的人类可读语句或机器代码,机器代码包括可由合适的执行系统识别的机器指令,例如计算机系统或其他系统中的处理器。如果体现为硬件,则每个元件可以表示实现一个或更多个指定逻辑功能的电路或多个互连电路。

尽管图2-图5的流程图示出了特定的执行顺序,应当理解,执行顺序可以与所示顺序不同。可以相对于所示的顺序切换两个或更多个元素的执行顺序。而且,连续示出的两个或更多个元素可以同时执行或部分同时执行。此外,在一些示例中,可以跳过或省略流程图中示出的一个或更多个元素。另外,为了增强实用性、计数、性能测量或故障排除辅助,可以将任何数量的计数器、状态变量、警告信号量或消息添加到本文描述的逻辑流程中。应当理解,所有这些变化都在本公开的范围内。

客户端设备106或本文描述的其他组件可各自包括至少一个处理电路。处理电路可以包括一个或更多个处理器以及耦合到本地接口的一个或更多个存储设备。本地接口可以包括具有伴随地址/控制总线或任何其他合适的总线结构的数据总线。用于处理电路的一个或更多个存储设备可以存储可由处理电路中的一个或更多个处理器执行的数据或组件。此外,数据存储可以存储在一个或更多个存储设备中。

管理服务116、身份提供商118、认证代理122和本文描述的其他组件可以体现为硬件、由硬件执行的软件组件或者作为软件和硬件的组合的形式。如果体现为硬件,则本文描述的组件可以实现为采用任何合适的硬件技术的电路或状态机。硬件技术可包括一个或更多个微处理器、用于在一个或更多个数据信号的应用程序上实现各种逻辑功能的具有逻辑门的离散逻辑电路、具有适当逻辑门的专用集成电路(asic)、可编程逻辑器件(例如,现场可编程门阵列(fpga))以及复杂可编程逻辑器件(cpld)。

此外,本文描述的包括软件或程序指令的一个或更多个组件可以包含在任何非暂时性计算机可读介质中,以供指令执行系统(诸如计算机系统或其他系统中的处理器)使用或与之结合使用。计算机可读介质可以包含、存储或维护由指令执行系统使用或与指令执行系统结合使用的软件或程序指令。

计算机可读介质可以包括物理介质,诸如磁性、光学、半导体或其他合适的介质。合适的计算机可读介质的示例包括但不限于固态驱动器、磁驱动器、闪存。此外,本文描述的任何逻辑或组件可以以各种方式实现和构造。所描述的一个或更多个组件可以实现为单个应用程序的模块或组件。此外,本文描述的一个或更多个组件可以在一个计算设备中执行或者通过使用多个计算设备来执行。

强调的是,本公开的上述示例仅仅是为了清楚地理解本公开的原理而阐述的实现的示例。在实质上不背离本公开的精神和原理的情况下,可以对上述示例进行许多变化和修改。所有这些修改和变化旨在包括在本公开的范围内。

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