MDX 开发人员指南

Citrix Endpoint Management 是一个企业解决方案,可供您用于管理移动设备、应用程序和数据。Endpoint Management 移动应用程序管理 (MAM) 的基本前提条件是向预先存在的应用程序注入企业功能,然后托管在公司的专用应用商店、Apple App Store 或 Google Play 应用商店中。

要向移动应用程序中添加 Endpoint Management 企业功能,请通过 MDX Toolkit 封装这些功能。MDX Toolkit 是用于增强移动设备体验的应用程序容器技术,可以通过添加 MDX 功能使用 Endpoint Management 实现安全部署。MDX 功能包括策略和设置、已签名的安全证书和移动应用程序管理代码。

MDX Toolkit 包括 MDX 应用程序 SDK,其通过 Citrix MDX 应用程序容器技术向您的移动应用程序提供一组完整的 MDX 功能。API 允许您︰

  • 基于 Endpoint Management 策略在封装应用程序中执行操作。例如,如果 Endpoint Management 策略阻止在 MDX 应用程序中执行剪切和复制,则您可以阻止在自己的应用程序中执行文本选择操作。您的应用程序可以与其他启用了 MDX 的应用程序进行通信和共享策略。
  • 在启用了 MDX 的应用程序中检测活动。例如,您可以检查某个应用程序是封装的还是托管的应用程序。
  • 添加自定义功能,例如安全性和策略执行。
  • 开发将在 Citrix 环境内部或外部运行的移动应用程序。

    除了可通过 MDX 策略集中配置采用 MDX 应用程序 SDK 的应用程序外(当这些应用程序与 Endpoint Management 一起使用时),还可以在 Citrix 环境之外独立运行这些应用程序。

MDX 应用程序 SDK 10.2 中的新增功能

适用于 iOS 的最新 MDX 应用程序 SDK 的 10.2 版包括以下增强功能和更新。

“最低数据保护类”策略已隐藏。要使此策略在 Citrix Endpoint Management 中可见,请打开应用程序的 policy_metadata.xml 文件(位于 Applications/Citrix/MDXToolkit/data 中),在 MinimumDataProtectionClass 部分,将 PolicyHidden 的值更改为 false。在封装应用程序后,当您向 Citrix Endpoint Management 中添加应用程序时,将显示此策略。

在 Xcode 构建过程中集成应用程序封装。开发人员现在可以将 iOS 应用程序作为 Xcode 构建过程的一部分封装和发布。有关详细信息,请参阅将 SDK 集成到您的应用程序库中

支持 Android 应用程序中的共享保管库。MDX 应用程序 SDK 现在包括了针对 MDX 共享保管库功能的 Android API,使您能够在各种应用程序之间共享托管的内容。例如,共享保管库支持通过已注册的应用程序共享证书和私钥,以便应用程序可以从安全的保管库而不是从 Secure Hub 获取证书。有关详细信息,请参阅适用于 Android 的 XenMobile API

注意:

开发人员必须对用于执行后台处理任务(如锁定设备上的内容刷新或者后台同步)的已封装应用程序进行测试。

MAM 功能

可通过策略(由应用管理员在 Endpoint Management 控制台中根据每个应用程序进行更新)控制 Endpoint Management 所添加的企业功能。Endpoint Management 将按照管理员确定的计划向移动设备推送策略。策略管理功能,如下所示:

  • 身份验证。当打开托管的应用程序时,Endpoint Management 可能会要求用户输入企业凭据或 PIN。可定期地重复执行此凭据要求。
  • 应用程序更新。当有适用于托管应用程序的可用更新时,Endpoint Management 会向用户发出通知。管理员可在特定时间段内强制要求执行更新。如果用户不接受更新,则在此时间段之后旧版本的应用程序将无法执行。
  • 远程锁定和擦除。管理员可以对每个应用程序或每个设备暂时锁定或永久擦除应用程序。
  • 网络限制和 VPN。Endpoint Management 策略可控制网络访问:可阻挡访问、通过完整 VPN 路由访问,或者通过代理 VPN 路由访问。VPN 路由过程通过企业托管的 Citrix Gateway 设备执行。
  • 应用程序之间的通信限制。Endpoint Management 策略将确定是阻止在应用程序之间共享文档,还是仅允许在托管应用程序之间共享文档。这样,您应用程序中的“打开方式”弹出窗口可忽略非托管应用程序。
  • 功能限制。Endpoint Management 策略可以禁用应用程序的各种设备功能。例如,摄像头、麦克风和位置传感器。

Endpoint Management 组件

以下 Endpoint Management 组件可提供 MAM 功能。

  • Citrix Endpoint Management 服务器

    此企业或云驻留服务器用于托管 Citrix Endpoint Management 应用商店、内部应用程序商店。管理员上载移动应用程序到 Endpoint Management,然后配置应用程序和设备的策略。

  • Secure Hub

    企业用户在其移动设备上安装适用于 Android 或 iOS 的 Secure Hub,然后使用设备注册 URL 和凭据配置应用程序。打开 Secure Hub 后,用户可以从 Citrix Endpoint Management 应用商店中选择企业应用程序。在设备上下载并安装应用程序之后,Secure Hub 将是管理这些应用程序和执行各种任务(例如执行用户身份验证和更新集中管理的策略)的中心位置。

  • MDX

    MDX 是 MAM 功能的来源。MDX Toolkit 将 MDX 代码添加到您的移动应用程序。除了封装应用程序外,您将不直接使用 MDX 代码。

  • MDX Toolkit 和 MDX 应用程序 SDK

    MDX Toolkit 向现有移动应用程序添加了企业功能,是一个称为应用程序封装的过程。MDX 应用程序 SDK 允许开发人员和系统集成商通过 MDX 启用其移动应用程序。应用程序封装过程执行三项主要任务。首先,它向您的应用程序注入 Citrix 代码,用于实现应用程序管理功能。该任务的输出内容为一个新应用程序文件。然后,应用程序封装过程使用安全证书对新应用程序文件进行签名。最后,应用程序封装过程创建一个 MDX 文件,其中包含策略信息和其他设置。在某些情况下,经过签名的应用程序文件也将直接包含在 MDX 文件中。

本开发人员指南重点介绍适用于 ISV 的应用程序封装过程。

ISV 应用程序的非托管和托管模式

MDX 应用程序 SDK 提供了双模式应用程序行为,允许您部署能够在带有或不带 MDX 基础结构的环境中运行的应用程序。独立于 Secure Hub 运行的应用程序称为非托管应用程序。当这些应用程序满足特定条件时,将转换为托管应用程序,并在 Secure Hub 的控制下运行。

双模式行为与直接从 Endpoint Management 后端部署的 MDX 应用程序形成对比。这些应用程序始终要求存在 Citrix MDX 并从 Endpoint Management 应用商店获得授权,才能运行。但是,使用 Intune,这些应用程序可以在不存在 Secure Hub 或 Endpoint Management 应用商店的情况下进行部署和管理。

您可以使用 Endpoint Management API 指定在将应用程序集成到 MDX 中时所需的双模式行为类型。您可以开发一个应用程序的两种版本,其中一个为非托管版本,一个为托管版本;也可以开发一个应用程序以供独立使用和包含在 MDX 中。MDX 框架强制执行与非托管和托管应用程序关联的默认行为。

非托管应用程序转换为托管应用程序的方式取决于该应用程序是封装为“一般”应用程序还是“高级”应用程序:

  • 常规应用程序:常规应用程序托管在 Apple App Store 或 Google Play 应用商店中。没有 Secure Hub 的用户通常能够以非托管模式下载并运行应用程序,就像任何通用的应用商店应用程序一样。如果非托管用户稍后安装 Secure Hub,则如果满足这些条件,ISV 应用程序将转换为托管模式。

    • 用户至少登录 Citrix Endpoint Management 企业应用商店一次。

    • 用户位于应用程序所部署到的 Endpoint Management 交付组中。

    • MDX 订阅用户。

    • 当系统提示时,用户确认他们的企业可管理应用程序。

      如果用户退出企业应用程序管理功能,他们可以继续运行供个人使用的应用程序。

  • 高级应用程序:高级应用程序是针对企业用户的应用程序。例如,Citrix MDX 应用程序就是高级应用程序。虽然高级应用程序通常在托管模式下运行,但是嵌入式 MDX 框架允许高级应用程序通过一组默认 MDX 策略在非托管模式下运行(可通过默认策略文件进行设置)。因此,您可以有效地控制应用程序行为和使用 MDX 功能,即使用户不与企业帐户相关联也是如此。

    如果非托管用户在以后安装 Secure Hub,则如果以下条件得到满足,应用程序将以静默方式转换为托管模式。

    • 用户位于应用程序所部署到的 Citrix Endpoint Management 交付组中。
    • 用户根据需要登录到 Secure Hub。
    • MDX 订阅用户。

注意

应用程序无法从托管模式传输回非托管模式。

下图汇总了“一般”应用程序和“高级”应用程序的区别(基于它们是托管还是非托管模式)。

常规应用程序与高级应用程序之间的差异示意图

ISV 应用程序封装

本节提供有关 ISV 的应用程序封装过程的常规信息。由企业管理员执行的应用程序封装过程在关于 MDX Toolkit中进行了讨论。

在封装 ISV 应用程序时,MDX Toolkit 将创建两个文件,即 .mdx 文件或应用程序文件(.ipa、.app 或 .apk)。MDX Toolkit 允许向 .md 文件嵌入应用商店 URL,然后,您可以将其直接交付给客户或上载到 Citrix Ready Marketplace,如下一节中所述。您可以通过以下方式交付应用程序文件:应用商店、自我托管,或向客户分发。

如下图所示,MDX Toolkit 将应用程序文件(.ipa、.app 或 .apk)与 Citrix 组件和您的密钥库或签名证书组合在一起,生成 .mdx 文件和经修改的应用程序文件。

ISV 应用程序封装的 MDX Toolkit 输入和输出示意图

通过 ISV 应用程序封装过程添加的项目包括:

  • 一个信息文件,其中包含 MDX SDK 框架与 Secure Hub 绑定时框架所需的数据。相应绑定信息通过已添加到 Endpoint Management 的 .mdx 文件从Endpoint Management 服务器传递到 Secure Hub。这些数据包括一些项目,例如用于自我标识的应用程序 ID 和用于应用程序更新检查操作的软件包 ID。
  • 嵌入在应用程序中的 OpenSSL FIPS Crypto Object Module 上的 FIPS 指纹已集成到 MDX 应用程序 SDK。
  • 仅限 iOS:添加到应用程序文件的新 URL 方案也通过 .mdx 文件(由管理员添加到 Endpoint Management)传递到 Secure Hub。

关于 Citrix Ready 计划

Citrix 将通过 Citrix Ready 计划对 ISV 应用程序进行评估和认证。此评估过程主要涉及 Endpoint Management 集成测试。通过此认证,可确保应用程序与 Endpoint Management 基础结构兼容,从而在您的应用程序中提供可靠的企业功能。

在 Citrix Ready 计划中,您可以直接在 Apple App Store 或 Google Play 应用商店中发布经过认证的 ISV 应用程序二进制文件。这意味着,您不需要将二进制文件分发给企业,这样可以更好地控制应用程序更新。此外,可使用 ISV 证书对您的应用程序进行签名。也可以选择将经过认证的应用程序直接分发到企业,或者选择自行托管。

此外,还可以选择如何分发 ISV 应用程序的 .mdx 捆绑包:可以将该捆绑包发布到 Citrix Ready Marketplace,也可以将其直接分发给 Citrix Endpoint Management 客户。

有关详细信息,请参阅 Citrix Ready

MDX 应用程序用户体验

用户如何与 MDX 应用程序 SDK 中集成的应用程序进行交互,取决于他们如何安装和启动该应用程序。

用户开始使用 Secure Hub

  1. 用户打开 Secure Hub 和 Apple App Store 或 Google Play 应用商店。
  2. 用户登录到 Endpoint Management 应用商店,然后订阅该应用商店。
  3. 用户从公共应用商店下载并安装应用程序。
  4. Secure Hub 提示用户进行登录(如果需要)。
  5. 如果应用程序以前处于非托管状态,它以静默方式转换为受托管状态。

用户开始使用 Apple App Store 或 Google Play 应用商店

如果设备上已经存在 Secure Hub,则用户将在“一般”应用程序和“高级”应用程序中获得以下体验。

常规应用程序

  1. 用户启动应用程序。

  2. 如果该应用程序检测到 Secure Hub 安装,并且该应用程序已获得授权,则该应用程序将提示用户确认转换为托管模式。

  3. 如果用户选择让其企业管理应用程序,则 Secure Hub 将提示用户进行登录(如果需要)。

  4. 在 MDX 向用户订阅应用程序后,该应用程序将转换为托管模式。

    如果设备上不存在 Secure Hub 或应用程序未获得授权,则应用程序在非托管模式下运行,就像普通的公共应用商店的应用程序一样。

高级应用程序

  1. 用户启动应用程序。
  2. 如果应用程序检测到 Secure Hub 安装,并且该应用程序已获得授权,则该应用程序将以静默方式转换为托管模式。如果需要 Secure Hub 凭据,则应用程序将通知用户要转换为托管模式,并提示用户进行登录。

MDX 应用程序 SDK 的已知问题

  • 封装过程不适用于 Android 应用程序,除非它们包含图标。
  • 一些应用程序框架存在与 Citrix Endpoint Management 的兼容性问题。有关详细信息,请参阅移动应用程序开发框架支持(适用于 Android)和第三方库支持(适用于 iOS)。
  • 有关其他问题,请参阅已知问题
MDX 开发人员指南