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 の要件と互換性がある必要があります

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

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

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

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

    注:

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

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

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

    注:

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

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

  • (省略可能)ラップ中に追加されるIntune MAM SDK クラスが原因で、アプリが Dalvik Executable (DEX) サイズ制限に達することがあります。 DEX ファイルは、Android アプリのコンパイルの一部です。 Intune App Wrapping Toolは、最小 API レベルが 21 以上 (v. 1.0.2501.1 時点) のアプリのラップ中に DEX ファイルオーバーフローを自動的に処理します。 最小 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を定期的に更新用にチェックし、ソフトウェア開発リリース サイクルに組み込んで、アプリが最新の App Protection ポリシー設定を確実にサポートするようにします。

  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 と同じディレクトリ パスの場合、パッケージ化は失敗します。
<共通パラメーター> (省略可能)コマンドは、詳細やデバッグなどの一般的な PowerShell パラメーターをサポートします。
  • 一般的なパラメーターの一覧については、 Microsoft スクリプト センターを参照してください。

  • ツールの使用状況の詳細を表示するには、次のコマンドを入力します。

    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 開発者ガイドの手順に従って新しい署名証明書を作成できます。

アプリが以前に別の署名証明書を使用してデプロイされている場合、アップグレード後にアプリを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出力ファイルは、1 つのユニバーサル APK ファイルを含む ZIP アーカイブです。 アーカイブを解凍し、その APK ファイルをIntune App Wrapping Toolへの入力として使用します。

関連項目