MDX 开发人员指南

Citrix Endpoint Management™ 是一种企业解决方案,可让您管理移动设备、应用程序和数据。Endpoint Management 移动应用程序管理 (MAM) 的基本前提是,它将企业功能注入到现有应用程序中,然后这些应用程序托管在公司的私有应用商店、Apple App Store 或 Google Play Store 中。

  • 要为移动应用程序添加 Endpoint Management 企业功能,您需要使用 MDX Toolkit 封装它们。MDX Toolkit 是一种应用程序容器技术,它通过添加 MDX 功能来增强移动设备体验,并为应用程序在 Endpoint Management 中的安全部署做好准备。MDX 功能包括策略和设置、签名安全证书以及移动应用程序管理代码。

  • MDX Toolkit 包含 MDX App SDK,它通过 Citrix MDX 应用程序容器技术为您的移动应用程序提供一整套 MDX 功能。API 使您能够:

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

    除了在使用 Endpoint Management 时可通过 MDX 策略进行集中配置之外,使用 MDX App SDK 的应用程序还可以在 Citrix 环境外部独立运行。

MDX App SDK 10.2 中的新增功能

适用于 iOS 的 MDX App 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 App SDK 现在包含适用于 MDX 共享保管库功能的 Android API,使您能够在应用程序之间共享托管内容。例如,共享保管库支持通过已注册的应用程序共享证书和私钥,以便应用程序可以从安全保管库而不是从 Secure Hub 获取证书。有关详细信息,请参阅 XenMobile Android 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 Store(内部应用商店)。管理员将移动应用程序上传到 Endpoint Management,然后配置应用程序和设备策略。

    • Secure Hub

    • 企业用户在其移动设备上安装适用于 Android 或 iOS 的 Secure Hub,然后使用设备注册 URL 和凭据配置应用程序。Secure Hub 打开时,用户从 Citrix Endpoint Management Store 中选择企业应用程序。应用程序下载并安装到设备后,Secure Hub 充当管理这些应用程序的中心,执行用户身份验证和集中管理策略更新等任务。
    • MDX

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

  • MDX Toolkit 和 MDX App SDK

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

本开发人员指南侧重于适用于 ISV 的应用程序封装。

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

MDX App SDK 提供双模式应用程序行为,使您能够部署可在有或没有 MDX 基础结构的情况下运行的应用程序。独立于 Secure Hub 运行的应用程序称为非托管应用程序。当这些应用程序满足特定条件时,它们会转换为托管应用程序并在 Secure Hub 的控制下运行。

  • 双模式行为与直接从 Endpoint Management 后端部署的 MDX 应用程序形成对比。这些应用程序始终需要 Citrix MDX 的存在以及来自 Endpoint Management Store 的授权才能运行。但是,借助 Intune,这些应用程序可以在没有 Secure Hub 或 Endpoint Management Store 的情况下部署和管理。

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

应用程序如何从非托管转换为托管取决于应用程序是作为通用应用程序还是高级应用程序封装的:

  • 通用应用: 通用应用托管在苹果应用商店或 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 允许您将应用商店 URL 嵌入到 .mdx 文件中,然后您可以将该文件直接交付给客户或上传到 Citrix Ready Marketplace™,如下一节所述。您可以通过应用商店、自行托管或分发给客户来交付应用文件。

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

MDX Toolkit ISV 应用打包的输入和输出图

ISV 应用打包添加的项目包括:

  • 一个信息文件,其中包含 MDX SDK 框架与 Secure Hub 绑定时所需的数据。相应的绑定信息通过添加到 Endpoint Management 的 .mdx 文件从 Endpoint Management 服务器传递到 Secure Hub。数据包括用于自识别的应用 ID 和用于应用更新检查的包 ID 等项目。
  • 嵌入到与 MDX App SDK 集成的应用中的 OpenSSL FIPS 加密对象模块上的 FIPS 指纹。
  • 仅适用于 iOS:添加到应用文件的新 URL 方案,该方案也通过管理员添加到 Endpoint Management 的 .mdx 文件传递到 Secure Hub。

关于 Citrix Ready® 计划

Citrix 通过 Citrix Ready 计划评估和认证 ISV 应用。评估主要涉及 Endpoint Management 集成测试。该认证可确保应用与 Endpoint Management 基础结构兼容,从而让企业对您的应用充满信心。

作为 Citrix Ready 计划的一部分,您可以直接在 Apple App Store 或 Google Play Store 中发布您认证的 ISV 应用二进制文件。这意味着您无需向企业分发二进制文件,让您对应用更新拥有更多控制权。此外,您的应用使用您的 ISV 证书签名。您还可以选择直接向企业分发您的认证应用或自行托管。

您还可以选择如何分发 ISV 应用的 .mdx 捆绑包:将捆绑包发布到 Citrix Ready Marketplace 或直接将捆绑包分发给您的 Citrix Endpoint Management 客户。

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

MDX 应用用户体验

用户与集成 MDX App SDK 的应用交互的方式取决于他们如何安装和启动应用。

用户从 Secure Hub 启动

  1. 用户打开 Secure Hub 和 Apple App Store 或 Google Play Store。
  2. 用户登录 Endpoint Management Store,然后订阅该商店。
  3. 用户从公共商店下载并安装应用。
  4. 如果需要,Secure Hub 提示用户登录。
  5. 如果应用以前是非托管的,它将静默转换为托管模式。

用户从 Apple App Store 或 Google Play Store 启动

如果设备上已存在 Secure Hub,用户对通用应用和高级应用具有以下体验。

通用应用

  1. 用户启动应用。

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

  3. 如果用户选择让其企业管理应用,Secure Hub 会在需要时提示用户登录。

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

    如果设备上没有 Secure Hub 或应用未获得授权,应用将以非托管模式运行,就像常规的公共商店应用一样。

高级应用

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

MDX App SDK 的已知问题

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