Binding Xamarin per Microsoft Intune App SDKMicrosoft Intune App SDK Xamarin Bindings

Nota

Può essere utile leggere prima l'articolo Introduzione a Microsoft Intune App SDK, che spiega come preparare l'integrazione in ogni piattaforma supportata.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.

PanoramicaOverview

I binding Xamarin per Intune App SDK consentono l'uso dei criteri di protezione delle app di Intune nelle app per iOS e Android compilate con Xamarin.The Intune App SDK Xamarin Bindings enable Intune app protection policy in iOS and Android apps built with Xamarin. I binding consentono agli sviluppatori di integrare facilmente le funzionalità di protezione delle app di Intune in un'app basata su Xamarin.The bindings allow developers to easily build in Intune app protection features into their Xamarin-based app.

I binding Xamarin per Microsoft Intune App SDK consentono di incorporare i criteri di protezione delle app di Intune, anche noti come criteri APP o MAM, nelle app sviluppate con Xamarin.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. Un'applicazione abilitata per la gestione delle applicazioni mobili è un'applicazione integrata con Intune App SDK.A MAM-enabled application is one that is integrated with the Intune App SDK. Gli amministratori IT possono distribuire i criteri di protezione all'app per dispositivi mobili quando Intune gestisce attivamente l'app.IT administrators can deploy app protection policies to your mobile app when Intune actively manages the app.

Elementi supportatiWhat's supported?

Computer di sviluppoDeveloper machines

  • Windows (Visual Studio versione 15.7+)Windows (Visual Studio version 15.7+)
  • macOSmacOS

Piattaforme di app per dispositivi mobiliMobile app platforms

  • AndroidAndroid
  • iOSiOS

Scenari di gestione di applicazioni mobili di IntuneIntune Mobile Application Management scenarios

  • Intune APP-WE (senza registrazione del dispositivo)Intune APP-WE (without device enrollment)
  • Dispositivi registrati MDM di IntuneIntune MDM-enrolled devices
  • Dispositivi registrati EMM di terze partiThird-party EMM-enrolled devices

Le app Xamarin compilate con i binding Xamarin per Intune App SDK possono ora ricevere i criteri di protezione delle app di Intune nei dispositivi registrati in Gestione dei dispositivi mobili di Intune e nei dispositivi non registrati.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.

PrerequisitiPrerequisites

  • [Solo per Android] Nel dispositivo deve essere installata l'app Portale aziendale di Microsoft Intune più recente.[Android only] The latest Microsoft Intune Company Portal app must be installed on the device.

Operazioni preliminariGet started

  1. Leggere le condizioni di licenza per il componente Xamarin per le funzionalità MAM di Microsoft Intune.Read the license terms for the Microsoft Intune MAM Xamarin Component.

  2. Scaricare la cartella del componente Xamarin per Intune App SDK da GitHub o Nuget.org ed estrarre i file.Download the Intune App SDK Xamarin Component folder from GitHub or Nuget.org and extract it. Entrambi i file scaricati al passaggio 1 e al passaggio 3 devono essere nello stesso livello di directory.Both files downloaded from step 1 and step 3 should be in the same directory level.

  3. Nella riga di comando come amministratore eseguire Xamarin.Component.exe install <.xam> file.In the command line as an administrator, run Xamarin.Component.exe install <.xam> file.

  4. In Visual Studio fare clic con il pulsante destro del mouse sui componenti nel progetto Xamarin creato in precedenza.In Visual Studio, right-click components in your previously created Xamarin project.

  5. Selezionare Modifica componenti e aggiungere il componente Intune App SDK scaricato localmente nel computer.Select Edit Components and add the Intune App SDK component you’ve downloaded locally to your computer.

Leggere le condizioni di licenza.Review the license terms. Stampare e conservare una copia delle condizioni di licenza.Print and retain a copy of the license terms for your records. Scaricando e usando i binding Xamarin per Intune App SDK, l'utente accetta tali condizioni di licenza.By downloading and using the Intune App SDK Xamarin Bindings, you agree to such license terms. Se non vengono accettate, non usare il software.If you do not accept them, do not use the software.

Abilitazione dei criteri di protezione delle app di Intune nell'app per dispositivi mobili iOSEnabling Intune app protection polices in your iOS mobile app

  1. Aggiungere il pacchetto Microsoft.Intune.MAM.Xamarin.iOS NuGet al progetto Xamarin.iOS.Add the Microsoft.Intune.MAM.Xamarin.iOS NuGet package to your Xamarin.iOS project.

  2. Seguire i passaggi generali necessari per l'integrazione di Intune App SDK in un'app per dispositivi mobili iOS.Follow the general steps required for integrating the Intune App SDK into an iOS mobile app. È possibile iniziare dal passaggio 3 delle istruzioni di integrazione nel Manuale dello sviluppatore di Intune App SDK per iOS.You can begin with step 3 of the integration instructions from the Intune App SDK for iOS Developer Guide. È possibile ignorare il passaggio finale della sezione sull'esecuzione di IntuneMAMConfigurator poiché lo strumento è incluso nel pacchetto Microsoft.Intune.MAM.Xamarin.iOS e verrà eseguito automaticamente in fase di compilazione.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. Importante: l'abilitazione della condivisione del keychain per un'app è leggermente diversa in Visual Studio rispetto a Xcode.Important: Enabling keychain sharing for an app is slightly different in Visual Studio from Xcode. Aprire il file Entitlements.plist dell'app e assicurarsi che l'opzione "Abilita Keychain" sia abilitata e che in tale sezione vengano aggiunti i gruppi di condivisione del keychain appropriati.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. Assicurarsi quindi di specificare il file Entitlements.plist nel campo "Entitlement personalizzati" delle opzioni "Firma del bundle iOS" del progetto per tutte le combinazioni di configurazione/piattaforma appropriate.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. Dopo l'aggiunta dei binding e la corretta configurazione dell'app, quest'ultima potrà iniziare a usare le API di Intune SDK.Once the bindings are added and the app is properly configured, your app can begin using the Intune SDK's APIs. A tale scopo, è necessario includere lo spazio dei nomi seguente:To do so, you must include the following namespace:

    using Microsoft.Intune.MAM;
    
  4. Per iniziare a ricevere i criteri di protezione delle app, è necessario registrare l'app nel servizio MAM di Intune.To begin receiving app protection policies, your app must enroll in the Intune MAM service. Se l'app usa già la libreria ADAL (Azure Active Directory Authentication Library) per l'autenticazione degli utenti, l'app deve fornire l'UPN dell'utente al metodo registerAndEnrollAccount di IntuneMAMEnrollmentManager dopo che è stato autenticato: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);
    

    Importante: assicurarsi di sostituire le impostazioni predefinite per la libreria ADAL di Intune App SDK con quelle dell'app.Important: Be sure to override the Intune App SDK's default ADAL settings with those of your app. È possibile farlo tramite il dizionario IntuneMAMSettings nel file Info.plist dell'app, come indicato nel Manuale dello sviluppatore di Intune App SDK per iOS oppure è possibile usare le proprietà di sostituzione AAD dell'istanza IntuneMAMPolicyManager.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. L'approccio che prevede il file Info.plist è consigliato per applicazioni con impostazioni ADAL statiche, mentre le proprietà di sostituzione sono consigliate per le applicazioni che determinano questi valori in fase di esecuzione.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.

    Se l'app non usa ADAL e si vuole gestire l'autenticazione con Intune SDK, l'app deve chiamare il metodo loginAndEnrollAccount di IntuneMAMEnrollmentManager: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);
    

Nota

Non è disponibile alcun remapper per iOS.There is no remapper for iOS. L'integrazione in un'app Xamarin.Forms deve essere identica a quella di un progetto Xamarin.iOS regolare.Integrating into a Xamarin.Forms app should be the same as for a regular Xamarin.iOS project.

Abilitazione dei criteri di protezione delle app di Intune nell'app per dispositivi mobili AndroidEnabling Intune app protection policies in your Android mobile app

Per le app per Android basate su Xamarin che non usano un framework interfaccia utente, è necessario leggere e seguire la Guida a Microsoft Intune App SDK per sviluppatori 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. Per l'app per Android basata su Xamarin, è necessario sostituire classe, metodi e attività con i rispettivi equivalenti per MAM in base alla tabella inclusa nella guida.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. Se l'app non definisce una classe android.app.Application, è necessario crearne una e assicurarsi di ereditare da MAMApplication.If your app doesn’t define an android.app.Application class, you need to create one and ensure that you inherit from MAMApplication.

Integrazione di Xamarin.AndroidXamarin.Android integration

  1. Aggiungere la versione più recente del pacchetto NuGet Microsoft.Intune.MAM.Xamarin.Android al progetto Xamarin.Android.Add the latest version of the Microsoft.Intune.MAM.Xamarin.Android NuGet package to your Xamarin.Android project. Il pacchetto mette a disposizione i riferimenti necessari per abilitare l'applicazione per Intune.This will provide you with the necessary references to Intune enable your application.

  2. Leggere e seguire interamente la Guida a Intune App SDK per Android per gli sviluppatori, prestando particolare attenzione alle sezioni seguenti:Read and follow the Intune App SDK for Android Developers Guide fully, paying special attention to:

    1. Sezione relativa alla sostituzione completa di classi e metodi.The entire class and method replacements section.
    2. Sezione su MAMApplication.The MAMApplication section. Assicurarsi che la sottoclasse sia decorata correttamente con l'attributo [Application] ed esegua l'override del costruttore (IntPtr, JniHandleOwnership).Be sure that your subclass is properly decorated with the [Application] attribute and overrides the (IntPtr, JniHandleOwnership) constructor.
    3. Sezione relativa all'integrazione ADAL se l'app esegue l'autenticazione ad AAD.The ADAL integration section if your app performs authentication against AAD.
    4. Sezione sulla registrazione MAM-WE se si prevede di ottenere criteri dal servizio MAM nell'applicazione.The MAM-WE enrollment section if you plan on obtaining policy from the MAM service in your application.

Nota

Quando si tenta di trovare API equivalenti della Guida a Intune App SDK per Android per gli sviluppatori nei binding Microsoft.Intune.MAM.Xamarin.Android o quando si convertono frammenti di codice della guida, tenere presente che il generatore di binding Xamarin modifica le API Android nei modi seguenti: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:

  • Tutti gli identificatori vengono convertiti in notazione Pascal (com.foo.bar -> Com.Foo.Bar)All identifiers are converted to Pascal case (com.foo.bar -> Com.Foo.Bar)
  • Tutte le operazioni get/set vengono convertite in operazioni di proprietà (ad esempio Foo.getBar() -> Foo.Bar, Foo.setBar("zap") -> Foo.Bar = "zap")All get/set operations are converted to property operations (e.g. Foo.getBar() -> Foo.Bar, Foo.setBar("zap") -> Foo.Bar = "zap")
  • Tutte le interfacce riportano il carattere "I" anteposto al nome (FooInterface -> IFooInterface)All interfaces have the character 'I' prepended on the name (FooInterface -> IFooInterface)

Integrazione di Xamarin.FormsXamarin.Forms integration

Oltre all'esecuzione di tutti i passaggi sopra riportati, per le applicazioni Xamarin.Forms è stato fornito il pacchetto Microsoft.Intune.MAM.Remapper.In addition to performing all of the steps above, for Xamarin.Forms applications we have provided the Microsoft.Intune.MAM.Remapper package. Questo pacchetto esegue la sostituzione delle classi inserendo classi MAM nella gerarchia delle classi Xamarin.Forms di uso comune, come FormsAppCompatActivity e FormsApplicationActivity. È quindi possibile continuare a usare queste classi tramite override per le funzioni MAM equivalenti, ad esempio OnMAMCreate e OnMAMResume.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. Per usarlo, seguire questa procedura:To use it, do the following:

  1. Aggiungere il pacchetto NuGet Microsoft.Intune.MAM.Remapper.Tasks al progetto.Add the Microsoft.Intune.MAM.Remapper.Tasks NuGet package to your project. In questo modo i binding Xamarin di Intune APP SDK vengono aggiunti automaticamente, se non sono ancora stati aggiunti.This will automatically add the Intune APP SDK Xamarin bindings if you have not already included them.

  2. Aggiungere una chiamata a Xamarin.Forms.Forms.Init(Context, Bundle) nella funzione OnMAMCreate della classe MAMApplication creata nel passaggio 2.2 precedente.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. Questa operazione è necessaria perché con la gestione di Intune è possibile avviare l'applicazione in background.This is needed because with Intune management your application can be started while in the background.

Nota

Poiché questa operazione riscrive una dipendenza usata da Visual Studio per il completamento automatico di Intellisense, perché Intellisense riconosca correttamente le modifiche può essere necessario riavviare Visual Studio dopo la prima esecuzione del remapper.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.

SupportSupport

Le operazioni principali per la compilazione del componente nell'app sono state completate.You have completed the basic steps of building the component into your app. A questo punto è possibile seguire i passaggi inclusi nell'app di esempio Xamarin Android.Now you can follow the steps included in the Xamarin Android sample app. Sono disponibili due esempi, rispettivamente per Xamarin.Forms e per Android.We have provided two samples, one for Xamarin.Forms and another for Android.

Richiesta di criteri di protezione delle app di Intune per l'uso dell'app di Android LOB basata su Xamarin (facoltativo)Requiring Intune app protection policies in order to use your Xamarin-based Android LOB app (optional)

Il materiale sussidiario offerto di seguito consente di verificare che le app di Android LOB basate su Xamarin possano essere usate solo dagli utenti protetti da Intune sul loro dispositivo.The following is guidance for ensuring Xamarin-based Android LOB apps can be used only by Intune protected users on their device.

Requisiti generaliGeneral Requirements

  • Il team di Intune SDK richiederà l'ID applicazione dell'app.The Intune SDK team will require your app's Application ID. Si può trovare questo elemento nel portale di Azure in Tutte le applicazioni, colonna ID applicazione.This can be found in the Azure Portal, under All Applications, in the column for Application ID. Un buon metodo per contattare il team di Intune SDK è tramite l'invio di un messaggio di posta elettronica all'indirizzo msintuneappsdk@microsoft.com.A good way to reach out to the Intune SDK team is through emailing msintuneappsdk@microsoft.com.

Uso di Intune SDKWorking with the Intune SDK

Queste istruzioni sono specifiche per tutte le app Android e Xamarin che richiederanno i criteri di protezione delle app Intune per l'uso nel dispositivo di un utente finale.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. Configurare ADAL usando i passaggi definiti nella Guida a Intune SDK per Android.Configure ADAL using the steps defined in the Intune SDK for Android guide.

Nota

Il termine "ID client" equivale al termine "ID applicazione" del portale di Azure associato all'app.The term "client id" is the same as the term "application id" from the Azure Portal tied to your app.

  • Per abilitare SSO, vedere il punto 2 della sezione "Configurazioni comuni di ADAL".To enable SSO, "Common ADAL configuration" #2 is what is needed.
  1. Abilitare la registrazione predefinita inserendo il valore seguente nel manifesto: 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" />

Nota

Questa deve essere l'unica integrazione MAM-WE nell'app.This must be the only MAM-WE integration in the app. Altri tentativi di chiamare le API MAMEnrollmentManager possono determinare conflitti.If there are any other attempts to call MAMEnrollmentManager APIs, conflicts can arise.

  1. Abilitare i criteri MAM richiesti inserendo il valore seguente nel manifesto: 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" />

Nota

In questo modo, l'app viene obbligata a scaricare il Portale aziendale nel dispositivo e completare le fasi della registrazione predefinita prima dell'uso.This forces apps to download the Company Portal on the device and complete the default enrollment flow before use.

Uso di ADALWorking with ADAL

Queste istruzioni sono specifiche per le app .NET e Xamarin che richiedono i criteri di protezione delle app Intune per l'uso nel dispositivo di un utente finale.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. Seguire tutti i passaggi definiti nella documentazione di ADAL in Brokered Authentication for Android (Autenticazione negoziata per Android).Follow all the steps defined in the ADAL documentation under Brokered Authentication for Android.

Nota

La versione che ADAL .NET rilascerà prossimamente (3.17.4) conterrà la correzione necessaria per eseguire questa operazione.The version that .NET ADAL will be releasing next (3.17.4) is expected to contain the fix required to make this work.

Se l'organizzazione è un cliente Intune, contattare il rappresentante del supporto tecnico Microsoft per aprire un ticket di supporto e creare una richiesta nella pagina Github relativa ai problemi. Il supporto verrà fornito tempestivamente.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.