MDX開発者ガイド

Citrix Endpoint Managementは、モバイルデバイス、アプリ、およびデータの管理を可能にするエンタープライズソリューションです。Endpoint Managementモバイルアプリ管理(MAM)の基本前提は、会社のプライベートアプリストア、Apple App Store、またはGoogle Play Storeにホストされる、既存のアプリケーションにエンタープライズ機能を追加することです。

モバイルアプリにEndpoint Managementエンタープライズ機能を追加するには、MDX Toolkitでモバイルアプリをラップします。MDX Toolkitはアプリコンテナテクノロジの1つで、MDX機能を追加することで、モバイルデバイス環境を強化し、Endpoint Managementによるセキュアな展開向けにアプリを準備します。MDX機能にはポリシーと設定、 署名済みのセキュリティ証明書、およびモバイルアプリ管理コードが含まれます。

MDX Toolkitには、Citrix MDXアプリコンテナテクノロジによって包括的なMDX機能セットをモバイルアプリに提供する、MDXアプリSDKが含まれています。APIを使用して次のことを行えます。

  • Endpoint Managementポリシーに基づいてラップされたアプリで操作を実行します。たとえば、Endpoint ManagementポリシーによってMDXアプリでのカット/コピーを禁止すると、アプリでのテキスト選択を禁止できます。アプリでは、他のMDX準拠アプリと通信してポリシーを共有できます。
  • MDX準拠アプリ内でアクティビティを検出します。たとえば、アプリがラップされているかどうかや、管理対象であるかどうかを確認できます。
  • セキュリティやポリシー適用などのカスタム機能を追加する。
  • Citrix環境内またはCitrix環境外で動作するモバイルアプリを開発する。

    MDXアプリSDKを使用するアプリは、Endpoint Managementで使用する場合にMDXポリシーによって一元的に構成できるだけでなく、Citrix環境外でスタンドアロンで動作できます。

MDXアプリSDK 10.2の新機能

iOS向けMDXアプリSDKのリリース10.2には、以下の機能強化が含まれています。

iOS 9のサポート。MDXアプリSDK 10.2はiOS 9をサポートしています。

重要:

Secure Hub 10.0.x、およびMDX Toolkit 10.0.xでラップされたアプリは、iOS 9では動作しません。開発者はMDX Toolkit 10.2でISVアプリを再度ラップする必要があります。ユーザーはデバイスをiOS 9にアップグレードする前に、アップグレード済みのアプリをインストールする必要があります。MDX Toolkit 10.0.xでラップされたアプリをユーザーがiOS 9で開こうとすると、ユーザーはこれらのアプリをアップグレードできず、MDX Toolkit 10.2でラップされたバージョンのアプリを再度インストールする必要があります。

iOS 9での変更の結果として、ラップされたアプリからiOS 9デバイスにダウンロードされたデータについて、MDXファイルベースの暗号化はiOS 9に対応していません。データベース暗号化およびキーチェーン暗号化は引き続き完全に機能します。MDX Toolkit 10.2は、デバイスのファイルシステムに格納されるアプリデータを暗号化するための代替メカニズムを備えています。データを保護するには、以下のオプションから選択できます。

  • iOSのファイルデータ保護機能を使用してデータを暗号化します。

Appleでは、iOSのファイルデータ保護機能を使用してデバイス上のすべてのアプリデータを暗号化するには、デバイスパスコードが必要です。このiOS保護機能をサポートするため、MDX Toolkit 10.2には新しいポリシーである[デバイスのパスコード]が含まれます。このポリシーを使用してiOS 9デバイスでPINまたはパスコードを必須にできます。デフォルトでは、このポリシーは [On] になっています。このポリシーはアプリ単位で適用され、Citrix Endpoint ManagementのモードがMDMでもMAMでも使用できます。

  • PINまたはパスコードの必須化に加えて、iOSのデータ保護の最低クラスも指定できます。このクラスはファイルシステムに格納されるアプリデータに使用されます。

ポリシーとiOS 9

  • Encrypt secrets using Passcodeキーによって有効化されるユーザーエントロピー機能は、iOS 9の影響を受けません。デバイス上のデータベース、キーチェーン、セキュアなボールトに格納されるデータに対するMDX暗号化は影響を受けません。
  • iOS 9デバイスでは、暗号化を有効化ポリシーによって有効化されるのは、データベースおよびキーチェーン暗号化のみになりました。それより前のiOSデバイスでは引き続き、 暗号化を有効化ポリシーによってMDXファイル暗号化も有効化されます。
  • デバイスパスコードが有効化されたデバイスに対する追加の保護については、MDXアプリSDKは、これらのアプリによってデバイスに保存されるファイル向けにより高いレベルのiOS暗号化も備えています。iOSファイル暗号化には複数のデータ保護レベルがあります。より高い保護レベルがアプリに指定されている場合を除いて、新しい最小データ保護クラスポリシーでアプリデータに使用する保護クラスを指定できます。 ポリシーの値は以下のとおりです。

Complete unless open – デバイスがロックされたときにファイルが開いていた場合、アプリでファイルを引き続き使用できます。この値は、NSFileProtectionCompleteUnlessOpenに対応しています。デフォルト値です。

Complete: デバイスがロックされている時はファイルを使用できません。この値は、NSFileProtectionCompleteに対応しています。

Until first lock – デバイスを再起動すると、ユーザーが初めてデバイスのロックを解除するまで、ファイルはロックされ読み取れません。この値は、NSFileProtectionCompleteUntilFirstUserAuthenticationに対応しています。

None – ファイルに特別な保護は設定されず、いつでも読み取りまたは書き込みできます。この値は、NSFileProtectionNoneに対応しています。

重要:

開発者はバックグラウンド処理(ロックされたデバイスでのコンテンツの更新またはバックグラウンドの同期など)を実行するラップされたアプリをテストする必要があります。

最小データ保護クラスポリシーは非表示になっています。このポリシーをCitrix Endpoint Managementで確認できるようにするには、(Applications/Citrix/MDXToolkit/dataにある)アプリのpolicy_metadata.xmlファイルを開き、MinimumDataProtectionClassセクションで、PolicyHiddenの値をfalseに変更します。アプリをラップ後、Citrix Endpoint Managementにアプリを追加すると、ポリシーが表示されます。

アプリのラップとXcode構築プロセスの統合。開発者は、Xcode構築プロセスの一部としてiOSアプリをラップして公開できるようになりました。詳しくは、「SDKをアプリライブラリに統合する」を参照してください。

Androidアプリでの共有コンテナのサポート。MDXアプリSDKに、MDX共有コンテナ機能用のAndroid APIが含まれるようになり、アプリ間で管理対象コンテンツを共有できるようになりました。たとえば、共有コンテナでは、登録されたアプリを介して証明書や秘密キーを共有できるため、Secure Hubからではなくセキュアなコンテナからアプリが証明書を取得できます。詳しくは、「AndroidのXenMobile API」を参照してください。

MAMの機能

Endpoint Managementによって追加されるエンタープライズ機能は、Endpoint Managementコンソールでアプリごとに管理者が更新するポリシーによって制御します。管理者が指定したスケジュールに基づいて、Endpoint Managementによってポリシーがモバイルデバイスにプッシュされます。ポリシーにより次のような機能を管理します。

  • 認証。管理対象アプリを開くときに、Endpoint Managementがユーザーに対して企業資格情報またはPINの入力を要求できます。この資格情報チャレンジを定期的に繰り返すことができます。
  • アプリの更新。管理対象アプリの更新が使用可能になると、Endpoint Managementがユーザーに通知します。管理者は、特定の期間内で更新を必須にできます。ユーザーが更新を受け入れない場合、その期間が経過すると、古いバージョンのアプリは実行されなくなります。
  • リモートロックとリモートワイプ。管理者はアプリごとまたはデバイスごとにアプリを一時的にロックまたは完全にワイプできます。
  • データの暗号化。iOS 9デバイスでは、Citrix Endpoint ManagementはデータベースファイルおよびキーチェーンファイルにはMDXファイル暗号化を使用し、ローカルに保存されたデータにはAppleファイル暗号化を使用します。iOS 9上でローカルに保存されたデータについては、より高い保護レベルがアプリに指定されている場合を除いて、最小データ保護クラスポリシーでアプリデータに使用する保護クラスを指定できます。
  • ネットワークの制限と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

    企業ユーザーは、モバイルデバイスにSecure Hub for AndroidまたはSecure Hub for iOSをインストールして、アプリをデバイス登録URLおよび資格情報で構成します。Secure Hubが開いたら、ユーザーがCitrix Endpoint Management Storeからエンタープライズアプリを選択します。アプリがダウンロードされてデバイスにインストールされると、Secure Hubがこれらのアプリを管理するためのハブとして機能し、ユーザー認証や、一元管理されているポリシーの更新などのタスクを実行します。

  • MDX

    MDXは、MAM機能のソースです。MDX ToolkitによってMDXコードがモバイルアプリに追加されます。アプリのラップ以外では、MDXコードは直接使用しません。

  • MDX ToolkitとMDXアプリSDK

    MDX Toolkitにより、アプリのラッピングと呼ばれるプロセスであるエンタープライズ機能が既存のモバイルアプリに追加されます。MDXアプリSDKにより、開発者およびシステムインテグレーターはモバイルアプリをMDX準拠にできます。アプリのラッピングでは、3つの主なタスクが実行されます。まず、アプリ管理機能を実装するCitrixコードがアプリに追加されます。このタスクの出力は、新しいアプリファイルです。次に、アプリのラッピングにより、新しいアプリファイルがセキュリティ証明書で署名されます。最後に、アプリのラッピングにより、ポリシー情報およびその他の設定が含まれたMDXファイルが作成されます。署名されたアプリファイルもMDXファイルに直接含まれる場合があります。

この開発者ガイドでは、ISVのアプリのラップについて重点的に説明します。

ISVアプリの非管理モードおよび管理モード

MDXアプリSDKにはデュアルモードアプリ動作が用意されており、MDXインフラストラクチャの内部または外部で実行できるアプリを展開できます。Secure Hubとは無関係に実行されるアプリは、非管理対象アプリと呼ばれます。特定の条件を満たしている場合、これらのアプリは管理対象アプリに移行し、Secure Hubの制御下で実行されます。

デュアルモード動作は、Endpoint Managementバックエンドから直接展開されたMDXアプリとは大きく異なります。これらのアプリでは必ず、Citrix MDXが存在しており、Endpoint Management Storeで承認が実行される必要があります。ただし、Intuneを使用する場合、Secure HubやEndpoint Management Storeがなくても、これらのアプリを展開して管理できます。

アプリをMDXと統合する際に、Endpoint Management APIを使用して、必要になるデュアルモード動作のタイプを指定できます。管理対象アプリと非管理対象アプリの2つのバージョンのアプリを開発したり、両方と無関係に使用してMDXに包含する単一のアプリを開発したりできます。MDXフレームワークによって、管理対象アプリおよび非管理対象アプリに関連付けられたデフォルト動作が適用されます。

非管理対象アプリから管理対象アプリへの移行は、アプリがGeneralアプリとしてラップされているのかPremiumアプリとしてラップされているのかによって異なります。

  • Generalアプリ: Generalアプリは、Apple App StoreまたはGoogle Play Storeにホストされます。Secure Hubのないユーザーは、一般的なアプリストアのアプリと同様に、アプリをダウンロードして通常は非管理モードで実行できます。管理対象外のユーザーが後でSecure Hubをインストールすると、以下の条件を満たしている場合、ISVアプリが管理対象モードに移行します。

    • ユーザーが1つまたは複数のCitrix Endpoint Managementエンタープライズストアにサインインしている。

    • ユーザーが、アプリが展開されているEndpoint Managementデリバリーグループに存在している。

    • MDXでユーザーがサブスクライブされている。

    • メッセージが表示されたら、ユーザーは企業がアプリを管理できることを確認します。

      ユーザーが企業のアプリ管理を解除した場合、個人使用として引き続きそのアプリを実行できます。

  • Premiumアプリ: Premiumアプリは、エンタープライズユーザーを対象とするアプリです。Citrix MDXアプリはPremiumアプリの一例です。Premiumアプリは通常、管理モードで実行されますが、埋め込みのMDXフレームワークでは、デフォルトのポリシーファイルで設定したデフォルトのMDXポリシーセットを使用してPremiumアプリを非管理モードで実行できます。そのため、ユーザーがエンタープライズアカウントに関連付けられていない場合でも、効率的にアプリ動作を制御してMDX機能を使用できます。

    管理対象外のユーザーが後でSecure Hubをインストールすると、以下の条件を満たしている場合、アプリが管理モードに自動的に移行されます。

    • ユーザーが、アプリが展開されているCitrix Endpoint Managementデリバリーグループに存在している。
    • 必要に応じて、ユーザーがSecure Hubにサインインしている。
    • MDXでユーザーがサブスクライブされている。

管理モードから非管理モードにアプリケーションを転換することはできません。

次の図は、管理対象か非管理対象かに基づいて、GeneralアプリとPremiumアプリの相違点について概要を示したものです。

GeneralアプリとPremiumアプリの違いを示す図の画像

ISVアプリのラッピング

ここでは、ISVのアプリのラップについて一般的な情報を説明します。エンタープライズ管理者が実行するアプリのラップについては、「MDX Toolkitについて」を参照してください。

ISVアプリをラップする場合、MDX Toolkitによって2つのファイル、.mdxファイルとそのアプリファイル(.ipa、.app、または.apk)が作成されます。MDX Toolkitでは、アプリストアURLを.mdxファイルに埋め込むことができ、次のセクションで説明するように、このファイルを顧客に直接配信するか、またはMDXアプリGalleryにアップロードできます。アプリファイルは、自分でホストするか、または顧客に配信して、アプリストアを介して配布します。

下の図で示しているように、MDX Toolkitはアプリファイル(.ipa、.app、または.apk)をCitrixコンポーネントおよびご使用のキーストアまたは署名証明書と結合させて、.mdxファイルと修正したアプリファイルを生成します。

ISVアプリケーションラッピングを実行するMDX Toolkit入力および出力の図

ISVアプリのラップによって追加されるアイテムには、次のものがあります。

  • フレームワークがSecure Hubと結合するときに、MDX SDK フレームワークで必要となるデータが含まれた情報ファイル。対応するバインド情報は、Endpoint Managementに追加された.mdxファイルを介してEndpoint ManagementサーバーからSecure Hubに渡されます。データには、自己識別に使用されるアプリIDや、アプリ更新チェックに使用されるパケットIDなどのアイテムが含まれます。
  • MDXアプリSDKに統合されたアプリに埋め込まれているOpenSSL FIPS Crypto Object ModuleのFIPSフィンガープリント。
  • iOSの場合のみ:アプリファイルに追加され、管理者がEndpoint Managementに追加する.mdxファイルによってSecure Hubにも渡される、新しいURLスキーム。

Citrix Readyプログラムについて

Citrixでは、Citrix Readyプログラムを通じてISVアプリを評価および認定しています。評価には、Endpoint Management統合テストが大きく関係します。認定によって、アプリがEndpoint Managementインフラストラクチャに適合していることを確認できるため、企業はアプリへの信頼を強めることができます。

Citrix Readyプログラムの一環として、認定されたISVアプリのバイナリをApple App StoreまたはGoogle Play Storeに直接公開できます。つまり、企業にバイナリを配信する必要がないため、アプリの更新をさらに適切に制御できます。また、アプリはISV証明書で署名されます。認定されたアプリを企業に直接配信するのか、各自でホストするのかを選択することもできます。

また、バンドルをMDXアプリGalleryに公開するのか、またはCitrix Endpoint Managementの顧客に直接配信するのか、ISVアプリの.mdxバンドルを配信する方法を選択できます。

MDXアプリのユーザーエクスペリエンス

ユーザーはアプリを操作する方法は、ユーザーがアプリをどのようにインストールおよび起動するかに応じて、MDXアプリ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が存在する場合、ユーザーはGeneralアプリおよびPremiumアプリに対し次の操作を行います。

Generalアプリ

  1. ユーザーがアプリを起動します。

  2. アプリがSecure Hubのインストールを検出して、アプリが有効になると、アプリによってユーザーに管理モードへの移行を確認するように求めるメッセージが表示されます。

  3. アプリを企業が管理することをユーザーが選択する場合、必要に応じて、Secure Hubによってユーザーにサインインを求めるメッセージが表示されます。

  4. MDXでアプリがユーザーにサブスクライブされると、アプリが管理モードに移行します。

    Secure Hubがデバイスに存在しない場合、またはアプリが有効になっていない場合、通常のパブリックストアアプリと同様に、アプリは非管理モードで実行されます。

Premiumアプリ

  1. ユーザーがアプリを起動します。
  2. アプリがSecure Hubのインストールを検出して、アプリが有効になると、アプリが管理モードに自動的に移行します。Secure Hubの資格情報が必要な場合、アプリによってユーザーに管理モードへの移行が通知されて、サインインを求めるメッセージが表示されます。

MDXアプリSDKの既知の問題