Aracılığıyla paylaş


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.Forms ve Intune Uygulama SDK'sı Xamarin Bağlamaları dahil olmak üzere tüm Xamarin SDK'ları için Xamarin desteği 1 Mayıs 2024 itibarıyla sona erdi. Android ve iOS platformlarında Intune desteği için bkz. .NET MAUI için Intune Uygulama SDK'sı -MAUI.iOS için Android ve 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ına Intune uygulama koruma özelliklerini kolayca eklemesine olanak sağlar.

Microsoft Intune Uygulama SDK'sı Xamarin Bağlamaları, Xamarin ile geliştirilen uygulamalarınıza Intune uygulama koruma ilkelerini (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ı

  • Intune MAM
  • Intune MDM'ye kayıtlı cihazlar
  • Üçü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 ilkelerini 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'sı, uygulamaların Microsoft Entra Id ile yapılandırılmasını gerektiren kimlik doğrulaması ve koşullu başlatma senaryoları için 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ıza Intune Mobil Uygulama Yönetimi hizmetine erişim izni verme" 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 düzenli olarak Intune Uygulama SDK'sına güncelleştirmeler yayınlar. 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.MAM.Xamarin.iOS NuGet paketini Xamarin.iOS projenize ekleyin.

  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'ndaki tümleştirme yönergelerinin 3. adımıyla başlayabilirsiniz. Bu araç Microsoft.Intune.MAM.Xamarin.iOS paketine dahil olduğundan ve derleme zamanında otomatik olarak çalıştırılacağından, IntuneMAMConfigurator'ı çalıştırmanın bu bölümündeki son adımı atlayabilirsiniz. Ö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 kimlik doğrulamasını Intune SDK'sını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'sı 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 kod içinde 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;
    

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

  1. Microsoft.Intune.MAM.Xamarin.Android NuGet paketini Xamarin.Android projenize ekleyin.
    1. Xamarin.Forms uygulaması için Microsoft.Intune.MAM.Remapper.Tasks NuGet paketini de Xamarin.Android projenize 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ısını 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

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.Forms uygulamaları için farklı davranır, 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.Forms'a taşıdıktan sonra tümleştirme konusunda başarılı olmuş olsa da, 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ı, Intune hizmetinden uygulama koruma ilkelerini alır. Uygulama başlatıldığında, şirket portalından bu ilkeyi zorlamak için ilke ve kod yükler. Kullanıcının oturum açması gerekmez.

Not

Şirket Portalı uygulaması Android cihazında olmadığında, Intune tarafından 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.

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.