Vorbereiten von Android-Apps für App-Schutzrichtlinien mit dem Intune App Wrapping ToolPrepare Android apps for app protection policies with the Intune App Wrapping Tool

Gilt für: IntuneApplies to: Intune
Dieses Thema bezieht sich auf Intune im Azure-Portal und im klassischen Portal.This topic applies to Intune in both the Azure portal and the classic portal.

Verwenden Sie das Microsoft Intune App Wrapping Tool für Android zum Ändern des Verhaltens Ihrer internen Android-Apps, indem Sie die Features der App einschränken, ohne den eigentlichen Code der App zu ändern.Use the Microsoft Intune App Wrapping Tool for Android to change the behavior of your in-house Android apps by restricting features of the app without changing the code of the app itself.

Das Tool ist eine Windows-Befehlszeilenanwendung, die in PowerShell ausgeführt wird und einen Wrapper um die Android-App erstellt.The tool is a Windows command-line application that runs in PowerShell and creates a wrapper around your Android app. Nachdem der Wrapper um die App erstellt wurde, können Sie die App-Funktionalität ändern, indem Sie in Intune Verwaltungsrichtlinien für mobile Anwendungen konfigurieren.After the app is wrapped, you can change the app’s functionality by configuring mobile application management policies in Intune.

Lesen Sie vor dem Ausführen des Tools die Sicherheitsüberlegungen für das Ausführen des App Wrapping Tools.Before running the tool, review Security considerations for running the App Wrapping Tool. Sie können das Tool von der GitHub-Seite Microsoft Intune App Wrapping Tool for Android herunterladen.To download the tool, go to the Microsoft Intune App Wrapping Tool for Android on GitHub.

Erfüllen der Voraussetzungen zur Verwendung des App Wrapping ToolsFulfill the prerequisites for using the App Wrapping Tool

  • Sie müssen das App Wrapping Tool auf einem Windows-Computer unter Windows 7 oder höher ausführen.You must run the App Wrapping Tool on a Windows computer running Windows 7 or later.

  • Die Eingabe-App muss ein gültiges Android-Anwendungspaket mit der Dateierweiterung „APK“ sein und folgende Kriterien aufweisen:Your input app must be a valid Android application package with the file extension .apk and:

    • Darf nicht verschlüsselt sein.It cannot be encrypted.
    • Darf nicht zuvor bereits vom Intune App Wrapping Tool umschlossen worden sein.It must not have previously been wrapped by the Intune App Wrapping Tool.
    • Muss für Android 4.0 oder höher geschrieben sein.It must be written for Android 4.0 or later.
  • Die App muss von Ihrem oder für Ihr Unternehmen entwickelt werden.The app must be developed by or for your company. Sie können dieses Tool nicht für aus dem Google Play Store heruntergeladene Apps verwenden.You cannot use this tool on apps downloaded from the Google Play Store.

  • Um das App Wrapping Tool auszuführen, müssen Sie die neueste Version der Java Runtime Environment installieren und sicherstellen, dass die Java-Pfadvariable in den Windows-Umgebungsvariablen auf C:\ProgramData\Oracle\Java\javapath festgelegt wurde.To run the App Wrapping Tool, you must install the latest version of the Java Runtime Environment and then ensure that the Java path variable has been set to C:\ProgramData\Oracle\Java\javapath in your Windows environment variables. Weitere Informationen finden Sie in der Java-Dokumentation.For more help, see the Java documentation.

    Hinweis

    In einigen Fällen kann die 32-Bit-Version von Java zu Speicherproblemen führen.In some cases, the 32-bit version of Java may result in memory issues. Es ist eine gute Idee, die 64-Bit-Version zu installieren.It's a good idea to install the 64-bit version.

  • Für Android müssen alle App-Pakete (APK-Dateien) signiert sein.Android requires all app packages (.apk) to be signed. Informationen zum Wiederverwenden vorhandener Zertifikate und für allgemeine Anleitungen für Signaturzertifikate finden Sie unter Wiederverwendung von Signaturzertifikaten und Umschließen von Apps.For reusing existing certificates and overall signing certificate guidance, see Reusing signing certificates and wrapping apps. Das ausführbare Java-Tool „keytool.exe“ wird zum Generieren neuer Anmeldeinformationen verwendet, die zum Signieren der umschlossenen Ausgabe-App erforderlich sind.The Java executable keytool.exe is used to generate new credentials needed to sign the wrapped output app. Kennwörter, die festgelegt werden, müssen sicher sein. Notieren Sie sich diese Kennwörter jedoch, denn sie werden benötigt, um das App Wrapping Tool auszuführen.Any passwords that are set must be secure, but make a note of them because they're needed to run the App Wrapping Tool.

  • (Optional) Aktivieren Sie Multidex innerhalb der Eingabe-App.(Optional) Enable Multidex within the input app. In einigen Fällen erreicht eine App das Größenlimit der ausführbaren Dalvik-Datei (DEX) aufgrund der Intune MAM SDK-Klassen, die während der Umschließung hinzugefügt werden.Sometimes an app may hit the Dalvik Executable (DEX) size limit due to the Intune MAM SDK classes that are added during wrapping. DEX-Dateien sind Teil der Kompilierung einer Android-App.DEX files are a part of the compilation of an Android app. In diesem Falls ist die bewährte Vorgehensweise, Multidex innerhalb der App selbst zu aktivieren.In this scenario, best practice would be to enable Multidex within the app itself. In bestimmten Organisationen erfordert dies möglicherweise eine Zusammenarbeit mit demjenigen, der die App kompiliert (z.B. das App-Entwicklungsteam).In certain organizations, this may require working with whoever compiles the app (ie. the app build team).

Installieren des App Wrapping ToolsInstall the App Wrapping Tool

  1. Laden Sie die Installationsdatei „InstallAWT.exe“ für das Intune App Wrapping Tool für Android aus dem GitHub-Repository auf einen Windows-Computer herunter.From the GitHub repository, download the installation file InstallAWT.exe for the Intune App Wrapping Tool for Android to a Windows computer. Öffnen Sie die Installationsdatei.Open the installation file.

  2. Akzeptieren Sie den Lizenzvertrag, und schließen Sie die Installation ab.Accept the license agreement, then finish the installation.

Merken Sie sich den Ordner, in dem Sie das Tool installieren.Note the folder to which you installed the tool. Der Standardspeicherort lautet: C:\Programme (x86)\Microsoft Intune Mobile Application Management\Android\App Wrapping Tool.The default location is: C:\Program Files (x86)\Microsoft Intune Mobile Application Management\Android\App Wrapping Tool.

Ausführen des App Wrapping ToolsRun the App Wrapping Tool

  1. Öffnen Sie auf dem Windows-Computer, auf dem Sie das App Wrapping Tool installiert haben, ein PowerShell-Fenster.On the Windows computer where you installed the App Wrapping Tool, open a PowerShell window.

  2. Importieren Sie das PowerShell-Modul des App Wrapping Tools aus dem Ordner, in dem Sie das Tool installiert haben:From the folder where you installed the tool, import the App Wrapping Tool PowerShell module:

    Import-Module .\IntuneAppWrappingTool.psm1
    
  3. Führen Sie das Tool mit dem Befehl invoke-AppWrappingTool aus, der die folgende Verwendungssyntax aufweist:Run the tool by using the invoke-AppWrappingTool command, which has the following usage syntax:

    Invoke-AppWrappingTool [-InputPath] <String> [-OutputPath] <String> -KeyStorePath <String> -KeyStorePassword <SecureString>
    -KeyAlias <String> -KeyPassword <SecureString> [-SigAlg <String>] [<CommonParameters>]
    

    Die folgende Tabelle führt die Eigenschaften des Befehls invoke-AppWrappingTool auf:The following table details the properties of the invoke-AppWrappingTool command:

EigenschaftProperty InformationenInformation BeispielExample
-InputPath<String>-InputPath<String> Pfad der Android-Quelle-App (.apk).Path of the source Android app (.apk).
-OutputPath<String>-OutputPath<String> Pfad zur Android-Ausgabe-App.Path to the output Android app. Ist dies der gleiche Verzeichnispfad wie InputPath, schlägt das Verpacken fehl.If this is the same directory path as InputPath, the packaging will fail.
-KeyStorePath<String>-KeyStorePath<String> Pfad zur Keystoredatei, die das öffentliche/private Schlüsselpaar zum Signieren enthält.Path to the keystore file that has the public/private key pair for signing. Standardmäßig werden Keystoredateien unter „C:\Programme (x86)\Java\jreX.X.X_XX\bin“ gespeichert.By default, keystore files are stored in "C:\Program Files (x86)\Java\jreX.X.X_XX\bin."
-KeyStorePassword<SecureString>-KeyStorePassword<SecureString> Das Kennwort zum Entschlüsseln des KeyStore.Password used to decrypt the keystore. Für Android müssen alle Anwendungspakete (APK-Dateien) signiert sein.Android requires all application packages (.apk) to be signed. Verwenden Sie das Java-Keytool, um das KeyStorePassword zu generieren.Use Java keytool to generate the KeyStorePassword. Weitere Informationen über den Java-Keystore finden Sie hier.Read more about Java KeyStore here.
-KeyAlias<String>-KeyAlias<String> Der Name des Schlüssels, der zum Signieren verwendet werden soll.Name of the key to be used for signing.
-KeyPassword<SecureString>-KeyPassword<SecureString> Das Kennwort zum Entschlüsseln des privaten Schlüssels, der zum Signieren verwendet wird.Password used to decrypt the private key that will be used for signing.
-SigAlg<SecureString>-SigAlg<SecureString> (Optional) Der Name des Signaturalgorithmus, der zum Signieren verwendet werden soll.(Optional) The name of the signature algorithm to be used for signing. Der Algorithmus muss mit dem privaten Schlüssel kompatibel sein.The algorithm must be compatible with the private key. Beispiele: SHA256withRSA, SHA1withRSAExamples: SHA256withRSA, SHA1withRSA
<CommonParameters><CommonParameters> (Optional) Der Befehl unterstützt allgemeine PowerShell-Parameter, wie z.B. „verbose“ und „debug“.(Optional) The command supports common PowerShell parameters like verbose and debug.
  • Eine Liste der allgemeinen Parameter finden Sie im Microsoft Script Center.For a list of common parameters, see the Microsoft Script Center.

  • Um ausführliche Informationen zu dem Tool zu erhalten, geben Sie folgenden Befehl ein:To see detailed usage information for the tool, enter the command:

    Help Invoke-AppWrappingTool
    

Beispiel:Example:

Importieren Sie das PowerShell-Modul.Import the PowerShell module.

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

Führen Sie das App Wrapping Tool in der nativen App „HelloWorld.apk“ aus.Run the App Wrapping Tool on the native app HelloWorld.apk.

invoke-AppWrappingTool -InputPath .\app\HelloWorld.apk -OutputPath .\app_wrapped\HelloWorld_wrapped.apk -KeyStorePath "C:\Program Files (x86)\Java\jre1.8.0_91\bin\mykeystorefile" -keyAlias mykeyalias -SigAlg SHA1withRSA -Verbose

Sie werden zur Eingabe von KeyStorePassword und KeyPasswordaufgefordert.You will then be prompted for KeyStorePassword and KeyPassword. Geben Sie die Anmeldeinformationen ein, die Sie zum Erstellen der Keystore-Datei verwendet haben.Enter the credentials you used to create the key store file.

Es wird sowohl die umschlossene App als auch eine Protokolldatei generiert und in dem von Ihnen angegebenen Ausgabepfad gespeichert.The wrapped app and a log file are generated and saved in the output path you specified.

Wie häufig sollten Android-Anwendungen mithilfe des App Wrapping Tools von Intune erneut umschlossen werden?How often should I rewrap my Android application with the Intune App Wrapping Tool?

In den folgenden Hauptszenarios besteht die Notwendigkeit, Anwendungen erneut zu umschließen:The main scenarios in which you would need to rewrap your applications are as follows:

  • Die Anwendung hat eine neue Version veröffentlicht.The application itself has released a new version. Die Vorgängerversion der App wurde umschlossen und in die Intune-Konsole hochgeladen.The previous version of the app was wrapped and uploaded to the Intune console.
  • Das App Wrapping Tool von Intune für Android hat eine neue Version veröffentlicht, mit der wichtige Fehler behoben oder neue Intune-spezifische Richtlinienfunktionen zum Schutz von Anwendungen eingeführt werden.The Intune App Wrapping Tool for Android has released a new version that enables key bug fixes, or new, specific Intune application protection policy features. Dies geschieht alle sechs bis acht Wochen über das GitHub-Repository für das App Wrapping Tool von Microsoft Intune für Android.This happens every 6-8 weeks through GitHub repo for the Microsoft Intune App Wrapping Tool for Android.

Im Folgenden werden bewährte Methoden für das erneute Umschließen aufgeführt:Some best practices for rewrapping include:

Wiederverwendung von Signaturzertifikaten und Umschließen von AppsReusing signing certificates and wrapping apps

Für Android müssen alle Apps durch ein gültiges Zertifikat signiert sein, um auf Android-Geräten installiert werden zu können.Android requires that all apps must be signed by a valid certificate in order to be installed on Android devices.

Umschlossene Apps können entweder als Teil des Umschließungsprozesses oder nach der Umschließung mithilfe Ihrer vorhandenen Tools für die Signatur signiert werden (alle Signierungsinformationen in der App, bevor die Umschließung verworfen wird).Wrapped apps can be signed either as part of the wrapping process or after wrapping using your existing signing tools (any signing information in the app before wrapping is discarded).

Wenn möglich sollten die Signierungsinformationen, die bereits während des Erstellungsprozesses verwendet wurden, während der Umschließung verwendet werden.If possible, the signing information that was already used during the build process should be used during wrapping. In bestimmten Organisationen erfordert dies möglicherweise eine Zusammenarbeit mit der Person, die über die Keystore-Informationen verfügt (z.B. aus dem App-Entwicklungsteam).In certain organizations, this may require working with whoever owns the keystore information (ie. the app build team).

Wenn das vorherige Signaturzertifikat nicht verwendet werden kann oder die App zuvor nicht bereitgestellt wurde, können Sie möglicherweise ein neues Signaturzertifikat erstellen, indem Sie die Anweisungen im Android Developer-Handbuch befolgen.If the previous signing certificate cannot be used, or the app has not been deployed before, you may create a new signing certificate by following the instructions in the Android Developer Guide.

Wenn die App zuvor mit einem anderen Signaturzertifikat bereitgestellt wurde, kann sie nach dem Upgrade nicht zu Intune hochgeladen werden.If the app has been deployed previously with a different signing certificate, the app can't be uploaded to Intune after upgrade. App-Upgradeszenarios sind dann fehlerhaft, wenn Ihre App mit einem anderen Zertifikat signiert wird, als mit dem, mit dem die App erstellt wurde.App upgrade scenarios will be broken if your app is signed with a different certificate than the one the app is built with. Deshalb müssen alle neuen Signaturzertifikate für App-Upgrades verwaltet werden.As such, any new signing certificates should be maintained for app upgrades.

Sicherheitsüberlegungen zum Ausführen des App Wrapping ToolsSecurity considerations for running the App Wrapping Tool

So verhindern Sie ein mögliches Spoofing, das Offenlegen von Informationen und Angriffe durch Rechteerweiterungen:To prevent potential spoofing, information disclosure, and elevation of privilege attacks:

  • Stellen Sie sicher, dass sich die Branchenanwendung für die Eingabe, die Ausgabeanwendung und der Java-Keystore auf demselben Windows-Computer befinden, auf dem auch das App Wrapping Tool ausgeführt wird.Ensure that the input line-of-business (LOB) application, output application, and Java KeyStore are on the same Windows computer where the App Wrapping Tool is running.

  • Importieren Sie die Ausgabeanwendung auf demselben Computer, auf dem das Tool ausgeführt wird, in die Intune-Konsole.Import the output application to Intune on the same machine where the tool is running. Weitere Informationen zum Java-Keytool finden Sie unter Keytool.See keytool for more about about Java keytool.

  • Wenn sich die Ausgabeanwendung und das Tool in einem UNC-Pfad (Universal Naming Convention) befinden und Sie das Tool und die Eingabedateien nicht auf demselben Computer ausführen, sichern Sie die Umgebung, indem Sie Internet Protocol Security (IPsec) oder SMB-Signaturen (Server Message Block) einrichten.If the output application and the tool are on a Universal Naming Convention (UNC) path and you are not running the tool and input files on the same computer, set up the environment to be secure by using Internet Protocol Security (IPsec) or Server Message Block (SMB) signing.

  • Stellen Sie sicher, dass die Anwendung von einer vertrauenswürdigen Quelle stammt.Ensure that the application is coming from a trusted source.

  • Sichern Sie das Ausgabeverzeichnis, das die umschlossene Anwendung enthält.Secure the output directory that has the wrapped app. Erwägen Sie für die Ausgabe ein Verzeichnis auf Benutzerebene zu verwenden.Consider using a user-level directory for the output.

Erfordern einer Aufforderung zur Benutzeranmeldung für eine APP-WE-Dienstregistrierung, erfordern App-Schutzrichtlinien von Intune, um Ihre umschlossene Android LOB-App zu verwenden, und aktivieren von ADAL-SSO (optional)Requiring user login prompt for an automatic APP-WE service enrollment, requiring Intune app protection policies in order to use your wrapped Android LOB app, and enabling ADAL SSO (optional)

Im Folgenden wird erläutert, wie Sie eine Benutzeraufforderung beim Start der App für die automatische APP-WE-Dienstregistrierung erforderlich machen (in diesem Abschnitt Standardregistrierung genannt), und wie Sie App-Schutzrichtlinien von Intune erforderlich machen, damit nur über Intune geschützte Benutzer Ihre umschlossene Android LOB-App verwenden dürfen.The following is guidance for requiring user prompt on app launch for an automatic APP-WE service enrollment (we call this default enrollment in this section), requiring Intune app protection policies to allow only Intune protected users to use your wrapped Android LOB app. Außerdem wird dargestellt, wie SSO für Ihre umschlossene Android LOB-App aktiviert wird.It also covers how to enable SSO for your wrapped Android LOB app.

Hinweis

Die Vorteile einer Standardregistrierung umfassen u.a. eine vereinfachte Methode zum Abrufen von Richtlinien über den APP-WE-Dienst für eine App auf dem Gerät.The benefits of default enrollment include a simplified method of obtaining policy from APP-WE service for an app on the device.

Allgemeine AnforderungenGeneral Requirements

  • Das Intune SDK-Team benötigt die Anwendungs-ID Ihrer App.The Intune SDK team will require your app's Application ID. Sie können diese ID über das Azure-Portal unter Alle Anwendungen in der Spalte Anwendungs-ID finden.A way to find this is through the Azure Portal, under All Applications, in the column for Application ID. Am besten können Sie das Intune SDK-Team per E-Mail erreichen msintuneappsdk@microsoft.com.A good way to reach out to the Intune SDK team is through emailing msintuneappsdk@microsoft.com.

Arbeiten mit dem Intune SDKWorking with the Intune SDK

Diese Anweisungen beziehen sich auf alle Android- und Xamarin-Apps, für die eine App-Schutzrichtlinie von Intune für die Verwendung auf einem Benutzergerät erforderlich sein soll.These instructions are specific to all Android and Xamarin apps who wish to require Intune app protection policies for use on a end user device.

  1. Konfigurieren Sie ADAL, indem Sie die in der Intune SDK für Android-Anleitung beschriebenen Schritte ausführen.Configure ADAL using the steps defined in the Intune SDK for Android guide.

Hinweis

Die Benennung „client id“ entspricht der Benennung „application id“ aus dem Azure Portal. Beide Benennungen sind an Ihre App gebunden.The term "client id" tied to your app is the same as the term "application id" from the Azure Portal tied to your app.

  • Zur Aktivierung von SSO benötigen Sie die im Abschnitt „Häufig verwendete ADAL-Konfigurationen“ #2 beschriebenen Informationen.To enable SSO, "Common ADAL configuration" #2 is what is needed.
  1. Aktivieren Sie die Standardregistrierung, indem Sie den folgenden Wert in das Manifest einfügen: xml <meta-data android:name="com.microsoft.intune.mam.DefaultMAMServiceEnrollment" android:value="true" />.Enable default enrollment by putting the following value in the manifest: xml <meta-data android:name="com.microsoft.intune.mam.DefaultMAMServiceEnrollment" android:value="true" />

    Hinweis

    Dabei muss es sich um die einzige MAM-WE-Integration in der App handeln.This must be the only MAM-WE integration in the app. Wenn es zu weiteren Versuchen kommt, MAMEnrollmentManager-APIs aufzurufen, können Konflikte entstehen.If there are any other attempts to call MAMEnrollmentManager APIs, conflicts can arise.

  2. Aktivieren Sie die erforderliche MAM-Richtlinie, indem Sie den folgenden Wert in das Manifest einfügen: xml <meta-data android:name="com.microsoft.intune.mam.MAMPolicyRequired" android:value="true" />.Enable MAM policy required by putting the following value in the manifest: xml <meta-data android:name="com.microsoft.intune.mam.MAMPolicyRequired" android:value="true" />

    Hinweis

    Dann ist der Benutzer gezwungen, das Unternehmensportal auf dem Gerät herunterzuladen und den Vorgang der Standardregistrierung vor der Nutzung abzuschließen.This forces the user to download the Company Portal on the device and complete the default enrollment flow before use.

Siehe auchSee also