将认证密钥分发给应用程序安装的制作方法

文档序号:13985252
将认证密钥分发给应用程序安装的制作方法

本申请要求于2015年6月29日提交的申请号为14/753,889、名称为“DISTRIBUTING AN AUTHENTICATION KEY TO AN APPLICATION INSTALLATION(将认证密钥分发给应用程序安装)”的美国非临时专利申请的权益,其全部内容通过引用并入本文中。

本申请涉及于2015年6月18日提交的申请号为3056/CHE/2015、名称为“DISTRIBUTING SECURITY CODES THROUGH A RESTRICTED COMMUNICATIONS CHANNEL(通过受限的通信信道分发安全码)”的印度专利申请以及于2015年10月7日提交的申请号为14,876,827、名称为“DISTRIBUTING SECURITY CODES THROUGH A RESTRICTED COMMUNICATIONS CHANNEL(通过受限的通信信道分发安全码)”的美国专利申请。



背景技术:

用户认证对于维护数据安全性和访问控制十分重要。应用程序通常作为托管应用程序(managed application)安装在客户端设备上。托管应用程序可以在企业移动管理(enterprise mobility management,EMM)系统的请求下安装。一旦客户端设备向EMM系统注册为托管设备(managed device),则EMM系统就可以在客户端设备上启动应用程序的安装。将客户端设备注册为托管设备授予EMM基础设施某些特权来管理、监控或以其他方式监督托管设备的操作。在诸如设备被发放(issue)给公司员工的公司环境之类的企业环境中,管理员可以在客户端设备上启动各种应用程序的安装,该客户端设备向与企业相关联的用户提供各种功能。

例如,EMM基础设施可以通过指示客户端设备从应用程序库(例如可以从其下载或购买软件的公共应用程序市场)下载并安装应用程序来启动应用程序在客户端设备上的安装。在某些实例中,企业可能有许多应用程序,管理员可以使得该应用程序对于企业内的用户而言是可用的。这些应用程序中的一个或更多可以要求用户认证他的或她的身份,以便使用该应用程序或本地地或通过网络使用应用程序来访问资源。为了辅助用户认证,EMM基础设施可以将认证密钥分发给托管应用程序,该托管应用程序可以用其认证与特定客户端设备相关联的用户账户的身份。因此,认证密钥的安全分发可能是希望的,以辅助对托管应用程序的安装的认证。

附图说明

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

图1是示例性联网环境的图。

图2A-2B描绘了示例性序列图。

图3A-3B描绘了示例性流程图。

具体实施方式

用户认证对维护数据安全与对本地和网络资源的访问控制非常重要。如上所述,应用程序通常作为托管应用程序安装在客户端设备上。托管应用程序可以在实现企业移动管理(EMM)功能的管理服务的请求下安装。一旦客户端设备向管理服务注册为托管设备,则管理服务可以启动在客户端设备上安装应用程序。为了完成设备的注册,用户可以使用在客户端设备上运行的软件代理或组件来将他的或她的用户凭证呈现给管理服务。在客户端设备上运行的软件代理或组件可以以管理服务来认证用户。管理服务可以利用应用编程接口(application programming interface,API),以便管理、监控或以其他方式监督托管设备的操作,该应用编程接口由客户端设备执行的操作系统提供。在企业环境中,例如设备被发放给公司员工的公司环境中,管理员可以启动应用程序在客户端设备上的安装。在管理服务的指导下安装的应用程序可以是托管应用程序。

在一些情景中,通过作为托管应用程序安装的应用程序,可以使用用户账户的用户凭证来向管理服务或通过网络可访问的其他系统认证用户。通过向可以用于后续通信的应用程序的安装实例提供认证密钥或会话令牌来验证用户的身份。例如,认证密钥可以包括会话令牌、访问令牌或其他类型的令牌,其允许用户账户被验证而不需要用户的实际凭证,诸如用户名/密码对。然后,应用程序的安装可以将该认证密钥提供给管理服务或需要验证用户账户的任何其他服务提供商系统,以便为应用程序提供对资源的访问。

本公开的示例可以辅助(facilitate)将认证令牌安全分发给在客户端设备上的应用程序安装,所述客户端设备向管理服务注册为托管设备。认证令牌只有在客户端设备以通过管理服务安装在客户端设备上的身份证明(identity certificate)的方式被认证之后才能提供给客户端设备。由于托管设备可以向管理服务授予某些特权,所以管理服务可以有权在托管设备上安装各种类型的配置文件。通过由客户端设备执行的操作系统提供的管理API来辅助配置简档(configuration profile)的安装。例如,APPLE IOS操作系统可以提供可用于安装包括身份证明(作为有效负载)的配置简档的管理API。

针对注册为托管设备的设备,可以使得管理API可用于管理服务。在一种情景中,身份证明可以通过将证书(certificate)与由管理服务安装在客户端设备上的配置简档相合并而安装在客户端设备上。然后管理服务可利用客户端设备(其利用该证书)的操作系统的功能,以便验证客户端设备的身份。管理服务验证客户端设备的身份,以响应于尚未采用管理服务认证自己的应用程序的安装的后续网络通信来确定是否应该向客户端设备提供认证密钥。

参照图1,示出根据各种示例的联网环境100。联网环境100包括客户端设备106和计算环境109,其可以通过网络118彼此进行数据通信。网络118包括例如因特网、一个或更多内联网、外联网、广域网(WAN)、局域网(LAN)、有线网络、无线网络、其他合适的网络,或者两个或更多这种网络的任何组合。例如,网络可以包括卫星网络、线缆网络、以太网和其他类型的网络。

计算环境109可以包括例如服务器计算机。可选地,计算环境109可以采用例如可以被布置在一个或更多服务器库(bank)或计算集群中的多个计算设备。计算设备可以位于单个安装中,或者可以分布在许多不同的地理位置中。例如,计算环境109可以包括一起形成托管(hosted)计算资源、网格计算资源或任何其他分布式计算布置的多个计算设备。在一些情况下,计算环境109可以作为弹性计算资源的至少一部分来操作,其中处理、网络、存储或其他计算相关资源的分配容量可以随时间变化。计算环境109还可以包括或操作为一个或更多虚拟化计算机实例。通常,计算环境109可以根据特定的安全协议来操作,使得它们被认为是受信的计算环境。存储在数据存储121中的数据与下面描述的各种组件的操作相关联。

计算环境109可以执行管理服务112或其他系统。管理服务112可以管理或监督多个客户端设备106的操作。在一些示例中,诸如一个或更多公司或其他组织的企业可以操作管理服务112来监督或管理员工、承包商或企业环境中的其他用户的客户端设备106的操作。在这个意义上,客户端设备106是由管理服务112管理的托管设备。

客户端设备106可以通过API向管理服务112注册为托管设备,该API由客户端设备106执行的操作系统提供。注册过程可以包括对用户凭证的认证。一旦由管理服务112对用户的凭证进行了认证,管理服务112可以将管理简档(management profile)发送到客户端设备106。管理简档允许使用由操作系统提供的管理API来执行各种管理功能。

管理功能的示例可包括擦除来自客户端设备106的某些数据、安装某些应用程序或应用程序更新、安装配置简档、锁定客户端设备106或激活显示器锁定功能、执行对客户端设备106的工厂重置或执行其他管理功能的命令。如上所述,由管理服务112生成的或者从另一服务(诸如认证机构)获得的身份证明可以由管理服务112通过向客户端设备106分发配置简档而安装在客户端设备106上。身份证明可以与用户账户唯一地相关联,并且用于识别客户端设备106的身份或与客户端设备106相关联的用户账户。例如,身份证明可以认证用户对电子邮件、网络或其他资源的访问。在本公开的示例中,证书可以辅助与客户端设备106相关联的用户账户的认证。一旦安装证书,认证密钥还可以被部署到应用程序的安装,所述应用程序作为托管应用程序被安装在客户端设备106上中。

身份证明还可以由用户或管理员手动安装在客户端设备106上。在这种情况下,可以将证书作为电子邮件的附件发送到客户端设备106,或者可以从网络源或本地存储下载到客户端设备106。然后,用户或管理员可以下载并在客户端设备106上安装证书。在另一种情景中,还可以使用诸如简单证书注册协议(Simple Certificate Enrollment Protocol,SCEP)之类的协议将证书分发给客户端设备106。在这种情景中,管理服务112或另一服务可以使用由API实现的协议将证书分发给客户端设备106,该API由客户端设备106执行的操作系统提供。身份证明或安装身份证明所采用的简档还可以指定安装在客户端设备106上的哪些应用程序允许访问身份证明。安装身份证明可采用的简档的示例为“单点登录简档”。

管理服务112还可以辅助确保由管理服务112管理的客户端设备106按照各种合规规则(compliance rule)进行操作。在一种情景中,管理服务112可以发出管理命令,其指示客户端设备106针对合规规则采取特定的动作。例如,如果客户端设备106被指定为丢失或被盗,则管理服务112可以发出命令,指示客户端设备106擦除存储在客户端设备106上的数据和应用程序。如果管理服务112确定客户端设备106违反了关于安装在客户端设备106上的未授权的修改或未授权的应用程序的合规规则,则管理服务112可以发出命令,指示客户端设备106擦除存储在客户端设备106上的数据和应用程序。作为另一个示例,管理服务112还可以发出命令,指示客户端设备106激活客户端设备106的显示器锁定,该显示器锁定要求用户输入PIN以便使用客户端设备106。客户端设备106还可以本地地存储合规规则,并且使用安装在客户端设备106上的进程来实施合规规则。

存储在数据存储121中的数据包括例如用户数据133。数据存储121还可以存储合规规则、用户电子邮件、日历数据、联系人数据、文档、文件以及未被描绘并且对于充分理解本公开的示例不是必需的其他企业数据。用户数据133可以包括认证用户账户可采用的信息,诸如用户凭证、用户名/密码对,或者任何类型的加密形式的认证凭证。用户数据133还可以包括诸如应用程序、电子邮件、联系人、日历数据、文档、文件或与用户的用户账户或客户端设备106相关联的其他数据之类的数据。

设备数据136可以表示存储在数据存储121中的数据,该数据存储121与向管理服务112注册为托管设备的客户端设备106相关联。设备数据136可以包括与客户端设备106相关联的唯一设备标识符、与特定客户端设备106相关联的设备策略、关于与客户端设备106相关联的配置简档的信息、与特定客户端设备106相关联的状态信息以及辅助管理服务112管理客户端设备106的其他数据。当特定客户端设备106向管理服务112注册为托管设备时,管理服务器112可以在设备数据136中创建条目,使得客户端设备106可以与特定用户的用户账户相关联。

身份证明138可以表示公钥证书,公钥证书包括关于特定用户以及与用户相关联的密钥的信息。身份证明138还可以包括作为证明的签名者的证明机构的数字签名。在一些情景中,如上所述,身份证明138可以由管理服务112自签名,其可以代表用户生成身份证明138,所述身份证明138被用于各种身份验证目的。

应用程序安装数据141表示与应用程序相关联的数据,该应用程序作为托管应用程序被安装在与用户账户相关联的一个或更多客户端设备106上。应用程序安装数据141可以包括安装在特定用户的客户端设备106上的应用程序的身份、用于应用程序的特定安装的许可数据、应用程序设置、配置、应用程序的副本、版本信息或与安装在用户的客户端设备106上的应用程序相关联的任何其他数据。应用程序安装数据141还可以包括与客户端设备106上的应用程序的特定安装相关联的认证密钥142。在本公开中,客户端设备106上的应用程序的特定安装也被称为应用程序安装。

认证密钥142可以包括会话令牌、访问令牌或其他类型的令牌,其允许在不需要用户的实际凭证(例如用户名/密码对)的情况下验证用户账户。认证密钥142还可以包括由管理服务112生成并与应用程序安装相关联的密钥散列消息认证码(keyed-hash message authentication code,HMAC)。认证密钥142是与应用程序在特定客户端设备106上的特定安装相关联的唯一代码或令牌,其中应用程序在管理服务112的指导下作为托管应用程序被安装。一旦认证了用户的身份,认证密钥142可以被提供给应用程序安装,并且可以被应用程序安装用于向管理服务112认证其自身。

客户端设备106代表可以与用户或企业相关联的一个或更多设备,其可以向管理服务112注册为托管设备。客户端设备106可以表示可以体现为台式计算机、膝上型计算机、个人数字助理、蜂窝电话、智能手机、机顶盒、音乐播放器、网络平板电脑、平板电脑系统、游戏机、电子书阅读器或具有相同能力的任何其他设备等形式的基于处理器的系统(诸如计算机系统)。客户端设备106可以包括显示器,其包括例如一个或更多诸如液晶显示(LCD)显示器或其他类型的显示器设备的设备。客户端设备106还可以配备有联网能力或联网接口,包括诸如NFC能力、RFID读取和/或写入能力、麦克风和/或扬声器或其他局部通信能力的局部联网或通信能力。

客户端设备106可以被配置成执行操作系统143,该操作系统143提供辅助管理服务112对设备进行管理的各种API。例如,操作系统143可以允许客户端设备106采用管理服务112注册为托管设备。操作系统143还可以允许通过管理服务112将配置简档安装在客户端设备106上。在一种情景中,配置简档可以包括由管理服务112生成的或由其获得的身份证明。操作系统143还可以实现安全和认证协议,例如Kerberos认证。在一个示例中,操作系统143可以拦截某些网络通信,该某些网络通信与被发送到安装在客户端设备106上的应用程序或服务的认证协议相关,并且可以代表应用程序或服务处理对这些通信的响应。

例如,如果诸如管理服务112的网络服务发布具有对应于“未授权”消息的状态码401的超文本传输协议(HTTP)响应或者对认证的请求,则操作系统143可以拦截通信并确定是否已经在客户端设备106上安装了适当的凭证或身份证明。对认证的请求可以包括对必要的认证协议、凭证或身份证明的指示以便完成认证。例如,认证请求可以指示管理服务112需要Kerberos认证,以便完成对客户端设备106的认证。如果在客户端设备106上安装了适当的凭证或身份证明,则操作系统143可以代表通信被发送到的应用程序或服务来对通信进行回复。

客户端设备106还可以执行各种应用程序,诸如管理组件145、一个或更多托管应用程序147以及其他应用程序、服务或过程。管理组件145可以监控或管理客户端设备106的数据、应用程序或硬件组件的至少一部分。管理组件145还可以识别客户端设备106是否正在按照已经指派给客户端设备106的合规规则进行操作。在一些示例中,管理组件145可以用作客户端设备106的操作系统的一部分。在其他示例中,管理组件145可以在客户端设备106的应用层中起作用。或者,管理组件145可以是例如使用软件开发工具包(Software Development Kit,SDK)开发的应用程序的一部分,所述软件开发工具包辅助在应用程序中包括监控或管理客户端设备106的至少部分资源的功能。

管理组件145可以在客户端设备106启动时由客户端设备106自动执行。另外,管理组件145可以作为客户端设备106中的后台进程运行。因此,在一些示例中,管理组件145可以在没有用户干预的情况下执行。另外,管理组件145可以与管理服务112通信,以便辅助对客户端设备106的管理以及合规规则的实施。管理组件145还可以辅助将客户端设备106向管理服务112注册为托管设备。为了辅助注册,管理组件145可以通过在客户端设备106的显示器上呈现的用户界面来获得用户凭证,诸如用户名/密码组合。然后,管理组件145可以启动客户端设备106向管理服务112的注册。例如,管理组件145可以在客户端设备106上安装管理简档,其允许管理组件145和/或管理服务112使用由操作系统143提供的管理API来管理客户端设备106。

托管应用程序147可以表示在管理服务112的指导下安装的任何应用程序。管理服务112可以发出命令,指示客户端设备106安装特定应用程序作为托管应用程序147,使得管理服务112可以管理应用程序的安装。以这种方式,管理服务112可以启动对托管应用程序147的删除或对由托管应用程序147使用的数据的删除,指定由托管应用程序147使用的设置或策略,或者执行与托管应用程序147相关联的由操作系统143支持的其他管理功能。

设备简档(device profile)149可以存储在客户端设备106上并由操作系统143管理。设备简档149可以表示可以允许管理员将配置信息分发到托管设备的配置简档。设备配置文件149可以包括例如电子邮件设置、网络设置、身份证明或者管理员可能希望在客户端设备106上驻留的任何其他配置数据。管理服务112可以将设备简档149与在客户端设备106上安装设备简档149的命令一起发送到客户端设备106,使得它们可以由也被安装在客户端设备106上的某些应用或服务访问。

在本公开的上下文中,在管理服务112的指导下安装在客户端设备106上的设备简档149可以包括身份证明138,该身份证明138由管理服务112代表与客户端设备106相关联的用户账户生成或获得。因此,在向管理服务112注册客户端设备106之后,管理服务112可以发送包括身份证明138的设备简档149以安装在客户端设备106上。由于管理服务112可以生成或获得与用户账户相关联的身份证明138,管理服务112还可以通过确认由客户端设备106提供的证书与存储在用户数据133中的身份证明138相匹配来验证客户端设备106的身份。包含身份证明138的设备配置文件149可以通过安全通信链路,例如网络118上的安全套接层(secure sockets layer,SSL)连接,被发送到客户端设备106。

为了辅助认证密钥142安全分发到客户端设备106上的应用程序安装,管理服务112可以通过利用由操作系统143(例如Kerberos)实现安全协议来认证托管应用程序147。在一种情景中,当由用户启动时,托管应用程序147可以通过网络向管理服务112发送通信。托管应用程序147可以被指示(instrumented)为向管理服务112提供可以是会话令牌、一次性密码或者任何其他密钥的认证密钥142,以便访问可以通过管理服务112或可依赖管理服务112来认证托管应用程序147的任何其他系统访问的资源。

在一种情景中,托管应用程序147可以提供由管理服务112已过期的或是无效的认证密钥142。如果托管应用程序147第一次被启动,则托管应用程序147将不具有与应用程序的安装相关联的认证密钥142以提供给管理服务112。在任一情景中,管理服务112可以用认证请求或指示托管应用程序147未被认证的通信来对托管应用程序147的安装进行回复。

认证请求可以包括具有指示托管应用程序147未被授权的状态码401的HTTP响应。操作系统143可以拦截认证请求并且确定适当的身份证明138是否存储在客户端设备106上,其可以提供给管理服务112。例如,操作系统143可以基于域名、用户标识符或嵌入在认证请求中的任何其他信息而验证适当的身份证明138。管理服务112可以验证由操作系统143提供的身份证明138,并且用认证密钥142对托管应用程序147的安装进行回复,对托管应用程序147的安装存储认证密钥142以用于随后与管理服务112或另一个服务器或者提供对资源的访问的应用程序进行通信。对托管应用程序147的安装可以将认证密钥142存储在访问受限的存储中,使得操作系统143可以禁止安装在客户端设备106上的其他应用程序访问。

管理服务112还可以撤销分配给托管应用程序147的认证密钥142,这将认证密钥142与数据存储121中的用户的用户账户解除关联。在这种情景中,对认证密钥142的撤销还可以撤销对用于在客户端设备106上的托管应用程序147的安装的特定资源的访问。

接下来参照图2A-2B,示出了根据本公开的示例的示出客户端设备106与计算环境109之间的交互的顺序图。如步骤201所示,管理服务112可以发出命令以在由管理服务112管理的客户端设备106上安装设备简档149。设备简档149可以包括由管理服务112生成或获得的代表与客户端设备106相关联的用户的身份证明138。身份证明138可以辅助客户端设备106的认证以用于随后的与管理服务112的通信。

证书简档(certificate profile)可以被发送到由客户端设备106执行的操作系统143,所述操作系统143提供了辅助对包含身份证明138的设备简档149的安装的API。在步骤203中,操作系统143可以安装包括身份证明138的设备简档149。操作系统143可以验证设备简档149是否从具有在客户端设备106上安装设备简档149的权限的管理服务112接收。换句话说,操作系统143可以验证设备简档149是从具有向客户端设备106发出MDM命令的权限的系统接收的。

在步骤205中,管理服务112可以向操作系统143发出安装作为托管应用程序147的应用程序的命令。在步骤206中,操作系统143可以启动由客户端设备106上的命令所识别的应用程序的安装。在一些示例中,安装作为托管应用程序147的应用程序的命令还可以被发送到管理组件145或由客户端设备106执行的任何其他进程或代理,其具有代表管理服务112启动对应用程序的安装的特权。在步骤206中,操作系统143可以安装作为托管应用程序147的应用程序。

在步骤207中,由操作系统143安装的托管应用程序147可以发送命令,以连接或访问管理服务112控制访问的一个或更多资源。管理服务112可以确定该命令是否包含对应于托管应用程序147的安装的认证密钥142。在所描绘的情景中,因为连接命令是托管应用程序147第一次尝试联系管理服务112,所以托管应用程序147不具有认证密钥142,认证密钥142认证其对管理服务112的访问。

相应地,在步骤209中,管理服务112可以用认证的命令或认证请求来对连接命令进行回复。如上所述,认证请求可以包括具有对应于“未授权”消息的状态码401的HTTP响应。认证请求可以被发送到操作系统143或被操作系统143拦截,操作系统143实现诸如Kerberos的安全协议。在步骤211中,操作系统143可以代表托管应用程序147用存储在客户端设备106上的身份证明138对认证请求进行回复。在步骤213中,管理服务112可以验证身份证明138,以便认证客户端设备106的身份或者与客户端设备106相关联的用户账户。

继续图2A的顺序图,现在参照图2B。如步骤215所示,一旦响应于来自管理服务112的认证请求而验证操作系统143提供的身份证明138,管理服务112就可以生成或获得认证密钥142,并且将认证密钥142发送到托管应用程序147。认证密钥142可以包括会话密钥、会话令牌、认证令牌、一次性密码或者在随后的通信中可以由托管应用程序147用来向管理服务112认证其自身的任何其他凭证。例如,为了访问电子邮件、文档或托管应用程序147与管理服务112或计算环境109中的其他进程进行通信的其他资源,可以提供认证密钥142作为凭证,其认证在与特定用户账户相关联的客户端设备106上的托管应用程序147的特定安装。

在步骤217中,托管应用程序147可以安装认证密钥142。安装认证密钥142可能需要将认证密钥142保存在客户端设备106上的托管应用程序147可访问的安全存储区域中。在步骤219中,托管应用程序147可以将认证密钥142提供给管理服务112。可以将认证密钥142作为访问通过网络118可访问的资源的请求的一部分发送到管理服务112。资源可以包括电子邮件、文档、联系人数据、日历数据或管理服务112控制访问的任何其他资源。在步骤221中,管理服务112可以验证从托管应用程序147接收的认证密钥142,以确定是否应该准许托管应用程序147访问所请求的资源。

接下来参照图3A-3B,示出了提供管理服务112的操作的一个示例的流程图。作为替换,图3A-3B示出的流程图可以被看作描绘了在计算环境101中实现的方法的元件的示例。属于管理服务112的功能可以在由计算环境101执行的单个进程或应用程序中或者在多个进程或应用程序中实现。仅出于说明的目的而呈现如本文讨论的功能的分离或分割。

从步骤301开始,管理服务112可以向客户端设备106发送包括身份证明138的设备简档149。设备简档149可以以证书简档命令、配置简档、或者可以引导客户端设备106的操作系统143在客户端设备106上安装身份证明138的任何其他命令或文档。身份证明138还可以识别与客户端设备106相关联的用户账户的用户名、与管理服务112或用户的企业相关联的域名、或者操作系统143可以从中识别从管理服务112发送到客户端设备106的后续认证请求的任何其他识别信息。

在步骤303中,管理服务112可以启动在客户端设备106上的作为托管应用程序147的应用程序的安装。管理服务112可以发出指导操作系统143或管理组件145获取并在客户端设备106上安装作为托管应用程序147的该应用程序。在步骤305中,管理服务112可以从托管应用程序147的安装中接收对内容的请求。在一些示例中,可以向第三方服务进行对内容的请求。在这种情况下,管理服务112可以响应于第三方服务向托管应用程序147的安装发送认证请求,来代表第三方服务向客户端设备106上的托管应用程序147的安装辅助提供认证密钥。该请求可以包括根据Kerberos协议的连接命令。该请求还可以包括来自托管应用程序147的对资源的任何其他类型的连接请求。

在步骤307中,管理服务112可以响应于从托管应用程序147接收对内容的请求,向托管应用程序147发送认证请求。如上所述,认证请求可以包括具有指示托管应用程序147是未被授权的状态码401的HTTP响应。在步骤309中,管理服务112可以从客户端设备106接收身份证明138。在步骤310中,管理服务112可以验证从托管应用程序147接收到的身份证明138。如果身份证明138未通过验证,则由于托管应用程序147未被授权访问所请求的资源,因此该过程继续到完成。如果证书未正确签名、未签名、识别不正确的用户,或者包含导致身份证明138从最初在步骤301中由管理服务112提供到由客户端设备106的身份证明138而变化的任何其他缺陷,则身份证明138未通过验证。

如果身份证明138由管理服务112验证,则过程进行到图3B。在图3B的步骤311中,响应于身份证明138被验证,管理服务112将认证密钥142发送到客户端设备106上的托管应用程序147的安装。在步骤313中,管理服务112可以从托管应用程序147接收认证密钥142。在步骤315中,管理服务112可以确定认证密钥142是否对应于由管理服务112提供给客户端设备106的认证密钥142。换句话说,管理服务112可以验证通过管理服务112请求内容的应用程序的安装与认证密钥142被提供给其的安装是相同的安装。如果认证密钥142被验证,则在步骤319中,管理服务112可以准许托管应用程序147访问所请求的资源。如果认证密钥142未被验证,则在步骤317中,管理服务112可以拒绝托管应用程序147的安装访问所请求的资源。

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

尽管流程图显示了特定的执行顺序,但是应该理解的是,执行的顺序可以不同于所示的顺序。例如,两个或更多元件的执行顺序可以相对于所示的顺序进行交换。此外,连续显示的两个或更多元件可以同时执行或部分同时执行。此外,在一些示例中,流程图中示出的一个或更多元件可以被跳过或省略。

客户端设备106、计算环境109或本文描述的其他组件可以包括至少一个处理电路。这样的处理电路可以包括例如一个或更多处理器以及耦合到本地接口的一个或更多存储设备。本地接口可以包括例如具有伴随地址的数据总线/控制总线或任何其他合适的总线结构。

用于处理电路的一个或更多存储设备可以存储可由处理电路的一个或更多处理器执行的数据或组件。例如,管理服务112、操作系统143、管理组件145或其他组件可以存储在一个或更多存储设备中,并且可以由一个或更多处理器执行。而且,诸如数据存储121的数据存储可以存储在一个或更多存储设备中。

本文描述的管理服务112、操作系统143、管理组件145或其他组件可以以硬件形式、作为可由硬件执行的软件组件、或作为软件和硬件的组合来体现。如果体现为硬件,则本文描述的组件可以被实现为采用任何合适的硬件技术的电路或状态机。硬件技术可以包括例如一个或更多微处理器、具有用于在施加一个或更多数据信号时实现各种逻辑功能的逻辑门的分立逻辑电路、具有适当逻辑门的专用集成电路(application specific integrated circuit,ASIC),可编程逻辑器件(例如,现场可编程门阵列(field-programmable gate array,FPGA)和复杂可编程逻辑器件(complex programmable logic devices,CPLD))。

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

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

需要强调的是,本公开的上述示例仅仅是为了清楚地理解本公开的原理而提出的实现方式的示例。在本质上不偏离本公开的精神和原理的情况下,可以对上述示例做出许多变型和修改。所有这样的修改和变化在本文中旨在被包括在本公开的范围内。

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