Intune App Wrapping Tool を使用したアプリ保護ポリシー用の iOS アプリの準備

iOS 用のMicrosoft Intune App Wrapping Toolを使用して、アプリ自体のコードを変更せずに、社内の iOS アプリの Intune アプリ保護ポリシーを有効にします。

このツールは、アプリのラッパーを作成する macOS コマンド ライン アプリケーションです。 アプリが処理されたら、アプリ 保護ポリシー をデプロイすることでアプリの機能を変更できます。

ツールをダウンロードするには、GitHub の「iOS のMicrosoft Intune App Wrapping Tool」を参照してください。

注:

アプリでの Intune App Wrapping Toolの使用に関する問題がある場合は、GitHub でサポートリクエストを送信してください。

App Wrapping Toolの一般的な前提条件

App Wrapping Toolを実行する前に、いくつかの一般的な前提条件を満たす必要があります。

  • GitHub から iOS 用のMicrosoft Intune App Wrapping Toolをダウンロードします。

  • Xcode ツールセット バージョン 14.0 以降がインストールされている macOS コンピューター。

  • 入力 iOS アプリは、会社または独立系ソフトウェア ベンダー (ISV) によって開発および署名されている必要があります。

    • 入力アプリ ファイルの拡張子は .ipa または .app である必要があります。

    • 入力アプリは、iOS 14.0 以降用にコンパイルする必要があります。

    • 入力アプリは暗号化できません。

    • 入力アプリに拡張ファイル属性を指定することはできません。

    • 入力アプリには、Intune App Wrapping Toolによって処理される前にエンタイトルメントが設定されている必要があります。 エンタイトルメントを 使用すると、通常付与される権限を超えて、アプリにより多くのアクセス許可と機能がアプリに与えられます。 手順については、「 アプリの権利の設定 」を参照してください。

  • システム キーチェーンに有効な署名証明書が存在することを確認します。 アプリのコード署名に関する問題がある場合は、次の手順を使用して解決します。
    • 関連するすべての証明書の信頼設定をリセットする
    • システム キーチェーンとサインイン キーチェーンに中間証明書をインストールする
    • 関連するすべての証明書をアンインストールして再インストールする

Microsoft Entra ID を使用してアプリを登録する

  1. Microsoft Entra ID でアプリを登録します。 詳細については、「アプリケーションをMicrosoft ID プラットフォームに登録する」を参照してください。
  2. カスタム リダイレクト URL をアプリ設定に追加します。 詳細については、「 MSAL の構成」を参照してください。
  3. Intune MAM サービスへのアクセス権をアプリに付与します。 詳細については、「 Intune Mobile App Management サービスへのアクセス権をアプリに付与する」を参照してください
  4. 上記の変更が完了したら、Intune アプリ ラッピング ツールの最新バージョンを実行します。 Microsoft Authentication Library (MSAL) 用のアプリを構成する: Intune App Wrapping Toolを使用して、Microsoft Entra アプリケーション クライアント ID をコマンド ライン パラメーターに追加します。 詳細については、「 コマンド ライン パラメーター」を参照してください。

注:

パラメーター -ac-ar は必須パラメーターです。 各アプリには、これらのパラメーターの一意のセットが必要です。 -aa は、シングル テナント アプリケーションにのみ必要です。

  1. アプリをデプロイします。

App Wrapping Toolの Apple 開発者の前提条件

ラップされたアプリをorganizationのユーザーのみに配布するには、Apple Developer Enterprise Program のアカウントと、Apple Developer アカウントにリンクされているアプリ署名用のいくつかのエンティティが必要です。

iOS アプリをorganizationのユーザーに内部的に配布する方法の詳細については、Apple Developer Enterprise Program Apps の配布に関する公式ガイドを参照してください。

Intune でラップされたアプリを配布するには、次のものが必要です。

  • Apple Developer Enterprise Program を使用する開発者アカウント。

  • 有効なチーム識別子を持つ社内およびアドホック配布署名証明書。

    • Intune App Wrapping Toolのパラメーターとして、署名証明書の SHA1 ハッシュが必要です。
  • 社内配布プロビジョニング プロファイル。

Apple Developer Enterprise アカウントを作成する手順

  1. Apple Developer Enterprise Program サイトに移動します。

  2. ページの右上にある [ 登録] をクリックします。

  3. 登録する必要がある内容のチェックリストをお読みください。 ページの下部にある [ 登録の開始 ] をクリックします。

  4. organizationの Apple ID でサインインします。 お持ちでない場合は、[ Apple ID の作成] をクリックします。

  5. エンティティの種類を選択し、[続行] をクリックします。

  6. フォームにorganizationの情報を入力します。 [続行] をクリックします。 この時点で、Apple から連絡があり、organizationの登録が承認されていることを確認します。

  7. 確認後、[ ライセンスに同意する] をクリックします。

  8. ライセンスに同意したら、 プログラムを購入してアクティブ化することで完了します。

  9. チーム エージェント (organizationの代わりに Apple Developer Enterprise Program に参加するユーザー) の場合は、まずチーム メンバーを招待し、ロールを割り当てることでチームを構築します。 チームを管理する方法については、 開発者アカウント チームの管理に関する Apple のドキュメントを参照してください。

Apple 署名証明書を作成する手順

  1. Apple 開発者ポータルに移動します。

  2. ページの右上にある [ アカウント] をクリックします。

  3. 組織の Apple ID でサインインします。

  4. [ 証明書]、[ID] & [プロファイル] をクリックします

    Apple 開発者ポータル - 証明書、ID、& プロファイル

  5. Apple 開発者ポータルをクリックし、右上隅にサインインして iOS 証明書を追加します。

  6. [運用] で社内およびアドホック証明書を作成することを選択します。

    [In-House とアドホック証明書] を選択します

    注:

    アプリを配布する予定ではなく、内部でのみテストする場合は、運用環境用の証明書の代わりに iOS アプリ開発証明書を使用できます。 開発証明書を使用する場合は、モバイル プロビジョニング プロファイルがアプリがインストールされるデバイスを参照していることを確認します。

  7. ページの下部にある [ 次へ ] をクリックします。

  8. macOS コンピューターでキーチェーン アクセス アプリケーションを使用して 証明書署名要求 (CSR) を作成する手順を確認します。

    CSR を作成するための手順を読む

  9. 上記の手順に従って、証明書署名要求を作成します。 macOS コンピューターで、 キーチェーン アクセス アプリケーションを起動します。

  10. 画面の上部にある macOS メニューで、[ キーチェーン アクセス > 証明書アシスタント > ] [証明機関からの証明書の要求] に移動します。

    キーチェーン アクセスで証明機関に証明書を要求する

  11. 上記の Apple 開発者サイトの指示に従って、CSR ファイルを作成する方法を確認してください。 CSR ファイルを macOS コンピューターに保存します。

    要求する証明書の情報を入力します

  12. Apple 開発者向けサイトに戻ります。 [続行] をクリックします。 次に、CSR ファイルをアップロードします。

  13. Apple によって署名証明書が生成されます。 macOS コンピューター上の思い出に残る場所にダウンロードして保存します。

    署名証明書をダウンロードする

  14. ダウンロードした証明書ファイルをダブルクリックして、証明書をキーチェーンに追加します。

  15. キーチェーン アクセスをもう一度開きます。 右上の検索バーで証明書の名前を検索して、証明書を見つけます。 項目を右クリックしてメニューを表示し、[ 情報の取得] をクリックします。 この画面の例では、運用証明書の代わりに開発証明書を使用しています。

    証明書をキーチェーンに追加する

  16. 情報ウィンドウが表示されます。 一番下までスクロールし、[ フィンガープリント ] ラベルの下を見てください。 SHA1 文字列 (ぼかし) をコピーして、App Wrapping Toolの "-c" の引数として使用します。

    iPhone 情報 - 指紋 SHA1 文字列

In-House 配布プロビジョニング プロファイルを作成する手順

  1. Apple Developer アカウント ポータルに戻るし、組織の Apple ID でサインインします。

  2. [ 証明書]、[ID] & [プロファイル] をクリックします

  3. iOS プロビジョニング プロファイルを追加するには、 Apple Developer ポータル と右上隅の記号をクリックします。

  4. [配布] で、社内 プロビジョニング プロファイルを作成することを選択 します

    [社内プロビジョニング プロファイル] を選択します

  5. [続行] をクリックします。 前に生成した署名証明書をプロビジョニング プロファイルにリンクしてください。

  6. 手順に従って、プロファイル (拡張子が .mobileprovision) を macOS コンピューターにダウンロードします。

  7. 思い出に残る場所にファイルを保存します。 このファイルは、App Wrapping Toolの使用中に -p パラメーターに使用されます。

App Wrapping Toolをダウンロードする

  1. App Wrapping Toolのファイルを GitHub から macOS コンピューターにダウンロードします。

  2. iOS.dmg Microsoft Intuneアプリケーション制限パッケージャーをダブルクリックします。 エンド ユーザー ライセンス契約 (EULA) が表示されたウィンドウが表示されます。 ドキュメントを注意深く読んでください。

  3. [ 同意する ] を選択して、パッケージをコンピューターにマウントする EULA に同意します。

App Wrapping Toolを実行する

重要

Intune では、Intune App Wrapping Toolの更新プログラムが定期的にリリースされます。 更新プログラム用の Intune App Wrapping Toolを定期的にチェックし、ソフトウェア開発リリース サイクルに組み込んで、アプリが最新の App Protection ポリシー設定をサポートしていることを確認します。

ターミナルを使用する

macOS ターミナルを開き、次のコマンドを実行します。

/Volumes/IntuneMAMAppPackager/IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i /<path of input app>/<app filename> -o /<path to output folder>/<app filename> -p /<path to provisioning profile> -c <SHA1 hash of the certificate> [-b [<output app build string>]] [-v] [-e] [-x /<array of extension provisioning profile paths>]

注:

次の表に示すように、一部のパラメーターは省略可能です。

例:次のコマンドの例では、MyApp.ipa という名前のアプリでApp Wrapping Toolを実行します。 署名証明書のプロビジョニング プロファイルと SHA-1 ハッシュが指定され、ラップされたアプリの署名に使用されます。 出力アプリ (MyApp_Wrapped.ipa) が作成され、デスクトップ フォルダーに格納されます。

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i ~/Desktop/MyApp.ipa -o ~/Desktop/MyApp_Wrapped.ipa -p ~/Desktop/My_Provisioning_Profile_.mobileprovision -c "12 A3 BC 45 D6 7E F8 90 1A 2B 3C DE F4 AB C5 D6 E7 89 0F AB"  -v true

コマンド ライン パラメーター

App Wrapping Toolでは、次のコマンド ライン パラメーターを使用できます。

例:次のコマンド例では、1 つのテナント内で使用するためにアプリケーションをラップするときに必要なコマンドを組み込んで、App Wrapping Toolを実行します。

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i ~/Desktop/MyApp.ipa -o ~/Desktop/MyApp_Wrapped.ipa -p ~/Desktop/My_Provisioning_Profile_.mobileprovision -c "12 A3 BC 45 D6 7E F8 90 1A 2B 3C DE F4 AB C5 D6 E7 89 0F AB" -aa https://login.microsoftonline.com/<tenantID> -ac "Client ID of the input app if the app uses the Microsoft Authentication Library" -ar "Redirect/Reply URI of the input app if the app uses the Microsoft Authentication Library"  -v true
プロパティ 使用方法
-私 <Path of the input native iOS application file>. ファイル名は、.app または .ipa で終わる必要があります。
-O <Path of the wrapped output application>
-P <Path of your provisioning profile for iOS apps>
-C <SHA1 hash of the signing certificate>
-H App Wrapping Toolで使用可能なコマンド ライン プロパティに関する詳細な使用状況情報を表示します。
-Ac <Client ID of the input app if the app uses the Microsoft Authentication Library> これは、[アプリの登録] ブレードのアプリの一覧の [クライアント ID] フィールドの GUID です。
-Ar <Redirect/Reply URI of the input app if the app uses the Microsoft Authentication Library> これは、アプリ登録で構成されたリダイレクト URI です。 通常、これは、Microsoft Authenticator アプリがブローカー認証後に返すアプリケーションの URL プロトコルです。
-Aa (シングル テナント アプリに必要) <Authority URI of the input app> すなわち https://login.microsoftonline.com/<tenantID>/
-V (省略可能)コンソールに詳細メッセージを出力します。 このフラグを使用してエラーをデバッグすることをお勧めします。
-E (省略可能)このフラグを使用して、アプリを処理するApp Wrapping Tool不足しているエンタイトルメントを削除します。 詳細については、「 アプリエンタイトルメントの設定 」を参照してください。
-Xe (省略可能)アプリ内の iOS 拡張機能に関する情報と、それらを使用するために必要な権利を出力します。 詳細については、「 アプリエンタイトルメントの設定 」を参照してください。
-X (省略可能) <An array of paths to extension provisioning profiles>。 アプリで拡張機能のプロビジョニング プロファイルが必要な場合は、これを使用します。
-B (省略可能)ラップされた出力アプリのバンドル バージョンを入力アプリと同じにする場合は、引数なしで -b を使用します (推奨されません)。

ラップされたアプリにカスタム CFBundleVersion を設定する場合は、 を使用 -b <custom bundle version> します。 カスタム CFBundleVersion を指定する場合は、ネイティブ アプリの CFBundleVersion を 1.0.0 から> 1.0.1 などの最下位コンポーネントでインクリメントすることをお勧めします。
-F (省略可能) <Path to a plist file specifying arguments.> plist テンプレートを使用して、-i、-o、-p などの IntuneMAMPackager プロパティの残りの部分を指定する場合は、 plist ファイルの前でこのフラグを使用します。 「plist を使用して引数を入力する」を参照してください。
-Dt (省略可能)Microsoft Intuneクライアント テレメトリの収集を無効にします。
-Dl (省略可能)MSAL と統合され、独自の MSAL ログ コールバックを実装しているアプリケーションの INtune ログから MSAL ログを無効にします。

plist を使用して引数を入力する

App Wrapping Toolを実行する簡単な方法は、すべてのコマンド引数を plist ファイルに配置することです。 Plist は XML に似たファイル形式で、フォーム インターフェイスを使用してコマンド ライン引数を入力するために使用できます。

IntuneMAMPackager/Contents/MacOS フォルダーで、テキスト エディターまたは Xcode を使用して (空白の plist テンプレート) を開きます Parameters.plist 。 次のキーの引数を入力します。

Plist キー 既定値 Notes (メモ)
入力アプリケーション パッケージ パス String -i と同じ
出力アプリケーション パッケージ パス String -o と同じ
プロビジョニング プロファイル パス String -p と同じ
SHA-1 証明書ハッシュ String -c と同じ
MSAL 機関 String -aa と同じ
MSAL クライアント ID String -ac と同じ
MSAL 応答 URI String -ar と同じ
Verbose Enabled ブール型 false -v と同じ
不足しているエンタイトルメントを削除する ブール型 false -e と同じ
既定のビルドの更新を禁止する ブール型 false 引数なしの -b の使用と同等
ビルド文字列のオーバーライド String ラップされた出力アプリのカスタム CFBundleVersion
拡張機能プロビジョニング プロファイル パス 文字列 (String) の配列 アプリの拡張機能プロビジョニング プロファイルの配列。
テレメトリを無効にする ブール型 false -dt と同じ
MSAL ログのオーバーライドを無効にする ブール型 false -dl と同じ

唯一の引数として plist を使用して IntuneMAMPackager を実行します。

./IntuneMAMPackager –f Parameters.plist

折り返し後

ラップ プロセスが完了すると、"アプリケーションが正常にラップされました" というメッセージが表示されます。 エラーが発生した場合は、「 エラー メッセージ 」を参照してください。

ラップされたアプリは、前に指定した出力フォルダーに保存されます。 アプリを Intune 管理センターにアップロードし、モバイル アプリケーション管理ポリシーに関連付けることができます。

重要

ラップされたアプリをアップロードするときに、古い (ラップされたバージョンまたはネイティブ) バージョンが Intune に既に展開されている場合は、古いバージョンのアプリの更新を試みることができます。 エラーが発生した場合は、アプリを新しいアプリとしてアップロードし、古いバージョンを削除します。

これで、アプリをユーザー グループにデプロイし、アプリにアプリ保護ポリシーをターゲットにすることができます。 アプリは、指定したアプリ保護ポリシーを使用してデバイス上で実行されます。

iOS アプリケーションを Intune App Wrapping Toolでラップし直す頻度はどのくらいですか?

アプリケーションを再ラップする必要があるメインシナリオは次のとおりです。

  • アプリケーション自体が新しいバージョンをリリースしました。 以前のバージョンのアプリがラップされ、Intune 管理センターにアップロードされました。
  • iOS 用 Intune App Wrapping Toolは、主要なバグ修正、または特定の Intune アプリケーション保護ポリシー機能を有効にする新しいバージョンをリリースしました。 これは、iOS 用のMicrosoft Intune App Wrapping Toolの GitHub リポジトリを通じて 6 ~ 8 週間後に発生します。

iOS/iPadOS の場合、アプリの署名に使用した元とは異なる証明書/プロビジョニング プロファイルでラップすることはできますが、アプリで指定されたエンタイトルメントが新しいプロビジョニング プロファイルに含まれていない場合、ラップは失敗します。 "-e" コマンド ライン オプションを使用すると、アプリから不足しているエンタイトルメントが削除され、このシナリオでラップが失敗しないように強制すると、アプリの機能が壊れる可能性があります。

再ラップのベスト プラクティスには、次のようなものがあります。

  • 別のプロビジョニング プロファイルに、以前のプロビジョニング プロファイルとして必要なすべてのエンタイトルメントがあることを確認します。

エラー メッセージとログ ファイル

次の情報を使用して、アプリ ラッピング ツールに関する問題のトラブルシューティングを行います。

エラー メッセージ

アプリラッピング ツールが正常に完了しなかった場合、次のいずれかのエラー メッセージがコンソールに表示されます。

エラー メッセージ 詳細
有効な iOS プロビジョニング プロファイルを指定する必要があります。 プロビジョニング プロファイルが無効な場合があります。 デバイスに対する適切なアクセス許可があり、プロファイルが開発または配布を正しくターゲットにしていることを確認します。 プロビジョニング プロファイルの有効期限が切れている可能性もあります。
有効な入力アプリケーション名を指定します。 指定した入力アプリケーション名が正しいことを確認します。
出力アプリケーションへの有効なパスを指定します。 指定した出力アプリケーションへのパスが存在し、正しいことを確認します。
有効な入力プロビジョニング プロファイルを指定します。 有効なプロビジョニング プロファイル名と拡張機能が指定されていることを確認します。 プロビジョニング プロファイルにエンタイトルメントがない場合や、–p コマンド ライン オプションが含まれていない可能性があります。
指定した入力アプリケーションが見つかりませんでした。 有効な入力アプリケーション名とパスを指定します。 入力アプリのパスが有効であり、存在していることを確認します。 入力アプリがその場所に存在することを確認します。
指定した入力プロビジョニング プロファイル ファイルが見つかりませんでした。 有効な入力プロビジョニング プロファイル ファイルを指定します。 入力プロビジョニング ファイルへのパスが有効であり、指定したファイルが存在することを確認します。
指定した出力アプリケーション フォルダーが見つかりませんでした。 出力アプリケーションへの有効なパスを指定します。 指定した出力パスが有効であり、存在していることを確認します。
出力アプリに .ipa 拡張機能がありません。 .app および .ipa 拡張機能を持つアプリのみが、App Wrapping Toolで受け入れられます。 出力ファイルに有効な拡張子があることを確認します。
無効な署名証明書が指定されました。 有効な Apple 署名証明書を指定します。 Apple 開発者ポータルから正しい署名証明書がダウンロードされていることを確認します。 証明書の有効期限が切れているか、公開キーまたは秘密キーが見つからない可能性があります。 Apple 証明書とプロビジョニング プロファイルを使用して Xcode 内のアプリに正しく署名できる場合は、App Wrapping Toolに対して有効です。 さらに、署名証明書にホスト macOS マシンのキーチェーン内に一意の名前があることを確認します。 キーチェーン内に同じ証明書の複数のバージョンがある場合、このエラーが返される可能性があります。
指定した入力アプリケーションが無効です。 有効なアプリケーションを指定します。 .app または .ipa ファイルとしてコンパイルされている有効な iOS アプリケーションがあることを確認します。
指定した入力アプリケーションは暗号化されます。 有効な暗号化されていないアプリケーションを指定します。 App Wrapping Toolでは、暗号化されたアプリはサポートされていません。 暗号化されていないアプリを提供します。
指定した入力アプリケーションが、位置独立実行可能ファイル (PIE) 形式ではありません。 有効なアプリケーションを PIE 形式で指定します。 Position Independent Executable (PIE) アプリは、実行時にランダムなメモリ アドレスで読み込むことができます。 これには、セキュリティ上の利点があります。 セキュリティ上の利点の詳細については、Apple Developer のドキュメントを参照してください。
指定した入力アプリは既にラップされています。 有効なラップされていないアプリケーションを指定します。 ツールによって既に処理されているアプリは処理できません。 アプリをもう一度処理する場合は、元のバージョンのアプリを使用してツールを実行します。
指定した入力アプリケーションが署名されていません。 有効な署名済みアプリケーションを指定します。 アプリ ラッピング ツールでは、アプリに署名する必要があります。 ラップされたアプリに署名する方法については、開発者のドキュメントを参照してください。
指定した入力アプリケーションは、.ipa または .app 形式である必要があります。 アプリ ラッピング ツールでは、.app および .ipa 拡張機能のみが受け入れられます。 入力ファイルに有効な拡張子があり、.app または .ipa ファイルとしてコンパイルされていることを確認します。
指定した入力アプリは既にラップされており、最新のポリシー テンプレート バージョンにあります。 App Wrapping Toolは、ラップされた既存のアプリを最新のポリシー テンプレート バージョンで再ラップしません。
警告: SHA1 証明書ハッシュを指定しませんでした。 デプロイする前に、ラップされたアプリケーションが署名されていることを確認してください。 –c コマンド ライン フラグの後に有効な SHA1 ハッシュを指定してください。

ラップされたアプリケーションのログをデバイスから収集する

トラブルシューティング中にラップされたアプリケーションのログを取得するには、次の手順に従います。

  1. デバイスの iOS 設定アプリに移動し、LOB アプリを選択します。
  2. [Microsoft Intune] を選択します。
  3. [ 診断コンソールの表示 ] 設定を [オン] に切り替えます。
  4. LOB アプリケーションを起動します。
  5. [作業の開始] リンクをクリックします。
  6. これで、Microsoft にログを直接送信したり、デバイス上の別のアプリケーションを介して共有したりできます。

注:

ログ機能は、Intune App Wrapping Tool バージョン 7.1.13 以降でラップされたアプリに対して有効になっています。

システムからのクラッシュ ログの収集

アプリが iOS クライアント デバイス コンソールに有用な情報をログに記録している可能性があります。 この情報は、アプリケーションに問題があり、問題がApp Wrapping Toolまたはアプリ自体に関連しているかどうかを判断する必要がある場合に役立ちます。 この情報を取得するには、次の手順に従います。

  1. アプリを実行して問題を再現します。

  2. 展開された iOS アプリのデバッグに関する Apple の指示に従って、コンソールの出力を収集します。

ラップされたアプリでは、アプリがクラッシュした後に電子メールでデバイスから直接ログを送信するオプションもユーザーに表示されます。 ユーザーはログを送信して、必要に応じて Microsoft を調べて転送できます。

証明書、プロビジョニング プロファイル、および認証の要件

iOS 用のApp Wrapping Toolには、完全な機能を保証するために満たす必要があるいくつかの要件があります。

要件 詳細
iOS プロビジョニング プロファイル プロビジョニング プロファイルを含める前に、プロビジョニング プロファイルが有効であることを確認します。 App Wrapping Toolでは、iOS アプリの処理中にプロビジョニング プロファイルの有効期限が切れているかどうかがチェックされません。 期限切れのプロビジョニング プロファイルが指定されている場合、アプリ ラッピング ツールには期限切れのプロビジョニング プロファイルが含まれます。アプリが iOS デバイスへのインストールに失敗するまで問題は発生しません。
iOS 署名証明書 署名証明書を指定する前に、署名証明書が有効であることを確認してください。 このツールでは、iOS アプリの処理中に証明書の有効期限が切れているかどうかがチェックされません。 期限切れの証明書のハッシュが指定されている場合、ツールはアプリを処理して署名しますが、デバイスへのインストールは失敗します。

ラップされたアプリに署名するために指定された証明書が、プロビジョニング プロファイルに一致していることを確認します。 このツールでは、プロビジョニング プロファイルがラップされたアプリケーションに署名するために提供された証明書と一致するかどうかは検証されません。
認証 暗号化を機能させるには、デバイスに PIN が必要です。 ラップされたアプリを展開したデバイスでは、デバイスのステータス バーにタッチすると、ユーザーは職場または学校アカウントで再びサインインする必要があります。 ラップされたアプリの既定のポリシーは、 再起動時の認証です。 iOS は、アプリを終了して再起動することで、外部通知 (電話など) を処理します。

アプリエンタイトルメントの設定

アプリをラップする前に、 エンタイトルメント を付与して、アプリが通常実行できる以上の追加のアクセス許可と機能をアプリに付与できます。 エンタイトルメント ファイルは、コード署名中にアプリ内の特別なアクセス許可 (共有キーチェーンへのアクセスなど) を指定するために使用されます。 機能と呼ばれる特定 アプリ サービスは、アプリの開発中に Xcode 内で有効になります。 有効にすると、機能がエンタイトルメント ファイルに反映されます。 エンタイトルメントと機能の詳細については、「iOS 開発者ライブラリでの 機能の追加 」を参照してください。 サポートされている機能の完全な一覧については、「 サポートされている機能」を参照してください。

iOS 用のApp Wrapping Toolでサポートされている機能

機能 説明 推奨されるガイダンス
アプリ グループ アプリ グループを使用して、複数のアプリで共有コンテナーへのアクセスを許可し、アプリ間の追加のプロセス間通信を許可します。

アプリ グループを有効にするには、[機能] ウィンドウを開き、[アプリ グループ] で [オン] をクリックします。 アプリ グループを追加することも、既存のグループを選択することもできます。
アプリ グループを使用する場合は、逆引き DNS 表記を使用します。

group.com.companyName.AppGroup
背景モード バックグラウンド モードを有効にすると、iOS アプリをバックグラウンドで引き続き実行できます。
データの保護 データ保護により、iOS アプリによってディスクに格納されているファイルにセキュリティ レベルが追加されます。 データ保護では、特定のデバイスに存在する組み込みの暗号化ハードウェアを使用して、ディスクに暗号化された形式でファイルを格納します。 データ保護を使用するには、アプリをプロビジョニングする必要があります。
アプリ内購入 アプリ内購入では、ストアに接続し、ユーザーからの支払いを安全に処理できるようにすることで、ストアをアプリに直接埋め込みます。 アプリ内購入を使用して、強化された機能やアプリで使用できる追加コンテンツの支払いを収集できます。
キーチェーン共有 キーチェーン共有を有効にすると、アプリはチームが開発した他のアプリとキーチェーン内のパスワードを共有できます。 キーチェーン共有を使用する場合は、逆引き DNS 表記を使用します。

com.companyName.KeychainGroup
個人用 VPN 個人用 VPN を有効にして、ネットワーク拡張機能フレームワークを使用してカスタム システム VPN 構成をアプリで作成および制御できるようにします。
プッシュ通知 Apple Push Notification サービス (APN) を使用すると、フォアグラウンドで実行されていないアプリは、ユーザーに対する情報があることをユーザーに通知できます。 プッシュ通知を機能させるには、アプリ固有のプロビジョニング プロファイルを使用する必要があります。

Apple 開発者向けドキュメントの手順に従います。
ワイヤレス アクセサリの構成 ワイヤレス アクセサリ構成を有効にすると、外部アクセサリ フレームワークがプロジェクトに追加され、アプリで MFi Wi-Fi アクセサリを設定できるようになります。

エンタイトルメントを有効にする手順

  1. アプリで機能を有効にする:

    a. Xcode で、アプリのターゲットに移動し、[ 機能] をクリックします。

    b. 適切な機能を有効にします。 各機能の詳細と正しい値を判断する方法については、「iOS 開発者ライブラリでの 機能の追加 」を参照してください。

    c. プロセス中に作成したすべての ID をメモします。 これらは、値とも AppIdentifierPrefix 呼ばれます。

    d. ラップするアプリをビルドして署名します。

  2. プロビジョニング プロファイルでエンタイトルメントを有効にします。

    a. Apple デベロッパー メンバー センターにサインインします。

    b. アプリのプロビジョニング プロファイルを作成します。 手順については、「iOS 用 Intune App Wrapping Toolの前提条件を取得する方法」を参照してください。

    c. プロビジョニング プロファイルで、アプリと同じ権利を有効にします。 アプリの開発中に指定したのと同じ ID ( AppIdentifierPrefix 値) を指定する必要があります。

    d. プロビジョニング プロファイル ウィザードを完了し、ファイルをダウンロードします。

  3. すべての前提条件を満たしていることを確認し、アプリをラップします。

エンタイトルメントに関する一般的なエラーのトラブルシューティング

iOS のApp Wrapping Toolにエンタイトルメント エラーが表示される場合は、次のトラブルシューティング手順を試してください。

問題 原因 解決方法
入力アプリケーションから生成されたエンタイトルメントを解析できませんでした。 App Wrapping Toolは、アプリから抽出されたエンタイトルメント ファイルを読み取ることはできません。 エンタイトルメント ファイルの形式が正しくない可能性があります。 アプリのエンタイトルメント ファイルを調べます。 次の手順では、その方法について説明します。 エンタイトルメント ファイルを調べるときに、形式が正しくない構文がないかチェックします。 ファイルは XML 形式である必要があります。
プロビジョニング プロファイルにエンタイトルメントがありません (不足しているエンタイトルメントが一覧表示されます)。 これらの権利を持つプロビジョニング プロファイルを使用してアプリを再パッケージ化します。 プロビジョニング プロファイルで有効になっているエンタイトルメントと、アプリで有効になっている機能の間に不一致があります。 この不一致は、特定の機能 (アプリ グループやキーチェーン アクセスなど) に関連付けられている ID にも適用されます。 一般に、アプリと同じ機能を有効にする新しいプロビジョニング プロファイルを作成できます。 プロファイルとアプリの間の ID が一致しない場合、可能であれば、App Wrapping Toolによって ID が置き換えられます。 新しいプロビジョニング プロファイルを作成した後もこのエラーが発生する場合は、–e パラメーターを使用してアプリから権利を削除してみてください (「–e パラメーターを使用してアプリから権利を削除する」セクションを参照してください)。

署名済みアプリの既存の権利を検索する

署名済みアプリとプロビジョニング プロファイルの既存の権利を確認するには:

  1. ipa ファイルを見つけて、その拡張子を .zip に変更します。

  2. .zip ファイルを展開します。 これにより、.app バンドルを含む Payload フォルダーが生成されます。

  3. codesign ツールを使用して、.app バンドルのエンタイトルメントをチェックします。これは YourApp.app .app バンドルの実際の名前です。

    codesign -d --entitlements :- "Payload/YourApp.app"
    
  4. セキュリティ ツールを使用して、アプリの埋め込みプロビジョニング プロファイルのエンタイトルメント (.app バンドルの実際の名前) YourApp.app をチェックします。

    security cms -D -i "Payload/YourApp.app/embedded.mobileprovision"
    

–e パラメーターを使用してアプリからエンタイトルメントを削除する

このコマンドは、エンタイトルメント ファイルに含まれていないアプリ内の有効な機能を削除します。 アプリで使用されている機能を削除すると、アプリが破損する可能性があります。 不足している機能を削除する可能性がある例は、既定ですべての機能を持つベンダーが作成したアプリにあります。

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager –i /<path of input app>/<app filename> -o /<path to output folder>/<app filename> –p /<path to provisioning profile> –c <SHA1 hash of the certificate> -e

App Wrapping Toolのセキュリティとプライバシー

App Wrapping Toolを使用する場合は、次のセキュリティとプライバシーのベスト プラクティスを使用します。

  • 署名証明書、プロビジョニング プロファイル、および指定する基幹業務アプリは、アプリ ラッピング ツールの実行に使用するのと同じ macOS マシン上にある必要があります。 ファイルが UNC パス上にある場合は、macOS マシンからアクセスできることを確認します。 パスは、IPsec または SMB 署名を使用してセキュリティ保護する必要があります。

    管理センターにインポートされたラップされたアプリケーションは、ツールを実行するコンピューターと同じコンピューター上にある必要があります。 ファイルが UNC パス上にある場合は、管理センターを実行しているコンピューターでアクセスできることを確認します。 パスは、IPsec または SMB 署名を使用してセキュリティ保護する必要があります。

  • App Wrapping Toolが GitHub リポジトリからダウンロードされる環境は、IPsec または SMB 署名を使用してセキュリティ保護する必要があります。

  • 処理するアプリは、攻撃から保護するために信頼できるソースから取得する必要があります。

  • 特にリモート フォルダーの場合は、App Wrapping Toolで指定した出力フォルダーがセキュリティで保護されていることを確認します。

  • [ファイルのアップロード] ダイアログ ボックスを含む iOS アプリを使用すると、ユーザーはアプリに適用される制限を回避、切り取り、コピー、貼り付けることができます。 たとえば、ユーザーは [ファイルのアップロード] ダイアログ ボックスを使用して、アプリ データのスクリーンショットをアップロードできます。

  • ラップされたアプリ内からデバイス上のドキュメント フォルダーを監視すると、.msftintuneapplauncher という名前のフォルダーが表示されることがあります。 このファイルを変更または削除すると、制限付きアプリの正しい機能に影響する可能性があります。

  • カスタム URL スキームを登録すると、特定の URL をアプリにリダイレクトできます。 iOS と iPadOS では、複数のアプリが同じカスタム URL スキームを登録でき、OS によって呼び出されるアプリケーションが決定されます。 不正な URL を処理するためのカスタム URL スキーム の競合とセキュリティ ガイドラインを回避するための推奨事項については、Apple のドキュメント「アプリのカスタム URL スキームを定義する」を参照してください。

関連項目