Udostępnij za pośrednictwem


Powiązania Xamarin zestawu SDK aplikacji usługi Microsoft Intune

Ważna

Platforma Xamarin.Forms przekształciła się w wieloplatformowy interfejs użytkownika aplikacji platformy .NET (MAUI). Istniejące projekty platformy Xamarin powinny zostać zmigrowane do programu .NET MAUI. Aby uzyskać więcej informacji na temat uaktualniania projektów platformy Xamarin do platformy .NET, zobacz dokumentację uaktualniania z platformy Xamarin do platformy .NET & .NET MAUI .

Obsługa platformy Xamarin została zakończona od 1 maja 2024 r. dla wszystkich zestawów SDK platformy Xamarin, w tym powiązań Xamarin.Forms i ZestawU SDK aplikacji usługi Intune. Aby uzyskać pomoc techniczną usługi Intune na platformach Android i iOS, zobacz Zestaw SDK aplikacji usługi Intune dla programu .NET MAUI — ZestawSDK aplikacji dla systemów Android i Microsoft Intune dla maui.iOS.

Omówienie

Powiązania Xamarin zestawu SDK aplikacji usługi Intune umożliwiają korzystanie z zasad ochrony aplikacji usługi Intune w aplikacjach dla systemów iOS i Android utworzonych za pomocą platformy Xamarin. Powiązania umożliwiają deweloperom łatwe tworzenie funkcji ochrony aplikacji usługi Intune w aplikacji opartej na platformie Xamarin.

Powiązania zestawu Xamarin zestawu SDK aplikacji usługi Microsoft Intune umożliwiają włączenie zasad ochrony aplikacji usługi Intune (znanych również jako zasady aplikacji lub zarządzania aplikacjami mobilnymi) do aplikacji opracowanych za pomocą platformy Xamarin. Aplikacja z obsługą zarządzania aplikacjami mobilnymi jest zintegrowana z zestawem SDK aplikacji usługi Intune. Administratorzy IT mogą wdrażać zasady ochrony aplikacji w aplikacji mobilnej, gdy usługa Intune aktywnie zarządza aplikacją.

Co jest obsługiwane?

Maszyny deweloperskie

  • Windows (Visual Studio w wersji 15.7 lub nowszej)
  • macOS

Platformy aplikacji mobilnych

  • Android
  • iOS

Scenariusze zarządzania aplikacjami mobilnymi w usłudze Intune

  • Zarządzanie aplikacjami mobilnymi w usłudze Intune
  • Urządzenia zarejestrowane w usłudze Intune mdm
  • Urządzenia zarejestrowane w programie EMM innej firmy

Aplikacje platformy Xamarin utworzone przy użyciu powiązań Xamarin zestawu SDK aplikacji usługi Intune mogą teraz odbierać zasady ochrony aplikacji usługi Intune zarówno na urządzeniach zarejestrowanych do zarządzania urządzeniami przenośnymi (MDM) w usłudze Intune, jak i na niezarejestrowanych urządzeniach.

Wymagania wstępne

Przejrzyj postanowienia licencyjne. Drukuj i zachowaj kopię postanowień licencyjnych dotyczących rekordów. Pobierając i korzystając z powiązań Xamarin zestawu SDK aplikacji usługi Intune, wyrażasz zgodę na takie postanowienia licencyjne. Jeśli ich nie akceptujesz, nie używaj oprogramowania.

Zestaw SDK usługi Intune korzysta z biblioteki microsoft authentication library (MSAL) na potrzeby scenariuszy uwierzytelniania i uruchamiania warunkowego, które wymagają skonfigurowania aplikacji przy użyciu identyfikatora Entra firmy Microsoft.

Jeśli aplikacja jest już skonfigurowana do korzystania z biblioteki MSAL i ma własny niestandardowy identyfikator klienta używany do uwierzytelniania przy użyciu identyfikatora Entra firmy Microsoft, upewnij się, że wykonano kroki udzielania aplikacji platformy Xamarin uprawnień do usługi Zarządzania aplikacjami mobilnymi (MAM) usługi Intune. Skorzystaj z instrukcji zawartych w sekcji "Udzielanie aplikacji dostępu do usługi Zarządzania aplikacjami mobilnymi w usłudze Intune" w przewodniku rozpoczynania pracy z zestawem SDK usługi Intune.

Zagadnienia dotyczące zabezpieczeń

Aby zapobiec potencjalnym fałszowaniu, ujawnieniu informacji i atakom na podniesienie uprawnień:

  • Upewnij się, że tworzenie aplikacji platformy Xamarin jest wykonywane na bezpiecznej stacji roboczej.
  • Upewnij się, że powiązania pochodzą z prawidłowego źródła firmy Microsoft:
  • Skonfiguruj konfigurację NuGet dla projektu tak, aby ufała podpisanym, niezmodyfikowanym pakietom NuGet. Aby uzyskać więcej informacji, zobacz instalowanie podpisanych pakietów .
  • Zabezpieczanie katalogu wyjściowego zawierającego aplikację platformy Xamarin. Rozważ użycie katalogu na poziomie użytkownika dla danych wyjściowych.

Włączanie zasad ochrony aplikacji usługi Intune w aplikacji mobilnej systemu iOS

Ważna

Usługa Intune regularnie publikuje aktualizacje zestawu SDK aplikacji usługi Intune. Regularnie sprawdzaj powiązania Xamarin zestawu SDK aplikacji usługi Intune pod kątem aktualizacji i dołączaj je do cyklu tworzenia oprogramowania, aby upewnić się, że aplikacje obsługują najnowsze ustawienia zasad ochrony aplikacji.

  1. Dodaj pakiet NuGet Microsoft.Intune.MAM.Xamarin.iOS do projektu Xamarin.iOS.

  2. Wykonaj ogólne kroki wymagane do zintegrowania zestawu SDK aplikacji usługi Intune z aplikacją mobilną systemu iOS. Krok 3 instrukcji integracji można rozpocząć od przewodnika dla deweloperów zestawu SDK aplikacji usługi Intune dla systemu iOS. Możesz pominąć ostatni krok w tej sekcji uruchamiania modułu IntuneMAMConfigurator, ponieważ to narzędzie jest zawarte w pakiecie Microsoft.Intune.MAM.Xamarin.iOS i będzie uruchamiane automatycznie w czasie kompilacji. Ważne: Włączanie udostępniania łańcucha kluczy dla aplikacji w programie Visual Studio różni się nieco od środowiska Xcode. Otwórz plist Uprawnienia aplikacji i upewnij się, że opcja "Włącz pęku kluczy" jest włączona, a odpowiednie grupy udostępniania łańcucha kluczy zostaną dodane w tej sekcji. Następnie upewnij się, że pole Uprawnienia jest określone w polu "Uprawnienia niestandardowe" opcji "Podpisywanie pakietów systemu iOS" projektu dla wszystkich odpowiednich kombinacji konfiguracji/platformy.

  3. Po dodaniu powiązań i prawidłowym skonfigurowaniu aplikacji aplikacja może zacząć korzystać z interfejsów API zestawu SDK usługi Intune. W tym celu należy uwzględnić następującą przestrzeń nazw:

    using Microsoft.Intune.MAM;
    
  4. Aby rozpocząć odbieranie zasad ochrony aplikacji, aplikacja musi zostać zarejestrowana w usłudze Zarządzania aplikacjami mobilnymi usługi Intune. Jeśli aplikacja nie używa biblioteki uwierzytelniania firmy Microsoft (MSAL) do uwierzytelniania użytkowników i chcesz, aby zestaw SDK usługi Intune obsługiwał uwierzytelnianie, aplikacja powinna dostarczyć nazwę UPN użytkownika do metody LoginAndEnrollAccount intuneMAMEnrollmentManager:

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

    Aplikacje mogą mieć wartość null, jeśli nazwa UPN użytkownika jest nieznana w momencie wywołania. W takim przypadku użytkownicy będą monitować o wprowadzenie zarówno adresu e-mail, jak i hasła.

    Jeśli aplikacja już używa biblioteki MSAL do uwierzytelniania użytkowników, możesz skonfigurować środowisko logowania jednokrotnego między aplikacją a zestawem SDK usługi Intune. Najpierw należy zastąpić domyślne ustawienia usługi Microsoft Entra używane przez zestaw SDK usługi Intune przy użyciu ustawień aplikacji. Można to zrobić za pośrednictwem słownika IntuneMAMSettings w pliku Info.plist aplikacji, jak wspomniano w przewodniku dla deweloperów zestawu SDK aplikacji usługi Intune dla systemu iOS lub można to zrobić w kodzie za pośrednictwem właściwości zastępowania identyfikatora Entra firmy Microsoft klasy IntuneMAMSettings. Podejście Info.plist jest zalecane w przypadku aplikacji, których ustawienia BIBLIOTEKI MSAL są statyczne, podczas gdy właściwości zastąpienia są zalecane dla aplikacji, które określają te wartości w czasie wykonywania. Po skonfigurowaniu wszystkich ustawień logowania jednokrotnego aplikacja powinna dostarczyć nazwę UPN użytkownika do metody RegisterAndEnrollAccount intuneMAMEnrollmentManager po pomyślnym uwierzytelnieniu:

    IntuneMAMEnrollmentManager.Instance.RegisterAndEnrollAccount(string identity);
    

    Aplikacje mogą określić wynik próby rejestracji, implementując metodę EnrollmentRequestWithStatus w podklasie intuneMAMEnrollmentDelegate i ustawiając właściwość Delegat intuneMAMEnrollmentManager na wystąpienie tej klasy.

    Po pomyślnej rejestracji aplikacje mogą określić nazwę UPN zarejestrowanego konta (jeśli wcześniej nieznane), wykonując zapytanie o następującą właściwość:

     string enrolledAccount = IntuneMAMEnrollmentManager.Instance.EnrolledAccount;
    

Włączanie zasad ochrony aplikacji usługi Intune w aplikacji mobilnej systemu Android

  1. Dodaj pakiet NuGet Microsoft.Intune.MAM.Xamarin.Android do projektu Xamarin.Android.
    1. W przypadku aplikacji platformy Xamarin.Forms dodaj pakiet NuGet Microsoft.Intune.MAM.Remapper.Tasks również do projektu Xamarin.Android.
  2. Wykonaj ogólne kroki wymagane do zintegrowania zestawu SDK aplikacji usługi Intune z aplikacją mobilną systemu Android, korzystając z tego dokumentu, aby uzyskać dodatkowe informacje.

Integracja platformy Xamarin.Android

Pełne omówienie integracji zestawu SDK aplikacji usługi Intune można znaleźć w przewodniku dla deweloperów zestawu SDK aplikacji usługi Microsoft Intune dla systemu Android. Podczas zapoznania się z przewodnikiem i zintegrowania zestawu SDK aplikacji usługi Intune z aplikacją Xamarin poniższe sekcje mają na celu wyróżnienie różnic między implementacją natywnej aplikacji systemu Android opracowanej w języku Java a aplikacją Xamarin opracowaną w języku C#. Te sekcje powinny być traktowane jako uzupełniające i nie mogą służyć jako podstawa do czytania przewodnika w całości.

Remapper

Począwszy od wersji 1.4428.1, Microsoft.Intune.MAM.Remapper pakiet można dodać do aplikacji platformy Xamarin.Android jako narzędzie kompilacji w celu wykonania zamiany klas, metod i usług zarządzania aplikacjami mobilnymi. Jeśli pakiet Remapper zostanie uwzględniony, równoważne części zastępcze funkcji MAM w sekcjach Zmieniono nazwy metod i aplikacji MAM zostaną automatycznie wykonane podczas kompilowania aplikacji.

Aby wykluczyć klasę z funkcji MAM-ification przez program Remapper, w pliku projektów .csproj można dodać następującą właściwość.

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

Uwaga

Program Remapper obecnie uniemożliwia debugowanie w aplikacjach platformy Xamarin.Android. Zaleca się ręczną integrację w celu debugowania aplikacji.

Zmieniono nazwy metod

W wielu przypadkach metoda dostępna w klasie systemu Android została oznaczona jako ostateczna w klasie zastępczej MAM. W takim przypadku klasa zamiany funkcji MAM udostępnia metodę o podobnej nazwie (sufiks z elementem MAM), którą należy zastąpić. Na przykład w przypadku korzystania z MAMActivityelementu , zamiast zastępowania i wywoływania OnCreate()base.OnCreate(), Activity należy zastąpić OnMAMCreate() i wywołać metodę base.OnMAMCreate().

Aplikacja MAM

Aplikacja musi zdefiniować klasę Android.App.Application . W przypadku ręcznej integracji zarządzania aplikacjami mobilnymi musi ona dziedziczyć z MAMApplicationprogramu . Upewnij się, że podklasa jest poprawnie ozdobiona atrybutem [Application] i zastępuje konstruktor (IntPtr, JniHandleOwnership) .

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

Uwaga

Problem z powiązaniami platformy Xamarin funkcji MAM może spowodować awarię aplikacji po wdrożeniu w trybie debugowania. Aby obejść ten problem, Debuggable=false atrybut musi zostać dodany do Application klasy, a android:debuggable="true" flaga musi zostać usunięta z manifestu, jeśli została ustawiona ręcznie.

Włączanie funkcji wymagających udziału aplikacji

Przykład: określ, czy dla aplikacji jest wymagany numer PIN

MAMPolicyManager.GetPolicy(currentActivity).IsPinRequired;

Przykład: określanie podstawowego użytkownika usługi Intune

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

Przykład: określ, czy zapisywanie w magazynie urządzenia lub w chmurze jest dozwolone

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

Rejestrowanie w celu otrzymywania powiadomień z zestawu SDK

Aplikacja musi zarejestrować się w celu otrzymywania powiadomień z zestawu SDK, tworząc MAMNotificationReceiver obiekt i rejestrując go w programie MAMNotificationReceiverRegistry. Można to zrobić, podając odbiornik i typ powiadomienia żądanego w programie , jak pokazano w App.OnMAMCreateponiższym przykładzie:

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);
    }
    ...

Menedżer rejestracji zarządzania aplikacjami mobilnymi

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

Integracja platformy Xamarin.Forms

W przypadku Xamarin.Forms aplikacji Microsoft.Intune.MAM.Remapper pakiet automatycznie zastępuje klasy MAM, wprowadzając MAM klasy do hierarchii klas powszechnie używanych Xamarin.Forms klas.

Uwaga

Integrację platformy Xamarin.Forms należy przeprowadzić oprócz integracji platformy Xamarin.Android opisanej powyżej. Program Remapper zachowuje się inaczej w przypadku aplikacji platformy Xamarin.Forms, więc ręczne zamiany funkcji MAM muszą być nadal wykonywane.

Po dodaniu narzędzia Remapper do projektu należy wykonać równoważne zamiany funkcji MAM. Na przykład FormsAppCompatActivity i FormsApplicationActivity mogą być nadal używane w aplikacji pod warunkiem zastąpienia OnCreate i OnResume są zastępowane przez odpowiedniki OnMAMCreate mam i OnMAMResume odpowiednio.

    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());
        }

Jeśli zamiany nie zostaną wykonane, mogą wystąpić następujące błędy kompilacji, dopóki nie zostaną zastąpione:

  • Błąd kompilatora CS0239. Ten błąd jest często wyświetlany w tym formularzu 'MainActivity.OnCreate(Bundle)': cannot override inherited member 'MAMAppCompatActivityBase.OnCreate(Bundle)' because it is sealed. Jest to oczekiwane, ponieważ gdy program Remapper modyfikuje dziedziczenie klas Xamarin, zostaną wykonane sealed pewne funkcje i zostanie dodany nowy wariant mam w celu zastąpienia.
  • Błąd kompilatora CS0507: Ten błąd jest często wyświetlany w tym formularzu 'MyActivity.OnRequestPermissionsResult()' cannot change access modifiers when overriding 'public' inherited member .... Gdy program Remapper zmieni dziedziczenie niektórych klas platformy Xamarin, niektóre funkcje składowe zostaną zmienione na public. Jeśli zastąpisz dowolną z tych funkcji, musisz również zmienić modyfikatory dostępu dla tych przesłonięcia public .

Uwaga

Narzędzie Remapper ponownie zapisuje zależność używaną przez program Visual Studio do automatycznego uzupełniania funkcji IntelliSense. W związku z tym może być konieczne ponowne załadowanie i ponowne skompilowanie projektu po dodaniu narzędzia Remapper dla funkcji IntelliSense w celu poprawnego rozpoznania zmian.

Rozwiązywanie problemów

  • Jeśli podczas uruchamiania aplikacji napotkasz pusty, biały ekran, może być konieczne wymuszone wykonanie wywołań nawigacji w głównym wątku.
  • Powiązania Xamarin zestawu SDK usługi Intune nie obsługują aplikacji korzystających z platformy międzyplatformowej, takiej jak MvvmCross z powodu konfliktów między klasami MvvmCross i Intune MAM. Niektórzy klienci mogli odnotować powodzenie integracji po przeniesieniu aplikacji do zwykłego środowiska Xamarin.Forms, ale nie udostępniamy jawnych wskazówek ani wtyczek dla deweloperów aplikacji korzystających z narzędzia MvvmCross.

Aplikacja Portal firmy

Powiązania Xamarin zestawu SDK usługi Intune zależą od obecności aplikacji Portal firmy dla systemu Android na urządzeniu w celu włączenia zasad ochrony aplikacji. Portal firmy pobiera zasady ochrony aplikacji z usługi Intune. Podczas inicjowania aplikacji ładuje zasady i kod w celu wymuszenia tych zasad z portalu firmy. Użytkownik nie musi być zalogowany.

Uwaga

Jeśli aplikacja Portal firmy nie znajduje się na urządzeniu z systemem Android , aplikacja zarządzana przez usługę Intune zachowuje się tak samo jak zwykła aplikacja, która nie obsługuje zasad ochrony aplikacji usługi Intune.

W przypadku ochrony aplikacji bez rejestracji urządzenia użytkownik nie musi rejestrować urządzenia przy użyciu aplikacji Portal firmy.

Pomoc techniczna

Jeśli Twoja organizacja jest istniejącym klientem usługi Intune, skontaktuj się z przedstawicielem pomocy technicznej firmy Microsoft, aby otworzyć bilet pomocy technicznej i utworzyć problem na stronie problemów z usługą GitHub. Pomożemy tak szybko, jak to możliwe.