Share via


Microsoft Intune Uygulama SDK'sı Xamarin Bağlamaları

Önemli

Xamarin. Forms .NET Çok Platformlu Uygulama Kullanıcı Arabirimine (MAUI) dönüştü. Mevcut Xamarin projeleri .NET MAUI'ye geçirilmelidir. Xamarin projelerini .NET'e yükseltme hakkında daha fazla bilgi için Xamarin'den .NET'e yükseltme & .NET MAUI belgelerine bakın.

Xamarin dahil tüm Xamarin SDK'ları için Xamarin desteği 1 Mayıs 2024 itibarıyla sona erdi. Uygulama SDK'sı Xamarin Bağlamalarını Forms ve Intune. Android ve iOS platformlarında Intune desteği için bkz. .NET MAUI için Uygulama SDK'sı Intune - MAUI.iOS için Androidve Microsoft Intune Uygulama SDK'sı.

Genel bakış

Intune Uygulama SDK'sı Xamarin Bağlamaları, Xamarin ile oluşturulan iOS ve Android uygulamalarında Intune uygulama koruma ilkesini etkinleştirir. Bağlamalar, geliştiricilerin Xamarin tabanlı uygulamalarında kolayca Intune uygulama koruma özellikleri oluşturmasına olanak sağlar.

Microsoft Intune Uygulama SDK'sı Xamarin Bağlamaları, Xamarin ile geliştirilen uygulamalarınıza Intune uygulama koruma ilkeleri (APP veya MAM ilkeleri olarak da bilinir) eklemenizi sağlar. MAM özellikli bir uygulama, Intune Uygulama SDK'sı ile tümleştirilmiş bir uygulamadır. BT yöneticileri, Intune uygulamayı etkin bir şekilde yönettiğinde mobil uygulamanıza uygulama koruma ilkeleri dağıtabilir.

Neler desteklenir?

Geliştirici makineleri

  • Windows (Visual Studio sürüm 15.7+)
  • macOS

Mobil uygulama platformları

  • Android
  • iOS

Intune Mobil Uygulama Yönetimi senaryoları

  • MAM'Intune
  • MDM'ye kayıtlı cihazları Intune
  • Üçüncü taraf EMM'ye kayıtlı cihazlar

Intune Uygulama SDK'sı Xamarin Bağlamaları ile oluşturulan Xamarin uygulamaları artık hem Intune mobil cihaz yönetimi (MDM) kayıtlı cihazlarda hem de kaydı kaldırılmış cihazlarda Intune uygulama koruma ilkeleri alabilir.

Önkoşullar

Lisans koşullarını gözden geçirin. Kayıtlarınızın lisans koşullarının bir kopyasını yazdırın ve tutun. Intune Uygulama SDK'sı Xamarin Bağlamalarını indirip kullanarak bu lisans koşullarını kabul etmiş olursunuz. Bunları kabul etmediyseniz yazılımı kullanmayın.

Intune SDK, kimlik doğrulaması ve koşullu başlatma senaryoları için uygulamaların Microsoft Entra ID ile yapılandırılmasını gerektiren Microsoft Kimlik Doğrulama Kitaplığı'na (MSAL) dayanır.

Uygulamanız zaten MSAL kullanacak şekilde yapılandırılmışsa ve Microsoft Entra ID ile kimlik doğrulaması yapmak için kullanılan kendi özel istemci kimliğine sahipse, Xamarin uygulamanıza Intune Mobil Uygulama Yönetimi (MAM) hizmeti için izin verme adımlarının izlendiğinden emin olun. Intune SDK'sını kullanmaya başlama kılavuzunun "Uygulamanızın Intune Mobil Uygulama Yönetimi hizmetine erişmesini sağlayın" bölümündeki yönergeleri kullanın.

GüvenlikLe İlgili Dikkat Edilmesi Gerekenler

Olası kimlik sahtekarlığını, bilgilerin açığa çıkmasını ve ayrıcalık saldırılarının yükseltilmesini önlemek için:

  • Xamarin uygulama geliştirme işleminin güvenli bir iş istasyonunda gerçekleştirildiğinden emin olun.
  • Bağlamaların geçerli bir Microsoft kaynağından olduğundan emin olun:
  • Projeniz için NuGet yapılandırmanızı imzalı, değiştirilmemiş NuGet paketlerine güvenecek şekilde yapılandırın. Daha fazla bilgi için bkz. imzalı paketleri yükleme .
  • Xamarin uygulamasını içeren çıkış dizininin güvenliğini sağlayın. Çıkış için kullanıcı düzeyinde bir dizin kullanmayı göz önünde bulundurun.

iOS mobil uygulamanızda Intune uygulama koruma ilkelerini etkinleştirme

Önemli

Intune, Intune Uygulama SDK'sına yönelik güncelleştirmeleri düzenli olarak yayımlar. Güncelleştirmeler için Intune Uygulama SDK'sı Xamarin Bağlamaları'nı düzenli olarak denetleyin ve uygulamalarınızın en son Uygulama Koruma İlkesi ayarlarını desteklediğinden emin olmak için yazılım geliştirme sürüm döngünüze dahil edin.

  1. Microsoft.Intune ekleyin. MAM. Xamarin.iOS projenize Xamarin.iOS NuGet paketi.

  2. Intune Uygulama SDK'sını bir iOS mobil uygulamasıyla tümleştirmek için gereken genel adımları izleyin. iOS için Intune Uygulama SDK'sı Geliştirici Kılavuzu'nun tümleştirme yönergelerinin 3. adımıyla başlayabilirsiniz. Bu araç Microsoft'ta yer aldığı için IntuneMAMConfigurator'ı çalıştırmanın bu bölümündeki son adımı atlayabilirsiniz. Intune. MAM. Xamarin.iOS paketi ve derleme zamanında otomatik olarak çalıştırılır. Önemli: Visual Studio'da bir uygulama için anahtarlık paylaşımını etkinleştirmek Xcode'dan biraz farklıdır. Uygulamanın Yetkilendirmeler plist'ini açın ve "Anahtar Zincirini Etkinleştir" seçeneğinin etkinleştirildiğinden ve ilgili anahtar zinciri paylaşım gruplarının bu bölüme eklendiğinden emin olun. Ardından, tüm uygun Yapılandırma/Platform birleşimleri için projenin "iOS Paket İmzalama" seçeneklerinin "Özel Yetkilendirmeler" alanında Yetkilendirmeler plist'inin belirtildiğinden emin olun.

  3. Bağlamalar eklendikten ve uygulama düzgün yapılandırıldıktan sonra uygulamanız Intune SDK'sının API'lerini kullanmaya başlayabilir. Bunu yapmak için aşağıdaki ad alanını eklemeniz gerekir:

    using Microsoft.Intune.MAM;
    
  4. Uygulama koruma ilkelerini almaya başlamak için uygulamanızın Intune MAM hizmetine kaydolması gerekir. Uygulamanız kullanıcıların kimliğini doğrulamak için Microsoft Kimlik Doğrulama Kitaplığı'nı (MSAL) kullanmıyorsa ve Intune SDK'sının kimlik doğrulamasını işlemesini istiyorsanız, uygulamanız kullanıcının UPN'sini IntuneMAMEnrollmentManager'ın LoginAndEnrollAccount yöntemine sağlamalıdır:

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

    Arama sırasında kullanıcının UPN'i bilinmiyorsa uygulamalar null olarak geçebilir. Bu durumda, kullanıcılardan hem e-posta adreslerini hem de parolalarını girmeleri istenir.

    Uygulamanız kullanıcıların kimliğini doğrulamak için zaten MSAL kullanıyorsa, uygulamanızla Intune SDK arasında çoklu oturum açma (SSO) deneyimi yapılandırabilirsiniz. İlk olarak, Intune SDK'sı tarafından kullanılan varsayılan Microsoft Entra ayarlarını uygulamanızın ayarlarıyla geçersiz kılmanız gerekir. Bunu, iOS için Intune Uygulama SDK'sı Geliştirici Kılavuzu'nda belirtildiği gibi uygulamanın Info.plist dosyasındaki IntuneMAMSettings sözlüğü aracılığıyla veya IntuneMAMSettings sınıfının Microsoft Entra ID geçersiz kılma özellikleri aracılığıyla kodda yapabilirsiniz. MSAL ayarları statik olan uygulamalar için Info.plist yaklaşımı önerilirken, çalışma zamanında bu değerleri belirleyen uygulamalar için geçersiz kılma özellikleri önerilir. Tüm SSO ayarları yapılandırıldıktan sonra uygulamanız, başarıyla kimlik doğrulamasından geçtikten sonra kullanıcının UPN'sini IntuneMAMEnrollmentManager'ın RegisterAndEnrollAccount yöntemine sağlamalıdır:

    IntuneMAMEnrollmentManager.Instance.RegisterAndEnrollAccount(string identity);
    

    Uygulamalar, IntuneMAMEnrollmentDelegate alt sınıfında EnrollmentRequestWithStatus yöntemini uygulayarak ve IntuneMAMEnrollmentManager'ın Delegate özelliğini bu sınıfın bir örneğine ayarlayarak kayıt girişiminin sonucunu belirleyebilir.

    Başarılı bir kayıt sonrasında, uygulamalar aşağıdaki özelliği sorgulayarak kayıtlı hesabın UPN'sini (önceden bilinmiyorsa) belirleyebilir:

     string enrolledAccount = IntuneMAMEnrollmentManager.Instance.EnrolledAccount;
    

Örnek Uygulamalar

Xamarin.iOS uygulamalarında MAM işlevselliğini vurgulayan örnek uygulamalar GitHub'da kullanılabilir.

Not

iOS/iPadOS için remapper yoktur. Xamarin ile tümleştirme. Forms uygulaması normal bir Xamarin.iOS projesiyle aynı olmalıdır.

Android mobil uygulamanızda Intune uygulama koruma ilkelerini etkinleştirme

  1. Microsoft.Intune ekleyin. MAM. Xamarin.Android projenize Xamarin.Android NuGet paketi.
    1. Xamarin için. uygulamayı Forms Microsoft.Intune ekleyin. MAM. Xamarin.Android projenize de Remapper.Tasks NuGet paketi ekleyin.
  2. Ek ayrıntılar için bu belgeye başvururken Intune Uygulama SDK'sını bir Android mobil uygulamasıyla tümleştirmek için gereken genel adımları izleyin.

Xamarin.Android tümleştirmesi

Intune Uygulama SDK'sını tümleştirmeye yönelik eksiksiz bir genel bakış, Android için Microsoft Intune Uygulama SDK'sı geliştirici kılavuzunda bulunabilir. Kılavuzu okurken ve Intune Uygulama SDK'sını Xamarin uygulamanızla tümleştirirken aşağıdaki bölümler, Java'da geliştirilen yerel bir Android uygulaması ile C# dilinde geliştirilen bir Xamarin uygulaması için uygulama arasındaki farkları vurgulamak için tasarlanmıştır. Bu bölümler tamamlayıcı olarak ele alınmalıdır ve kılavuzu tamamen okumanın yerini alamaz.

Yeniden Çek

1.4428.1 sürümünden Microsoft.Intune.MAM.Remapper başlayarak, paket BIR Xamarin.Android uygulamasına MAM sınıfı, yöntemi ve sistem hizmetleri değiştirme işlemlerini gerçekleştirmek için derleme araçları olarak eklenebilir. Remapper dahil edilirse, Yeniden Adlandırılmış Yöntemler ve MAM Uygulaması bölümlerinin MAM eşdeğeri değiştirme bölümleri, uygulama oluşturulduğunda otomatik olarak gerçekleştirilir.

Bir sınıfı Remapper tarafından MAM-ification'ın dışında tutmak için aşağıdaki özellik proje .csproj dosyanıza eklenebilir.

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

Not

Remapper şu anda Xamarin.Android uygulamalarında hata ayıklamayı engelliyor. Uygulamanızda hata ayıklamak için el ile tümleştirme önerilir.

Yeniden Adlandırılmış Yöntemler

Çoğu durumda, Android sınıfında kullanılabilen bir yöntem MAM değiştirme sınıfında son olarak işaretlenmiştir. Bu durumda, MAM değiştirme sınıfı bunun yerine geçersiz kılmanız gereken benzer adlandırılmış bir yöntem (ile MAMsoneki) sağlar. Örneğin, geçersiz kılmak OnCreate() ve çağırmak base.OnCreate()yerine ' den MAMActivitytüretilirken geçersiz Activity kılmalı OnMAMCreate() ve çağrısı base.OnMAMCreate()yapmalıdır.

MAM Uygulaması

Uygulamanızın bir sınıf tanımlaması Android.App.Application gerekir. MAM el ile tümleştirildiğinde, öğesinin devralması MAMApplicationgerekir. Alt sınıfınızın özniteliğiyle [Application] düzgün bir şekilde dekore edilmiş olduğundan ve oluşturucuyu geçersiz kılacağından (IntPtr, JniHandleOwnership) emin olun.

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

Not

MAM Xamarin bağlamalarıyla ilgili bir sorun, Hata Ayıklama modunda dağıtıldığında uygulamanın kilitlenmesine neden olabilir. Geçici bir çözüm olarak, Debuggable=false özniteliği sınıfa Application eklenmelidir ve android:debuggable="true" bayrağı el ile ayarlandıysa bildirimden kaldırılmalıdır.

Uygulama katılımı gerektiren özellikleri etkinleştirme

Örnek: Uygulama için PIN gerekip gerekmediğini belirleme

MAMPolicyManager.GetPolicy(currentActivity).IsPinRequired;

Örnek: Birincil Intune kullanıcıyı belirleme

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

Örnek: Cihaza veya bulut depolamaya kaydetmeye izin verilmediğini belirleme

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

SDK'dan bildirimlere kaydolma

Uygulamanızın bir MAMNotificationReceiver oluşturup ile MAMNotificationReceiverRegistrykaydederek SDK'dan gelen bildirimlere kaydolması gerekir. Bu, aşağıdaki örnekte gösterildiği gibi alıcı ve içinde App.OnMAMCreateistenen bildirim türü sağlanarak gerçekleştirilir:

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 Kayıt Yöneticisi

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

Xamarin. Forms tümleştirmesi

Uygulamalar için Xamarin.Forms paket, Microsoft.Intune.MAM.Remapper yaygın olarak kullanılan Xamarin.Forms sınıfların sınıf hiyerarşisine sınıf ekleyerek MAM MAM sınıf değişimini otomatik olarak gerçekleştirir.

Not

The Xamarin. Forms tümleştirmesi, yukarıda ayrıntılarıyla belirtilen Xamarin.Android tümleştirmesine ek olarak yapılmalıdır. Remapper, Xamarin için farklı davranır. uygulamaları Forms, bu nedenle el ile MAM değiştirme işlemleri yine de yapılmalıdır.

Remapper projenize eklendikten sonra MAM eşdeğeri değiştirmeleri gerçekleştirmeniz gerekir. Örneğin, FormsAppCompatActivity ve FormsApplicationActivity uygulaması tarafından sağlanan geçersiz kılmalar OnCreate uygulamanızda kullanılmaya devam edebilir ve OnResume bunların yerine SıRAsıyla MAM eşdeğerleri OnMAMCreate kullanılır OnMAMResume .

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

Değiştirmeler yapılmazsa, değişiklikleri yapana kadar aşağıdaki derleme hatalarıyla karşılaşabilirsiniz:

  • Derleyici Hatası CS0239. Bu hata genellikle bu biçimde 'MainActivity.OnCreate(Bundle)': cannot override inherited member 'MAMAppCompatActivityBase.OnCreate(Bundle)' because it is sealedgörülür. Bu beklenen bir durumdur çünkü Remapper Xamarin sınıflarının devralma işlemini değiştirdiğinde bazı işlevler yapılır sealed ve geçersiz kılmaya yeni bir MAM değişkeni eklenir.
  • Derleyici Hatası CS0507: Bu hata bu formda 'MyActivity.OnRequestPermissionsResult()' cannot change access modifiers when overriding 'public' inherited member ...yaygın olarak görülür. Remapper bazı Xamarin sınıflarının devralma işlemini değiştirdiğinde, bazı üye işlevleri olarak publicdeğiştirilir. Bu işlevlerden herhangi birini geçersiz kılarsanız, bu geçersiz kılmaların erişim değiştiricilerini public de değiştirmeniz gerekir.

Not

Remapper, Visual Studio'da IntelliSense otomatik tamamlama için kullanılan bir bağımlılığı yeniden yazar. Bu nedenle, değişiklikleri doğru şekilde tanımak için IntelliSense için Remapper eklendiğinde projeyi yeniden yüklemeniz ve yeniden oluşturmanız gerekebilir.

Sorun giderme

  • Başlatmada uygulamanızda boş, beyaz bir ekranla karşılaşırsanız, gezinti çağrılarını ana iş parçacığında yürütülmeye zorlamanız gerekebilir.
  • Intune SDK Xamarin Bağlamaları, MvvmCross ile Intune MAM sınıfları arasındaki çakışmalar nedeniyle MvvmCross gibi platformlar arası bir çerçeve kullanan uygulamaları desteklemez. Bazı müşteriler uygulamalarını düz Xamarin'e taşıdıktan sonra tümleştirme konusunda başarılı olmuş olabilir. Forms, MvvmCross kullanan uygulama geliştiricileri için açık rehberlik veya eklentiler sağlamayız.

Şirket Portalı uygulaması

Intune SDK Xamarin Bağlamaları, uygulama koruma ilkelerini etkinleştirmek için cihazda Şirket Portalı Android uygulamasının varlığına bağlıdır. Şirket Portalı, uygulama koruma ilkelerini Intune hizmetinden alır. Uygulama başlatıldığında, Şirket Portalı ilkeyi zorlamak için ilkeyi ve kodu yükler. Kullanıcının oturum açması gerekmez.

Not

Şirket Portalı uygulaması Android cihazda olmadığında, Intune yönetilen bir uygulama, Intune uygulama koruma ilkelerini desteklemeyen normal bir uygulamayla aynı şekilde davranır.

Cihaz kaydı olmadan uygulama koruması için kullanıcının Şirket Portalı uygulamasını kullanarak cihazı kaydetmesi gerekmez.

Örnek Uygulamalar

Xamarin.Android ve Xamarin'de MAM işlevselliğini vurgulayan örnek uygulamalar. Forms uygulamalar GitHub'da kullanılabilir.

Destek

Kuruluşunuz mevcut bir Intune müşterisiyse lütfen Microsoft destek temsilcinizle birlikte çalışarak bir destek bileti açın ve GitHub sorunları sayfasında bir sorun oluşturun. En kısa sürede yardımcı olacağız.