Microsoft Intune App SDK Xamarin-kötések

Megjegyzés:

Az Android platformhoz készült jelenlegi Xamarin-kötések csak az Android 9.0-s és újabb, valamint a Xamarin 4.4-Forms és annál alacsonyabb verziókat célzó alkalmazásokat támogatják. A Microsoft azon dolgozik, hogy Intune támogatást nyújtson az Android újabb verzióinak támogatásához. A .NET MAUI-támogatás bétaverziós kiadása már elérhető. További információ: Intune App SDK for .NET MAUI – Android. A .NET MAUI iOS-en való támogatásáról lásd: Intune App SDK for .NET MAUI – iOS. A Xamarin-támogatásról és az alkalmazások Xamarin Forms-ból .NET MAUI-ba történő migrálásáról további információt a Xamarin támogatási szabályzata és az alkalmazás migrálása a Xamarin.Forms-ból című témakörben talál.

Érdemes először elolvasnia a Intune App SDK használatának első lépéseit ismertető cikket, amely ismerteti, hogyan készülhet fel az integrációra az egyes támogatott platformokon.

Áttekintés

Az Intune App SDK Xamarin-kötések lehetővé teszik Intune alkalmazásvédelmi szabályzat használatát a Xamarinnal készült iOS- és Android-alkalmazásokban. A kötések lehetővé teszik a fejlesztők számára, hogy egyszerűen beépítsék Intune alkalmazásvédelmi funkciókat a Xamarin-alapú alkalmazásukba.

Az Microsoft Intune App SDK Xamarin-kötésekkel Intune alkalmazásvédelmi szabályzatokat (más néven APP- vagy MAM-szabályzatokat) építhet be a Xamarinnal fejlesztett alkalmazásokba. A MAM-kompatibilis alkalmazások integrálva lesznek a Intune App SDK-val. A rendszergazdák akkor helyezhetnek üzembe alkalmazásvédelmi szabályzatokat a mobilalkalmazásban, ha Intune aktívan felügyelik az alkalmazást.

Mi támogatott?

Fejlesztői gépek

  • Windows (Visual Studio 15.7-es vagy újabb verzió)
  • macOS

Mobilalkalmazás-platformok

  • Android
  • iOS

Intune mobilalkalmazás-kezelési forgatókönyvek

  • INTUNE MAM
  • MDM-ben regisztrált eszközök Intune
  • Külső EMM-ben regisztrált eszközök

A Intune App SDK Xamarin-kötésekkel létrehozott Xamarin-alkalmazások mostantól Intune alkalmazásvédelmi szabályzatokat kaphatnak Intune mobileszköz-felügyelettel (MDM) regisztrált és nem regisztrált eszközökön is.

Előfeltételek

Tekintse át a licencfeltételeket. Nyomtassa ki és őrizze meg a rekordok licencfeltételeinek másolatát. A Intune App SDK Xamarin Bindings letöltésével és használatával elfogadja az ilyen licencfeltételeket. Ha nem fogadja el őket, ne használja a szoftvert.

A Intune SDK a Microsoft Authentication Libraryre (MSAL) támaszkodik a hitelesítési és feltételes indítási forgatókönyvekhez, amelyekhez az alkalmazásoknak konfigurálva kell lenniük a Microsoft Entra ID.

Ha az alkalmazás már konfigurálva van az MSAL használatára, és saját egyéni ügyfél-azonosítóval rendelkezik a Microsoft Entra ID való hitelesítéshez, győződjön meg arról, hogy a Xamarin-alkalmazás engedélyeit a Intune Mobile Application Management (MAM) szolgáltatáshoz kell adni. Használja az Intune SDK útmutatójának első lépéseinek "Az alkalmazás hozzáférésének biztosítása a Intune Mobile App Management szolgáltatáshoz" című szakaszának utasításait.

Biztonsági szempontok

A lehetséges hamisítás, információfelfedés és jogosultságszint-emelési támadások megelőzése érdekében:

  • Győződjön meg arról, hogy a Xamarin-alkalmazásfejlesztés biztonságos munkahelyen történik.
  • Győződjön meg arról, hogy a kötések érvényes Microsoft-forrásból származnak:
  • Konfigurálja a NuGet-konfigurációt a projekthez, hogy megbízhatónak minősítse az aláírt, nem módosított NuGet-csomagokat. További információt az aláírt csomagok telepítésével kapcsolatos cikkben talál.
  • Biztonságossá teheti a Xamarin-alkalmazást tartalmazó kimeneti könyvtárat. Érdemes lehet felhasználói szintű könyvtárat használni a kimenethez.

Intune alkalmazásvédelmi szabályzatok engedélyezése iOS-mobilalkalmazásban

Fontos

Intune rendszeresen ad ki frissítéseket a Intune App SDK-hoz. Rendszeresen ellenőrizze az Intune App SDK Xamarin-kötéseket a frissítésekhez, és építse be őket a szoftverfejlesztési kiadási ciklusba, hogy az alkalmazások támogatják a legújabb alkalmazásvédelmi szabályzat beállításait.

  1. Adja hozzá a Microsoft.Intune. MAM. Xamarin.iOS NuGet-csomag a Xamarin.iOS-projekthez.

  2. Kövesse a Intune App SDK iOS-mobilalkalmazásba való integrálásához szükséges általános lépéseket. Kezdje az iOS-hez készült Intune App SDK fejlesztői útmutatójának 3. lépésével. Az IntuneMAMConfigurator futtatásának ezen szakaszában kihagyhatja az utolsó lépést, mivel ez az eszköz szerepel a Microsoftban. Intune. MAM. Xamarin.iOS-csomag, és a buildeléskor automatikusan fut. Fontos: A kulcsláncmegosztás engedélyezése egy alkalmazáshoz kissé eltér a Visual Studióban az Xcode-tól. Nyissa meg az alkalmazás Jogosultságok plist elemét, és győződjön meg arról, hogy a "Kulcskarika engedélyezése" lehetőség engedélyezve van, és a megfelelő kulcsláncmegosztási csoportokat hozzáadja a szakaszhoz. Ezután győződjön meg arról, hogy a jogosultságok plist értéke a projekt "iOS-csomagaláírási" beállításainak "Egyéni jogosultságok" mezőjében van megadva az összes megfelelő konfiguráció-/platformkombinációhoz.

  3. A kötések hozzáadása és az alkalmazás megfelelő konfigurálása után az alkalmazás elkezdheti használni az Intune SDK API-jait. Ehhez a következő névteret kell tartalmaznia:

    using Microsoft.Intune.MAM;
    
  4. Az alkalmazásvédelmi szabályzatok fogadásának megkezdéséhez az alkalmazásnak regisztrálnia kell az Intune MAM szolgáltatásban. Ha az alkalmazás nem használja a Microsoft Authentication Libraryt (MSAL) a felhasználók hitelesítésére, és azt szeretné, hogy a Intune SDK kezelje a hitelesítést, az alkalmazásnak meg kell adnia a felhasználó egyszerű felhasználónevét az IntuneMAMEnrollmentManager LoginAndEnrollAccount metódusának:

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

    Előfordulhat, hogy az alkalmazások null értéket adnak át, ha a felhasználó UPN-je ismeretlen a hívás időpontjában. Ebben az esetben a rendszer arra kéri a felhasználókat, hogy mind az e-mail-címüket, mind a jelszavukat meg kell adniuk.

    Ha az alkalmazás már használja az MSAL-t a felhasználók hitelesítésére, konfigurálhat egyszeri bejelentkezést (SSO) az alkalmazás és a Intune SDK között. Először felül kell bírálnia az Intune SDK által használt alapértelmezett Microsoft Entra-beállításokat az alkalmazásával. Ezt az alkalmazás Info.plist fájljában található IntuneMAMSettings szótárban teheti meg az iOS-hez készült Intune App SDK fejlesztői útmutatójában leírtak szerint, vagy megteheti kódban az IntuneMAMSettings osztály Microsoft Entra ID felülbírálási tulajdonságaival. Az Info.plist megközelítés azoknál az alkalmazásoknál ajánlott, amelyek MSAL-beállításai statikusak, míg a felülbírálási tulajdonságokat olyan alkalmazások esetében javasoljuk, amelyek futásidőben határozzák meg ezeket az értékeket. Miután az összes SSO-beállítás konfigurálva lett, az alkalmazásnak meg kell adnia a felhasználó egyszerű felhasználónevét az IntuneMAMEnrollmentManager RegisterAndEnrollAccount metódusának a sikeres hitelesítés után:

    IntuneMAMEnrollmentManager.Instance.RegisterAndEnrollAccount(string identity);
    

    Az alkalmazások az EnrollmentRequestWithStatus metódus intuneMAMEnrollmentDelegate alosztályában történő implementálásával és az IntuneMAMEnrollmentManager Delegate tulajdonságának az adott osztály egy példányára való beállításával állapíthatják meg a regisztrációs kísérlet eredményét.

    Sikeres regisztráció esetén az alkalmazások a következő tulajdonság lekérdezésével megállapíthatják a regisztrált fiók egyszerű felhasználónevét (ha korábban ismeretlen):

     string enrolledAccount = IntuneMAMEnrollmentManager.Instance.EnrolledAccount;
    

Mintaalkalmazások

A Xamarin.iOS-alkalmazások MAM-funkcióit kiemelő mintaalkalmazások elérhetők a GitHubon.

Megjegyzés:

Az iOS/iPadOS esetében nincs remapper. Integrálás egy Xamarinba. Forms alkalmazásnak meg kell egyeznie egy normál Xamarin.iOS-projektével.

Intune alkalmazásvédelmi szabályzatok engedélyezése androidos mobilalkalmazásban

  1. Adja hozzá a Microsoft.Intune. MAM. Xamarin.Android NuGet-csomag a Xamarin.Android-projekthez.
    1. Egy Xamarinnak. Forms alkalmazáshoz adja hozzá a Microsoft.Intune. MAM. Remapper.Tasks NuGet-csomag a Xamarin.Android-projekthez is.
  2. További részletekért kövesse a Intune App SDK Android-mobilalkalmazásba való integrálásához szükséges általános lépéseket, és tekintse meg ezt a dokumentumot.

Xamarin.Android-integráció

A Intune App SDK integrálásának teljes áttekintését az Androidhoz készült Microsoft Intune App SDK fejlesztői útmutatójában találja. Ahogy végigolvasta az útmutatót, és integrálja a Intune App SDK-t a Xamarin-alkalmazással, a következő szakaszok a Java-ban fejlesztett natív Android-alkalmazás és a C# nyelven fejlesztett Xamarin-alkalmazás implementációja közötti különbségeket hivatottak kiemelni. Ezeket a szakaszokat kiegészítőként kell kezelni, és nem helyettesíthetik az útmutató teljes olvasását.

Remapper

Az 1.4428.1-es kiadástól kezdve a Microsoft.Intune.MAM.Remapper csomag hozzáadható egy Xamarin.Android-alkalmazáshoz buildelési eszközként a MAM-osztály, a metódus és a rendszerszolgáltatások cseréjének végrehajtásához. Ha a Remapper szerepel a fájlban, az átnevezett metódusok és MAM-alkalmazások szakasz MAM-egyenértékű helyettesítő részei automatikusan el lesznek hajtva az alkalmazás létrehozásakor.

Ha ki szeretne zárni egy osztályt a MAM-ificationből a Remapper által, a következő tulajdonság adható hozzá a projektfájlhoz .csproj .

  <PropertyGroup>
    <ExcludeClasses>Semicolon separated list of relative class paths to exclude from MAM-ification</ExcludeClasses>
  </PropertyGroup>

Megjegyzés:

A Remapper jelenleg megakadályozza a Xamarin.Android-alkalmazások hibakeresését. Az alkalmazás hibakereséséhez javasolt a manuális integráció.

Átnevezett metódusok

Az Android-osztályban elérhető metódusok sok esetben véglegesként vannak megjelölve a MAM csereosztályban. Ebben az esetben a MAM helyettesítő osztálya egy hasonló nevű metódust biztosít (utótaggal MAM), amelyet felül kell bírálni. Ha például a parancsból MAMActivityszármazik, a felülbírálás OnCreate() és a hívás Activitybase.OnCreate()helyett felül kell bírálnia OnMAMCreate() és meghívnia a parancsotbase.OnMAMCreate().

MAM-alkalmazás

Az alkalmazásnak definiálnia kell egy osztályt Android.App.Application . Ha manuálisan integrálja a MAM-t, akkor a-tól MAMApplicationkell örökölnie. Győződjön meg arról, hogy az alosztály megfelelően van díszítve a [Application] attribútummal, és felülbírálja a konstruktort (IntPtr, JniHandleOwnership) .

    [Application]
    class TaskrApp : MAMApplication
    {
    public TaskrApp(IntPtr handle, JniHandleOwnership transfer)
        : base(handle, transfer) { }

Megjegyzés:

A MAM Xamarin-kötésekkel kapcsolatos probléma az alkalmazás összeomlását okozhatja, amikor hibakeresési módban van üzembe helyezve. Áthidaló megoldásként az Debuggable=false attribútumot hozzá kell adni az Application osztályhoz, és a android:debuggable="true" jelölőt el kell távolítani a jegyzékfájlból, ha manuálisan lett beállítva.

Az alkalmazás részvételét igénylő funkciók engedélyezése

Példa: Annak meghatározása, hogy szükséges-e PIN-kód az alkalmazáshoz

MAMPolicyManager.GetPolicy(currentActivity).IsPinRequired;

Példa: Az elsődleges Intune felhasználó meghatározása

IMAMUserInfo info = MAMComponents.Get<IMAMUserInfo>();
return info?.PrimaryUser;

Példa: Annak megállapítása, hogy engedélyezett-e az eszközre vagy a felhőbeli tárhelyre való mentés

MAMPolicyManager.GetPolicy(currentActivity).GetIsSaveToLocationAllowed(SaveLocation service, String username);

Regisztráció az SDK értesítéseihez

Az alkalmazásnak regisztrálnia kell az értesítésekre az SDK-ból egy MAMNotificationReceiver létrehozásával és a használatával történő regisztrálásával MAMNotificationReceiverRegistry. Ehhez meg kell adnia a fogadót és a kívánt értesítéstípust a fájlban App.OnMAMCreate, ahogy az alábbi példában látható:

public override void OnMAMCreate()
{
    // Register the notification receivers
    IMAMNotificationReceiverRegistry registry = MAMComponents.Get<IMAMNotificationReceiverRegistry>();
    foreach (MAMNotificationType notification in MAMNotificationType.Values())
    {
        registry.RegisterReceiver(new ToastNotificationReceiver(this), notification);
    }
    ...

MAM-regisztrációkezelő

IMAMEnrollmentManager mgr = MAMComponents.Get<IMAMEnrollmentManager>();

Xamarin. Forms integráció

Az alkalmazások esetében Xamarin.Forms a csomag automatikusan elvégzi a Microsoft.Intune.MAM.Remapper MAM-osztály cseréjét úgy, hogy osztályokat injektál MAM a gyakran használt Xamarin.Forms osztályok osztályhierarchiájába.

Megjegyzés:

A Xamarin. Forms integrációt a fent részletezett Xamarin.Android-integráció mellett kell elvégezni. A Remapper másképp viselkedik A Xamarin esetében. Forms alkalmazásokat, így a manuális MAM-cserét továbbra is végre kell hajtani.

Miután hozzáadta a Remappert a projekthez, el kell végeznie a MAM-egyenértékű cserét. Például a FormsAppCompatActivity és FormsApplicationActivity a továbbra is használható az alkalmazásban, feltéve, hogy OnCreate felülbírálja a és OnResume a értékét a MAM-megfelelőkkel OnMAMCreate , illetve OnMAMResume a helyett.

    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        protected override void OnMAMCreate(Bundle savedInstanceState)
        {
            base.OnMAMCreate(savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
            LoadApplication(new App());
        }

Ha a csere nem történik meg, akkor a következő fordítási hibákba ütközhet, amíg el nem végezte a cserét:

  • CS0239-ás fordítóhiba. Ez a hiba gyakran jelenik meg ebben az formában 'MainActivity.OnCreate(Bundle)': cannot override inherited member 'MAMAppCompatActivityBase.OnCreate(Bundle)' because it is sealed. Ez azért várható, mert amikor a Remapper módosítja a Xamarin-osztályok öröklését, bizonyos függvények lesznek létrehozva sealed , és egy új MAM-változatot ad hozzá a felülbíráláshoz.
  • CS0507-ös fordítói hiba: Ez a hiba gyakran jelenik meg ebben az formában 'MyActivity.OnRequestPermissionsResult()' cannot change access modifiers when overriding 'public' inherited member .... Amikor a Remapper megváltoztatja egyes Xamarin-osztályok öröklését, bizonyos tagfüggvények értékre publicváltoznak. Ha felülbírálja ezen függvények bármelyikét, a felülbírálások public hozzáférési módosítóit is módosítania kell.

Megjegyzés:

A Remapper újraírja a Visual Studio által az IntelliSense automatikus kiegészítéséhez használt függőséget. Ezért előfordulhat, hogy újra kell betöltenie és újra kell építenie a projektet, amikor a Remapper hozzá van adva az IntelliSense-hez a módosítások helyes felismeréséhez.

Hibaelhárítás

  • Ha indításkor üres, fehér képernyő jelenik meg az alkalmazásban, előfordulhat, hogy a fő szálon kell végrehajtania a navigációs hívásokat.
  • A Intune SDK Xamarin-kötések nem támogatják a platformfüggetlen keretrendszert (például MvvmCross) használó alkalmazásokat az MvvmCross és a Intune MAM-osztályok közötti ütközések miatt. Míg egyes ügyfeleknek sikeres volt az integráció, miután az alkalmazásaikat egyszerű Xamarinba helyezték át. Forms nem biztosítunk explicit útmutatást vagy beépülő modulokat az MvvmCrosst használó alkalmazásfejlesztők számára.

Céges portál alkalmazás

Az Intune SDK Xamarin-kötések az Céges portál Android-alkalmazás jelenlétére támaszkodnak az eszközön az alkalmazásvédelmi szabályzatok engedélyezéséhez. A Céges portál lekéri az alkalmazásvédelmi szabályzatokat a Intune szolgáltatásból. Amikor az alkalmazás inicializál, betölti a szabályzatot és a kódot, hogy kikényszerítse a szabályzatot a Céges portál. A felhasználónak nem kell bejelentkeznie.

Megjegyzés:

Ha a Céges portál alkalmazás nem az Android-eszközön található, a Intune által felügyelt alkalmazások ugyanúgy viselkednek, mint a normál alkalmazások, amelyek nem támogatják Intune alkalmazásvédelmi szabályzatokat.

Az eszközregisztráció nélküli alkalmazásvédelem esetén a felhasználónak nem kell regisztrálnia az eszközt az Céges portál alkalmazással.

Mintaalkalmazások

A Xamarin.Android és a Xamarin MAM-funkcióit kiemelő mintaalkalmazások. Forms alkalmazások elérhetők a GitHubon.

Támogatás

Ha a szervezete már Intune ügyfél, a Microsoft támogatási képviselőjével együttműködve nyisson meg egy támogatási jegyet, és hozzon létre egy problémát a GitHub-problémák oldalán. Segíteni fogunk, amint tudunk.