Intune App Wrapping Tool を使用してアプリ保護ポリシーに対応する Android アプリを準備する

Android 用 Microsoft Intune App Wrapping Tool を使用すると、アプリ自体のコードを変更せずにアプリの機能を制限することで、社内の Android アプリの動作を変更できます。

このツールは、PowerShell で実行され、Android アプリを囲むラッパーを作成する Windows コマンドライン アプリケーションです。 アプリがラップされたら、Intune でモバイル アプリケーション管理ポリシーを構成することで、アプリの機能を変更できます。

ツールを実行する前に、App Wrapping Tool を実行する際のセキュリティに関する考慮事項を確認してください。 ツールをダウンロードするには、GitHub の Android 用Microsoft Intune App Wrapping Toolにアクセスします。

注:

アプリでIntune App Wrapping Toolを使用する際に問題が発生した場合は、GitHub でサポートの要求を送信してください。

App Wrapping Toolを使用するための前提条件を満たす

  • アプリで最新のライブラリを使用する必要がある

  • アプリは Google Play の要件と互換性がある必要があります

  • アプリが複雑な場合は、Android 用 Intune アプリ SDK と統合する必要があります

  • App Wrapping Tool は、Windows 10 以降を実行している Windows コンピューターで実行する必要があります。

  • 入力アプリは、ファイル拡張子.apkを持つ有効な Android アプリケーション パッケージである必要があります。

    • 暗号化することはできません。
    • Intune App Wrapping Tool で以前にラップされていないことが必要です。
    • Android 9.0 以降用に記述する必要があります。

    注:

    入力アプリが Android アプリ バンドル (.aab) の場合は、Intune App Wrapping Toolを使用する前に APK に変換する必要があります。 詳細については、「 Android アプリ バンドル (AAB) を APK に変換する」を参照してください。 2021 年 8 月の時点で、 新しいプライベート アプリは引き続き APK として Google Play ストアに公開できます

  • アプリは会社によって、または会社のために開発された必要があります。 Google Play ストアで入手できるアプリではこのツールを使用できません。 これには、Google Play ストアからのアプリのダウンロードまたは取得が含まれます。

  • App Wrapping Toolを実行するには、最新バージョンのJavaランタイム環境をインストールしてから、Windows環境変数でJavaパス変数がC:\ProgramData\Oracle\Java\javapathに設定されていることを確認する必要があります。 詳細については、 Java のドキュメントを参照してください。

    注:

    場合によっては、32 ビット バージョンの Java でメモリの問題が発生する可能性があります。 64 ビット版をインストールすることをお勧めします。

  • Android では、すべてのアプリ パッケージ (.apk) に署名する必要があります。 既存の証明書の 再利用 と署名証明書全体のガイダンスについては、「 署名証明書とラッピング アプリの再利用」を参照してください。 Intune App Wrapping Toolを使用して .apk ファイルをラップした後は、Google が提供する Apksigner ツールを使用することをお勧めします。 これにより、アプリがエンド ユーザー デバイスに到達すると、Android 標準で適切に起動できるようになります。

  • (オプション)ラッピング中に追加される Intune MAM SDK クラスが原因で、アプリが Dalvik 実行可能ファイル (DEX) のサイズ制限に達する場合があります。 DEX ファイルは、Android アプリのコンパイルの一部です。 Intune App Wrapping Toolは、最小 API レベルが 21 以上のアプリのラッピング中に DEX ファイル オーバーフローを自動的に処理します (v. 1.0.2501.1 時点)。 最小 API レベルが < 21 のアプリの場合、ベスト プラクティスは、ラッパーの -UseMinAPILevelForNativeMultiDex フラグを使用して最小 API レベルを引き上げることです。 アプリの最小 API レベルを引き上げることができないお客様は、次の DEX オーバーフロー回避策を利用できます。 特定の組織では、これにはアプリのコンパイル担当者 (アプリ ビルド チームなど) と協力する必要がある場合があります。

    • ProGuard を使用して、未使用のクラス参照をアプリのプライマリ DEX ファイルから削除します。
    • v3.1.0 以降の Android Gradle プラグインを使用しているお客様は、 D8 デクサーを無効にしてください。

どのくらいの頻度で Android アプリケーションを Intune App Wrapping Tool で再ラップする必要がありますか?

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

  • アプリケーション自体に新しいバージョンがリリースされています。 前のバージョンのアプリがラップされ、Microsoft Intune 管理センターにアップロードされました。

  • Android 用 Intune App Wrapping Tool は、主要なバグ修正、または新しい特定のIntune アプリケーション保護ポリシー機能を有効にする新しいバージョンをリリースしました。 これは、Android 用 Microsoft Intune App Wrapping Tool の GitHub リポジトリを通じて 6 - 8 週間ごとに発生します。

折り返しのベスト プラクティスには次のようなものがあります。

App Wrapping Tool をインストールする

  1. GitHub リポジトリから、Android 用 Intune App Wrapping Tool のインストール ファイル InstallAWT.exe を Windows コンピューターにダウンロードします。 インストール ファイルを開きます。

  2. 使用許諾契約に同意し、インストールを完了します。

ツールをインストールしたフォルダーをメモします。 既定の場所は C:\Program Files (x86)\Microsoft Intune Mobile Application Management\Android\App Wrapping Tool です。

App Wrapping Tool を実行する

重要

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

  1. App Wrapping Tool をインストールした Windows コンピューターで、PowerShell ウィンドウを開きます。

  2. ツールをインストールしたフォルダーから、App Wrapping Tool PowerShell モジュールをインポートします。

    Import-Module .\IntuneAppWrappingTool.psm1
    
  3. invoke-AppWrappingTool コマンドを使用してツールを実行します。その使用構文は以下のとおりです。

    Invoke-AppWrappingTool [-InputPath] <String> [-OutputPath] <String> [<CommonParameters>]
    

    次の表は、 invoke-AppWrappingTool コマンドのプロパティの詳細です。

プロパティ 情報
-InputPath<文字列> ソース Android アプリのパス (.apk)。
-OutputPath<文字列> 出力 Android アプリへのパス。 これが InputPath と同じディレクトリ パスである場合、パッケージ化は失敗します。
<共通パラメーター> (オプション)このコマンドは、verbose や debug などの一般的な PowerShell パラメーターをサポートしています。
  • 一般的なパラメータの一覧については、 Microsoft Script Center を参照してください。

  • ツールの詳細な使用方法情報を表示するには、次のコマンドを入力します。

    Help Invoke-AppWrappingTool
    

例:

PowerShell モジュールをインポートします。

Import-Module "C:\Program Files (x86)\Microsoft Intune Mobile Application Management\Android\App Wrapping Tool\IntuneAppWrappingTool.psm1"

ネイティブ アプリ HelloWorld.apkでApp Wrapping Toolを実行します。

invoke-AppWrappingTool -InputPath .\app\HelloWorld.apk -OutputPath .\app_wrapped\HelloWorld_wrapped.apk -Verbose

ラップされたアプリとログ ファイルが生成され、指定した出力パスに保存されます。

署名証明書とラッピング アプリの再利用

Android では、Android デバイスにインストールするために、すべてのアプリが有効な証明書によって署名されている必要があります。

ラップされたアプリは、既存の署名ツールを使用してラッピング 後に 署名できます (ラッピング前のアプリ内の署名情報はすべて破棄されます)。 可能であれば、ビルド プロセス中に既に使用されていた署名情報をラッピング中に使用する必要があります。 特定の組織では、これにはキーストア情報を所有するユーザー (アプリビルドチームなど) と協力する必要がある場合があります。

以前の署名証明書を使用できない場合、またはアプリが以前にデプロイされていない場合は、 Android 開発者ガイドの手順に従って新しい署名証明書を作成できます。

アプリが以前に別の署名証明書を使用して展開されている場合は、アップグレード後にアプリを Intune にアップロードすることはできません。 アプリのビルドに使用されているものとは異なる証明書でアプリが署名されている場合、アプリのアップグレード シナリオは機能しなくなります。 そのため、アプリのアップグレードのために、新しい署名証明書を維持する必要があります。

App Wrapping Tool を実行する際のセキュリティに関する考慮事項

スプーフィング、情報開示、特権昇格攻撃の可能性を防ぐには:

  • 入力基幹業務 (LOB) アプリケーションと出力アプリケーションが、App Wrapping Tool が実行されている同じ Windows コンピューター上にあることを確認します。

  • ツールが実行されているのと同じコンピューター上の Intune に出力アプリケーションをインポートします。 Java keytool の詳細については、 keytool を参照してください。

  • 出力アプリケーションとツールが汎用名前付け規則 (UNC) パス上にあり、ツールと入力ファイルが同じコンピューター上で実行されていない場合は、 インターネット プロトコル セキュリティ (IPsec) または サーバー メッセージ ブロック (SMB) 署名を使用して環境をセキュリティで保護します。

  • アプリケーションが信頼できるソースから提供されていることを確認します。

  • ラップされたアプリが含まれている出力ディレクトリをセキュリティで保護します。 出力にユーザー レベルのディレクトリを使用することを検討してください。

Android アプリ バンドル (AAB) を APK に変換する

現在、Intune App Wrapping Tool は APK 入力のみをサポートしています。 Android アプリ バンドルは、ツールで使用するために最初に APK に変換する必要があります。

Android アプリ バンドルは、 Google のコマンド ライン ツールである bundletool を使用して APK に変換できます。 bundle-toolの最新バージョンは、Google の bundletool GitHub リポジトリからダウンロードできます。

bundletool次のコマンドを使用して、Intune App Wrapping Toolで使用する単一のユニバーサル APK を作成できます。

bundletool build-apks --bundle=input.aab --mode=universal --output=input.apks

.apks出力ファイルは、単一のユニバーサル APK ファイルを含む ZIP アーカイブです。 アーカイブを解凍し、その APK ファイルをIntune App Wrapping Toolへの入力として使用します。

関連項目