Microsoft Intune App SDK-Xamarin-BindungenMicrosoft Intune App SDK Xamarin Bindings

Hinweis

Lesen Sie am besten zuerst den Leitfaden Erste Schritte mit dem Microsoft Intune App SDK. Dort finden Sie Informationen zu den Vorbereitungen, die Sie auf den verschiedenen unterstützten Plattformen für die Integration treffen müssen.You may wish to first read the Get Started with Intune App SDK article, which explains how to prepare for integration on each supported platform.

ÜbersichtOverview

Mit den Intune App SDK-Xamarin-Bindungen können Sie die Intune-App-Schutzrichtlinie in Ihren mit Xamarin erstellten iOS- und Android-Apps aktivieren.The Intune App SDK Xamarin Bindings enable Intune app protection policy in iOS and Android apps built with Xamarin. Die Bindungen ermöglichen es Entwicklern, App-Schutzfunktionen von Intune auf einfache Weise in ihre auf Xamarin basierenden Apps zu integrieren.The bindings allow developers to easily build in Intune app protection features into their Xamarin-based app.

Mit den Microsoft Intune App SDK Xamarin-Bindungen können Sie die Intune-App-Schutzrichtlinien (auch als APP- oder MAM-Richtlinien bezeichnet) in Ihre mit Xamarin entwickelten Apps integrieren.The Microsoft Intune App SDK Xamarin Bindings let you incorporate Intune app protection policies (also known as APP or MAM policies) into your apps developed with Xamarin. MAM-fähige Anwendungen sind in das Intune App SDK integrierte Anwendungen.A MAM-enabled application is one that is integrated with the Intune App SDK. Sie ermöglichen IT-Administratoren, App-Schutzrichtlinien für Ihre mobile App bereitzustellen, wenn diese aktiv von Intune verwaltet wird.IT administrators can deploy app protection policies to your mobile app when Intune actively manages the app.

Was wird unterstützt?What's supported?

EntwicklercomputerDeveloper machines

  • Windows (Visual Studio-Version 15.7 und höher)Windows (Visual Studio version 15.7+)
  • macOSmacOS

Mobile App-PlattformenMobile app platforms

  • AndroidAndroid
  • iOSiOS

Intune MAM-SzenarienIntune Mobile Application Management scenarios

  • Intune-APP-WE (ohne Geräteregistrierung)Intune APP-WE (without device enrollment)
  • Mit Intune MDM registrierte GeräteIntune MDM-enrolled devices
  • Mit EMM registrierte Geräte von DrittanbieternThird-party EMM-enrolled devices

Xamarin-Apps, die mit den Intune App SDK Xamarin-Bindungen erstellt wurden, können jetzt sowohl auf registrierten als auch auf nicht registrierten Geräten mit mobiler Intune-Geräteverwaltung (Mobile Device Management, MDM) Intune-App-Schutzrichtlinien empfangen.Xamarin apps built with the Intune App SDK Xamarin Bindings can now receive Intune app protection policies on both Intune mobile device management (MDM) enrolled devices and unenrolled devices.

VoraussetzungenPrerequisites

  • [Nur Android] Die aktuelle Microsoft Intune-Unternehmensportal-App muss auf dem Gerät installiert sein.[Android only] The latest Microsoft Intune Company Portal app must be installed on the device.

Erste SchritteGet started

  1. Lesen Sie die Lizenzbedingungen für die Microsoft Intune MAM-Xamarin-Komponente.Read the license terms for the Microsoft Intune MAM Xamarin Component.

  2. Laden Sie den Ordner der Xamarin-Komponente des Intune App SDK von GitHub oder Nuget.org herunter, und extrahieren Sie diesen.Download the Intune App SDK Xamarin Component folder from GitHub or Nuget.org and extract it. Die beiden in Schritt 1 und Schritt 3 heruntergeladenen Dateien müssen sich auf derselben Verzeichnisebene befinden.Both files downloaded from step 1 and step 3 should be in the same directory level.

  3. Führen Sie Xamarin.Component.exe install <.xam> file in der Befehlszeile als Administrator aus.In the command line as an administrator, run Xamarin.Component.exe install <.xam> file.

  4. Klicken Sie in Visual Studio mit der rechten Maustaste in Ihrem zuvor erstellten Xamarin-Projekt auf Komponenten.In Visual Studio, right-click components in your previously created Xamarin project.

  5. Wählen Sie Komponenten bearbeiten aus, und fügen Sie die Intune App SDK-Komponente hinzu, die Sie lokal auf Ihren Computer heruntergeladen haben.Select Edit Components and add the Intune App SDK component you’ve downloaded locally to your computer.

Lesen Sie die Lizenzbedingungen.Review the license terms. Drucken Sie die Lizenzbedingungen aus, und heben Sie eine Kopie für Ihre Unterlagen auf.Print and retain a copy of the license terms for your records. Indem Sie die Intune App SDK-Xamarin-Bindungen herunterladen und verwenden, stimmen Sie diesen Lizenzbestimmungen zu.By downloading and using the Intune App SDK Xamarin Bindings, you agree to such license terms. Wenn Sie sie nicht akzeptieren, dürfen Sie die Software nicht verwenden.If you do not accept them, do not use the software.

Aktivieren der Intune-App-Schutzrichtlinien in Ihrer mobilen iOS-AppEnabling Intune app protection polices in your iOS mobile app

  1. Fügen Sie das NuGet-Paket Microsoft.Intune.MAM.Xamarin.iOS zu Ihrem Xamarin.iOS-Projekt hinzu.Add the Microsoft.Intune.MAM.Xamarin.iOS NuGet package to your Xamarin.iOS project.

  2. Führen Sie die allgemeinen Schritte zur Integration des Intune App SDK in eine mobile iOS-App durch.Follow the general steps required for integrating the Intune App SDK into an iOS mobile app. Sie können mit Schritt 3 der Integrationsanweisungen aus dem Entwicklerleitfaden zum Intune App SDK für iOS beginnen.You can begin with step 3 of the integration instructions from the Intune App SDK for iOS Developer Guide. Sie können den letzten Schritt im Abschnitt über das Ausführen von IntuneMAMConfigurator überspringen, da dieses Tool im Microsoft.Intune.MAM.Xamarin.iOS-Paket enthalten ist und automatisch zur Erstellungszeit ausgeführt wird.You can skip the final step in that section of running the IntuneMAMConfigurator, as this tool is included in the Microsoft.Intune.MAM.Xamarin.iOS package and will be run automatically at build time. Wichtig: Das Aktivieren der Schlüsselbundfreigabe für eine App unterscheidet sich in Visual Studio geringfügig von Xcode.Important: Enabling keychain sharing for an app is slightly different in Visual Studio from Xcode. Öffnen Sie die Datei „Entitlements.plist“ der App, und vergewissern Sie sich, dass die Option „Keychain aktivieren“ aktiviert ist und die entsprechenden Schlüsselbundfreigabegruppen in diesem Abschnitt hinzugefügt werden.Open the app's Entitlements plist and make sure the "Enable Keychain" option is enabled and the appropriate keychain sharing groups are added in that section. Vergewissern Sie sich dann, dass im Feld „Benutzerdefinierte Berechtigungen“ der „iOS-Bündelsignierung “-Optionen des Projekts für alle entsprechenden Konfigurations-/Plattformkombinationen „Entitlements.plist“ angegeben ist.Then, ensure the Entitlements plist is specified in the "Custom Entitlements" field of the project's "iOS Bundle Signing" options for all the appropriate Configuration/Platform combinations.

  3. Sobald die Bindungen hinzugefügt sind und die App richtig konfiguriert ist, kann Ihre App mit der Verwendung der APIs des Intune SDK beginnen.Once the bindings are added and the app is properly configured, your app can begin using the Intune SDK's APIs. Dazu müssen Sie den folgenden Namespace einbinden:To do so, you must include the following namespace:

    using Microsoft.Intune.MAM;
    
  4. Um App-Schutzrichtlinien zu erhalten, muss sich Ihre App beim Intune MAM-Dienst registrieren.To begin receiving app protection policies, your app must enroll in the Intune MAM service. Wenn Ihre App bereits die Azure Active Directory Authentication Library (ADAL) verwendet, um Benutzer zu authentifizieren, sollte Ihre App nach erfolgreicher Authentifizierung die UPN des Benutzers an die registerAndEnrollAccount-Methode von IntuneMAMEnrollmentManager weitergeben:If your app already uses the Azure Active Directory Authentication Library (ADAL) to authenticate users, your app should provide the user's UPN to the IntuneMAMEnrollmentManager's registerAndEnrollAccount method after it has successfully authenticated:

    IntuneMAMEnrollmentManager.Instance.RegisterAndEnrollAccount(string identity);
    

    Wichtig: Achten Sie darauf, dass Sie die ADAL-Standardeinstellungen des Intune App SDK mit denen Ihre App überschreiben.Important: Be sure to override the Intune App SDK's default ADAL settings with those of your app. Sie können dies über das IntuneMAMSettings-Wörterbuch in der Datei „Info.plist“ der App tun, wie im Entwicklerleitfaden zum Intune App SDK für iOS erwähnt wird, oder die AAD-Überschreibungseigenschaften der IntuneMAMPolicyManager-Instanz verwenden.You can do so via the IntuneMAMSettings dictionary in the app's Info.plist, as mentioned in the Intune App SDK for iOS Developer Guide, or you can use the AAD override properties of the IntuneMAMPolicyManager instance. Der Ansatz mit „Info.plist“ wird für Anwendungen empfohlen, deren ADAL-Einstellungen statisch sind, wohingegen die Überschreibungseigenschaften für Anwendungen empfohlen werden, die diese Werte zur Runtime ermitteln.The Info.plist approach is recommended for applications whose ADAL settings are static while the override properties are recommended for applications that determine those values at runtime.

    Wenn Ihre App nicht ADAL verwendet und Sie möchten, dass das Intune SDK die Authentifizierung übernimmt, sollte Ihre App die loginAndEnrollAccount-Methode der IntuneMAMEnrollmentManager-Instanz aufrufen:If your app does not use ADAL, and you'd like the Intune SDK to handle authentication, your app should call the IntuneMAMEnrollmentManager's loginAndEnrollAccount method:

     IntuneMAMEnrollmentManager.Instance.LoginAndEnrollAccount([NullAllowed] string identity);
    

Hinweis

Es gibt keinen Remapper für iOS.There is no remapper for iOS. Die Integration in eine Xamarin.Forms-App sollte identisch mit der Integration in ein herkömmliches Xamarin.iOS-Projekt sein.Integrating into a Xamarin.Forms app should be the same as for a regular Xamarin.iOS project.

Aktivieren der Intune-App-Schutzrichtlinien in Ihrer mobilen Android-AppEnabling Intune app protection policies in your Android mobile app

Für Xamarin-basierte Android-Apps, die kein Benutzeroberflächenframework verwenden, lesen und befolgen Sie das Entwicklerhandbuch zum Microsoft Intune App SDK für Android.For Xamarin-based Android apps not using a UI framework, you need to read and follow the Intune App SDK for Android Developer Guide. Für Xamarin-basierte Android-Apps müssen die Klasse, Methoden und Aktivitäten basierend auf der im Handbuch enthaltenen Tabelle durch das MAM-Äquivalent ersetzt werden.For your Xamarin-based Android app, you need to replace class, methods, and activities with their MAM equivalent based on the table included in the guide. Wenn Ihre App keine android.app.Application-Klasse definiert, müssen Sie eine erstellen. Es muss sichergestellt werden, dass Sie von MAMApplication erben.If your app doesn’t define an android.app.Application class, you need to create one and ensure that you inherit from MAMApplication.

Xamarin.Android-IntegrationXamarin.Android integration

  1. Fügen Sie Ihrem Xamarin.Android-Projekt die neueste Version des NuGet-Pakets Microsoft.Intune.MAM.Xamarin.Android hinzu.Add the latest version of the Microsoft.Intune.MAM.Xamarin.Android NuGet package to your Xamarin.Android project. Dadurch werden die für Ihre Anwendung erforderlichen Verweise auf Intune festgelegt.This will provide you with the necessary references to Intune enable your application.

  2. Lesen Sie sich das Entwicklerhandbuch zum Intune App SDK für Android vollständig durch, und führen Sie die darin enthaltenen Schritte aus. Beachten Sie dabei insbesondere folgende Abschnitte:Read and follow the Intune App SDK for Android Developers Guide fully, paying special attention to:

    1. den gesamten Abschnitt zum Ersetzen von Klassen und Methoden.The entire class and method replacements section.
    2. den Abschnitt MAMApplication.The MAMApplication section. Achten Sie darauf, dass die Unterklasse mit dem [Application]-Attribut versehen ist und den (IntPtr, JniHandleOwnership)-Konstruktor überschreibt.Be sure that your subclass is properly decorated with the [Application] attribute and overrides the (IntPtr, JniHandleOwnership) constructor.
    3. den Abschnitt zur ADAL-Integration, wenn Ihre App sich bei AAD authentifiziert.The ADAL integration section if your app performs authentication against AAD.
    4. den Abschnitt zur MAM-WE-Registrierung, wenn Sie beabsichtigen, eine Richtlinie über den MAM-Dienst in Ihrer Anwendung zu beziehen.The MAM-WE enrollment section if you plan on obtaining policy from the MAM service in your application.

Hinweis

Wenn Sie versuchen, entsprechende APIs im Entwicklerhandbuch zum Intune App SDK für Android in den Microsoft.Intune.MAM.Xamarin.Android-Bindungen zu suchen oder Codeausschnitte aus dem Handbuch zu konvertieren, sollten Sie beachten, dass der Generator für Xamarin-Bindungen die folgenden relevanten Änderungen an den Android-APIs durchführt:When attempting to find equivalent APIs from the Intune App SDK for Android Developers Guide in the Microsoft.Intune.MAM.Xamarin.Android Bindings or when converting code snippets from the guide, be aware that Xamarin's bindings generator modifies the Android APIs in the following notable ways:

  • Alle Bezeichner werden in die Pascal-Schreibweise konvertiert („com.foo.bar“ wird beispielsweise zu „Com.Foo.Bar“).All identifiers are converted to Pascal case (com.foo.bar -> Com.Foo.Bar)
  • Alle get/set-Vorgänge werden in Eigenschaftenvorgänge konvertiert (z.B. „Foo.getBar()“ in „Foo.Bar“ oder „Foo.setBar("zap")“ in „Foo.Bar = "zap"“)All get/set operations are converted to property operations (e.g. Foo.getBar() -> Foo.Bar, Foo.setBar("zap") -> Foo.Bar = "zap")
  • Dem Namen aller Schnittstellen wird das Zeichen „I“ vorangestellt (z.B. wird „FooInterface“ zu „IFooInterface“)All interfaces have the character 'I' prepended on the name (FooInterface -> IFooInterface)

Xamarin.Forms-IntegrationXamarin.Forms integration

Zusätzlich zum Ausführen aller oben beschriebenen Schritte ist für Xamarin.Forms-Anwendungen das bereitgestellte Microsoft.Intune.MAM.Remapper-Paket erforderlich.In addition to performing all of the steps above, for Xamarin.Forms applications we have provided the Microsoft.Intune.MAM.Remapper package. Mit diesem werden Klassen automatisch ersetzt, indem MAM-Klassen in die Hierarchie häufig verwendeter Xamarin.Forms-Klassen wie FormsAppCompatActivity und FormsApplicationActivity eingefügt werden. Sie können die letztgenannten Klassen dadurch weiterhin verwenden, indem Sie entsprechende MAM-Funktionen wie OnMAMCreate und OnMAMResume überschreiben.This package accomplishes class replacement for you by injecting MAM classes into the class hierarchy of commonly used Xamarin.Forms classes like FormsAppCompatActivity and FormsApplicationActivity so you can continue to use those classes by providing overrides for the MAM equivalent functions like OnMAMCreate and OnMAMResume. Führen Sie Folgendes durch, um es zu verwenden:To use it, do the following:

  1. Fügen Sie das NuGet-Paket Microsoft.Intune.MAM.Remapper.Tasks zu Ihrem Projekt hinzu.Add the Microsoft.Intune.MAM.Remapper.Tasks NuGet package to your project. Dadurch werden Intune APP SDK-Xamarin-Bindungen automatisch hinzugefügt, wenn Sie diese nicht bereits eingebunden haben.This will automatically add the Intune APP SDK Xamarin bindings if you have not already included them.

  2. Ergänzen Sie die OnMAMCreate-Funktion der in Schritt 2.b erstellten MAMApplication-Klasse um einen Aufruf von Xamarin.Forms.Forms.Init(Context, Bundle).Add a call to Xamarin.Forms.Forms.Init(Context, Bundle) in the OnMAMCreate function of the MAMApplication class you created in step 2.2 above. Dies ist erforderlich, da Ihre Anwendung mit der Intune-Verwaltung im Hintergrund gestartet werden kann.This is needed because with Intune management your application can be started while in the background.

Hinweis

Bei diesem Vorgang wird eine Abhängigkeit geändert, die Visual Studio zur IntelliSense-Autovervollständigung verwendet. Nach der ersten Ausführung des Remappers müssen Sie Visual Studio daher möglicherweise neu starten, damit die Änderungen von IntelliSense erkannt werden.Because this operation re-writes a dependency that Visual Studio uses for Intellisense auto-completion, you may need to restart Visual Studio after the first time the remapper runs to get Intellisense to correctly recognize the changes.

UnterstützungSupport

Sie haben die grundlegenden Schritte zum Erstellen der Komponente auf Ihrer App abgeschlossen.You have completed the basic steps of building the component into your app. Jetzt können die Schritte ausgeführt werden, die in der Xamarin Android-Beispiel-App zu finden sind.Now you can follow the steps included in the Xamarin Android sample app. Wir haben zwei Beispiele bereit gestellt, eine für Xamarin.Forms und eine weitere für Android.We have provided two samples, one for Xamarin.Forms and another for Android.

Intune-App-Schutzrichtlinien für die Verwendung einer auf Xamarin basierenden branchenspezifischen Android-App erforderlich (optional)Requiring Intune app protection policies in order to use your Xamarin-based Android LOB app (optional)

Mithilfe der folgenden Anweisungen können Sie sicherstellen, dass auf Xamarin basierende branchenspezifische Android-Apps nur von durch Intune geschützte Benutzer auf deren Gerät verwendet werden können.The following is guidance for ensuring Xamarin-based Android LOB apps can be used only by Intune protected users on their 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 im Azure-Portal unter Alle Anwendungen in der Spalte Anwendungs-ID finden.This can be found in 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, das mit Ihrer App verbunden ist.The term "client id" 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.

  1. 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 sind Apps gezwungen, das Unternehmensportal auf dem Gerät herunterzuladen und den Vorgang der Standardregistrierung vor der Nutzung abzuschließen.This forces apps to download the Company Portal on the device and complete the default enrollment flow before use.

Arbeiten mit ADALWorking with ADAL

Diese Anweisungen sind für .NET/Xamarin-Apps erforderlich, für die eine App-Schutzrichtlinie von Intune für die Verwendung auf einem Benutzergerät erforderlich sein soll.These instructions are a requirement for .NET/Xamarin apps who wish to require Intune app protection policies for use on a end user device.

  1. Befolgen Sie alle Schritte, die in der ADAL-Dokumentation unter Brokered Authentication for Android (Im Broker gespeicherte Authentifizierung für Android) definiert sind.Follow all the steps defined in the ADAL documentation under Brokered Authentication for Android.

Hinweis

Die Version, die von .NET ADAL als Nächstes veröffentlicht wird (3.17.4), wird vermutlich die erforderliche Fehlerbehebung enthalten, damit dies funktioniert.The version that .NET ADAL will be releasing next (3.17.4) is expected to contain the fix required to make this work.

Wenn Ihre Organisation ein bestehender Kunde von Intune ist, arbeiten Sie mit Ihrem Microsoft-Supportmitarbeiter zusammen, um ein Supportticket zu öffnen und ein Problem auf der GitHub-Seite für Probleme zu erstellen. Sie erhalten so bald wie möglich Hilfe.If your organization is an existing Intune customer, please work with your Microsoft support representative to open a support ticket and create an issue on the Github issues page and we will help as soon as we can.