Share via


Android için Intune Uygulama SDK'sı - Uygulama katılımı özellikleri

Android için Microsoft Intune Uygulama SDK'sı, Intune uygulama koruma ilkelerini (APP veya MAM ilkeleri olarak da bilinir) yerel Java/Kotlin Android uygulamanıza dahil etmenizi sağlar. Intune tarafından yönetilen bir uygulama, Intune Uygulama SDK'sı ile tümleştirilmiş bir uygulamadır. Intune yöneticileri, Intune tarafından yönetilen uygulama etkin bir şekilde yönetildiğinde uygulama koruma ilkelerini intune tarafından yönetilen uygulamanıza kolayca dağıtabilir.

Not

Bu kılavuz birkaç ayrı aşamaya ayrılmıştır. Tümleştirmeyi Planlama'ya bakarak başlayın.

7. Aşama: Uygulama katılım özellikleri

Aşama Goals

  • Intune Uygulama SDK'sı tarafından sunulan çeşitli uygulama katılım özellikleri hakkında bilgi edinin.
  • Uygulamanız ve kullanıcılarınız ile ilgili uygulama katılım özelliklerini tümleştirin.
  • Bu özelliklerin tümleştirmesini test edin.

"Uygulama Katılım Özellikleri" nedir?

Bu SDK tümleştirme işlemi, geliştiricilerin yazması gereken uygulamaya özgü kod miktarını en aza indirmeyi dener. SDK tümleştirmesinin önceki aşamalarını başarıyla tamamlayarak uygulamanız artık dosya şifreleme, kopyalama/yapıştırma kısıtlamaları, ekran görüntüsü engelleme ve veri aktarımı kısıtlamaları gibi uygulama koruma ilkesi ayarlarının çoğunu zorunlu kılabilir.

Ancak, uygulamaya özgü kodun düzgün şekilde uygulanmasını gerektiren bazı ayarlar vardır; bunlara uygulama katılım özellikleri adı verilir. Genellikle SDK, uygulamanızın kodu veya son kullanıcı senaryosu hakkında bu ayarları otomatik olarak zorunlu kılmak için yeterli bağlama sahip değildir ve bu nedenle geliştiricilerin SDK API'lerini uygun şekilde çağırmasına dayanır.

Uygulama katılım özellikleri isteğe bağlı olmayabilir. Uygulamanızın mevcut özelliklerine bağlı olarak bu özellikler gerekebilir. Ayrıntılar için bkz. SDK tümleştirmesi için Önemli Kararlar .

Bu kılavuzun önceki aşamalarında çeşitli uygulama katılım özellikleri zaten açıklanmıştır:

Bu kılavuzun geri kalanında kalan uygulama katılım özellikleri açıklanmaktadır:

  • Dosyaları yerel veya bulut depolama alanına kaydetmeyi/yerel depolamadan açmayı kısıtlayan ilkeyi zorunlu kılma.
  • Bildirimlerdeki içeriği kısıtlayan ilkeyi zorunlu kılma.
  • Yedekleme verilerini koruyan ilkeyi zorunlu kılma.
  • Ekran yakalamayı kısıtlayan ilkeyi zorunlu kılma (uygulamanızda özel ekran yakalama kodu varsa).
  • Uygulama Koruma CA'sını destekleyin.
  • SDK'dan bildirimlere kaydolun.
  • Özel uygulama temalı uygulama.
  • Şirket içi uç noktalara güven zinciri sağlamak için Intune'dan güvenilen sertifikalar kullanın.

Uygulama Katılımı Özelliği ile ilgili temel bilgiler

AppPolicy arabirimi, uygulamanızı belirli eylemlere izin verilip verilmeyeceğini bildiren birçok yöntem içerir.

Çoğu uygulama katılım özelliği şunları içerir:

  • Bir eyleme izin verilip verilmediğini denetlemek için uygulamanızın kodunda doğru yeri belirleme.
  • Şu anda yapılandırılmış ilkeye AppPolicy bağlı olarak bir eyleme izin verilip verilmediğini denetlemek için bir yöntem çağırma.
  • Sonuca bağlı olarak, eylemin tamamlanmasına izin verme veya eylem engellendiğinde uygulama davranışını değiştirme.

Bir AppPolicy örneği almak için veya getPolicyForIdentity(final String identity)gibi getPolicyMAMPolicyManager yöntemlerinden birini kullanın.

AppPolicy'de bilgilendirici yöntemler

içindeki AppPolicy her yöntem bir uygulama katılım özelliğine bağlı değildir. Bazı yöntemler bilgilendiricidir ve bu ilkeler SDK tarafından otomatik olarak zorlansa bile uygulamanıza şu anda hangi ilkelerin yapılandırıldığı konusunda veri verir. Belirli ilkeler yapılandırıldığında uygulamanıza özel kullanıcı deneyimi sunma fırsatı vermek için bu yöntemler vardır.

Örnek: Ekran görüntülerinin engellenip engellenmediğini belirleme

Uygulamanızda kullanıcının ekran görüntüsü almasına izin veren bir denetim varsa, Uygulama Koruma İlkesi'nin ekran görüntüleri engellenmişse bu denetimi devre dışı bırakmak veya gizlemek isteyebilirsiniz.

Uygulamanız arayarak MAMPolicyManager.getPolicy(currentActivity).getIsScreenCaptureAllowed()bunu denetleyebiliyor.

Uygulamalar ve cihaz veya bulut depolama konumları arasında veri aktarımını sınırlama ilkesi

Birçok uygulama, son kullanıcının verileri yerel dosya depolama veya bulut depolama hizmetlerinde kaydetmesine veya açmasına olanak tanır. Intune Uygulama SDK'sı, UYGULAMALARıN veri kaydedebileceği ve veri açabileceği yerleri kısıtlayarak BT yöneticilerinin veri girişine ve veri sızıntısına karşı koruma sağlamasına olanak tanır.

Not

Uygulamanız doğrudan uygulamadan kişisel konumlara veya bulut konumlarına kaydetmeye izin veriyorsa veya verilerin doğrudan uygulamaya açılmasına izin veriyorsa, BT yöneticilerinin bu kaydetmeyi / açmayı engellemesini sağlamak için bu Intune Uygulama SDK'sı uygulama katılımı özelliğini uygulamanız gerekir .

Cihaza veya bulut depolamaya kaydetme

API, getIsSaveToLocationAllowed yapılandırılan ilkeye bağlı olarak uygulamanızın belirli bir kimlik için belirli konumlara kaydetmeye izin verilip verilmeyeceğini bilmesini sağlar:

MAMPolicyManager.getPolicy(currentActivity).getIsSaveToLocationAllowed(
SaveLocation service, String username);

Uygulamanızın getIsSaveToLocationAllowed denetimi uygulayıp uygulamayacağını belirlemek için aşağıdaki tabloyu gözden geçirerek uygulamanızın veri çıkışını destekleyip desteklemediğini belirleyin:

service Parametre: SaveLocation Sabit Listesi Değeri Kullanım Örneği İlişkili Kullanıcı Adı
ONEDRIVE_FOR_BUSINESS Uygulama verileri OneDrive'a kaydediyor. Hem username bulut hizmeti kimlik doğrulaması hem de Microsoft Entra kimlik doğrulaması için kullanılan bir hesap için. Böyle bir kullanıcı adı yoksa veya kullanıcı adı bilinmiyorsa kullanın null.
SHAREPOINT Uygulama verileri Sharepoint'e kaydediyor. Hem username bulut hizmeti kimlik doğrulaması hem de Microsoft Entra kimlik doğrulaması için kullanılan bir hesap için. Böyle bir kullanıcı adı yoksa veya kullanıcı adı bilinmiyorsa kullanın null.
BOX Bu uygulama Verileri Box'a kaydediyor. Hem username bulut hizmeti kimlik doğrulaması hem de Microsoft Entra kimlik doğrulaması için kullanılan bir hesap için. Böyle bir kullanıcı adı yoksa veya kullanıcı adı bilinmiyorsa kullanın null.
LOCAL Uygulama, verileri cihazın özel depolama alanı olmayan bir dış depolama konumuna kaydediyor. Dış depolama bir bulut hizmeti olarak kabul edilmez ve bu nedenle her zaman bir null kullanıcı adı parametresiyle kullanılmalıdır.
PHOTO_LIBRARY Uygulama, verileri Android yerel fotoğraf depolama alanına kaydediyor. Android yerel fotoğraf depolama alanı bir bulut hizmeti olarak kabul edilmez ve bu nedenle her zaman bir null kullanıcı adı parametresiyle kullanılmalıdır.
ACCOUNT_DOCUMENT Uygulama, verileri uygulama içindeki bir hesapla ilişkilendirilmiş bir konuma kaydediyor ve yukarıda belirtilen belirli bulut konumlarından biri değil. *Bu konum, çok kimlikli bir uygulama içindeki hesaplar arasında veri geçirilip geçirilebileceğini belirlemek için kullanılmalıdır.- username Microsoft Entra kimlik doğrulaması için kullanılan bir hesap için A. Böyle bir kullanıcı adı yoksa veya kullanıcı adı bilinmiyorsa kullanın null.
OTHER Uygulama verileri yukarıda belirtilmemiş ve ölçütlerini ACCOUNT_DOCUMENTkarşılamayan bir konuma kaydediyor. username bu konum için değerlendirilmez ve olması gerekirnull.

Uygulama işlemi için gerekli olan veya görüntü için geçici olarak indirilen özel uygulama depolama alanına yerleştirilen dosyalara her zaman izin verilir; seçeneğini denetlemeniz getIsSaveToLocationAllowedgerekmez. Kontrol edin SaveLocation.LOCAL

  1. Özel uygulama depolama alanı dışında kaydedilen dosyalar.
  2. Uygulama işlemi için gerekli olmayan özel uygulama depolama alanına indirilen dosyalar (örneğin, kullanıcı cihaza indirmeyi kasıtlı olarak seçme).

Not

Kaydetme ilkesini denetlerken, usernamekaydedilmekte olan bulut hizmetiyle ilişkilendirilmiş UPN/kullanıcı adı/e-posta olmalıdır (kaydedilmekte olan belgenin sahibi olan hesapla aynı olmayabilir ).

Yerel veya bulut depolama konumundan veri açma

API, getIsOpenFromLocationAllowed yapılandırılan ilkeye bağlı olarak uygulamanızın belirli bir kimlik için belirli konumlardan açılmasına izin verilip verilmeyeceğini bilmesini sağlar:

MAMPolicyManager.getPolicy(currentActivity).getIsOpenFromLocationAllowed(
OpenLocation location, String username);

Uygulamanızın getIsOpenFromLocationAllowed denetimi uygulayıp uygulamayacağını belirlemek için aşağıdaki tabloyu gözden geçirerek uygulamanızın veri girişi destekleyip desteklemediğini belirleyin:

location Parametre: OpenLocation Sabit Listesi Değeri Kullanım Örneği İlişkili Kullanıcı Adı
ONEDRIVE_FOR_BUSINESS Uygulama, OneDrive'dan veri açıyor. Hem username bulut hizmeti kimlik doğrulaması hem de Microsoft Entra kimlik doğrulaması için kullanılan bir hesap için. Böyle bir kullanıcı adı yoksa veya kullanıcı adı bilinmiyorsa kullanın null.
SHAREPOINT Uygulama Sharepoint'ten veri açıyor. Hem username bulut hizmeti kimlik doğrulaması hem de Microsoft Entra kimlik doğrulaması için kullanılan bir hesap için. Böyle bir kullanıcı adı yoksa veya kullanıcı adı bilinmiyorsa kullanın null.
CAMERA Uygulama, kameradan veri açıyor. null Cihaz kamerası bir bulut hizmeti olmadığından bir değer.
LOCAL Uygulama, cihazın özel depolama alanı olmayan bir dış depolama konumundan veri açıyor. Dış depolama bir bulut hizmeti konumu olmasa da, sahipliği gösterdiğinden bir username parametre beklenir.
Bir dosyayı yerel depolama alanından açarken, dosya sahibinin farklı kaydetme ilkesi diğer kimliklerin dosyayı açmasına izin verebileceğinden veya izin veremediğinden, dosya sahibi her zaman dikkate alınmalıdır:
- Kimlik etiketli dosyalar için,username dosya sahibinin kimliği olmalıdır.
- Kimlik etiketi olmayan dosyalar için,username olmalıdır null.
PHOTO_LIBRARY Uygulama, Android fotoğraf yerel depolama alanından veri açıyor. Android yerel fotoğraf depolama alanı bir bulut hizmeti olarak kabul edilmez ve bu nedenle her zaman bir null kullanıcı adı parametresiyle kullanılmalıdır.
ACCOUNT_DOCUMENT Uygulama, uygulama içindeki bir hesapla ilişkili olan ve yukarıda belirtilen belirli bulut konumlarından biri olmayan bir konumdan veri açıyor. *Bu konum, çok kimlikli bir uygulama içindeki hesaplar arasında veri geçirilip geçirilebileceğini belirlemek için kullanılmalıdır.- username Microsoft Entra kimlik doğrulaması için kullanılan bir hesap için A. Böyle bir kullanıcı adı yoksa veya kullanıcı adı bilinmiyorsa kullanın null.
OTHER Uygulama, yukarıda belirtilmemiş ve ölçütlerini ACCOUNT_DOCUMENTkarşılamayan bir konumdan veri açıyor. username bu konum için değerlendirilmez ve olması gerekirnull.

Not

Açık ilkeyi denetlerken, usernameaçılan dosya veya bulut hizmetiyle ilişkilendirilmiş UPN/kullanıcı adı/e-posta olmalıdır (belgeyi açan hesapla aynı olmayabilir ).

İpucu

Kolaylık sağlamak için SDK, yerel depolamadaki bir File dosya için parametre alan yöntemi AppPolicy.isOpenFromLocalStorageAllowed sağlar. İlkeyi zorunlu tutma koşulları, dosya sahibinin username öğesinin öğesinin ayrıştırma işlemini işlemesi dışında çağrısıyla Fileişlevsel olarak aynıdırAppPolicy.isOpenFromLocationAllowed(OpenLocation.LOCAL, username).

Paylaşım engellendi iletişim kutusu

SDK, kullanıcıya MAM ilkesi tarafından bir veri aktarımı eyleminin engellendiğini bildiren bir iletişim kutusu sağlar.

veya isOpenFromAllowedForLocation API çağrısı kaydetme/açma eylemi engellendiğinde iletişim kutusu kullanıcıya isSaveToAllowedForLocation gösterilmelidir. İletişim kutusu genel bir ileti görüntüler ve kapatıldığında aramaya Activity geri döner.

İletişim kutusunu görüntülemek için aşağıdaki kodu ekleyin:

MAMUIHelper.showSharingBlockedDialog(currentActivity)

Dosya paylaşımına izin ver

Genel depolama konumlarına kaydetmeye izin verilmiyorsa, uygulamanız yine de kullanıcının dosyaları uygulama özel depolama alanına indirip sistem seçiciyle açarak görüntülemesine izin vermelidir.

Bildirimlerin içindeki içeriği kısıtlama ilkesi

Tek kimlikli uygulamalar için, Uygulama Koruma İlkesi bildirimleri kısıtladığında Intune Uygulama SDK'sının varsayılan davranışı tüm bildirimleri engellemeye çalışır.

SDK'nın varsayılan davranışı sınırlıdır. SDK, bildirimlerden yalnızca yönetilen içeriği kaldırmayı amaçlayan "Kuruluş verilerini engelle" değerini otomatik olarak kabul etmez. Çok kimlikli uygulamalar için SDK, hangi bildirimlerin yönetilen içerik içerdiğini belirleyemez.

Uygulamanız bildirimleri görüntülüyorsa ve birden çok kimlikliyse ve/veya "Kuruluş verilerini engelle" değerine uymayı istiyorsa, bildirimi göstermeden önce bildirimle ilişkili hesabın bildirim kısıtlama ilkesini denetlemesi gerekir.

İlkenin zorunlu olup olmadığını belirlemek için aşağıdaki çağrıyı yapın:

NotificationRestriction notificationRestriction =
    MAMPolicyManager.getPolicyForIdentity(notificationIdentity).getNotificationRestriction();

Döndürülen NotificationRestriction sabit listesi aşağıdaki değerlere sahiptir:

NotificationRestriction Enum Beklenen Uygulama Davranışı
BLOCKED Uygulama, bu ilkeyle ilişkili hesap için hiçbir bildirim göstermemelidir . Tek kimlikli uygulamalar için Intune Uygulama SDK'sı tüm bildirimleri otomatik olarak engeller ve ek kod gerekmez.
BLOCK_ORG_DATA Uygulama, kuruluş verilerini içermeyen değiştirilmiş bir bildirim göstermelidir.
UNRESTRICTED Uygulama tüm bildirimleri göstermelidir.

Uygulamanız düzgün şekilde çağrılmazsa getNotificationRestriction, MAM SDK'sı bildirimleri yalnızca tek kimlikli uygulamalar için otomatik olarak kısıtlamak için en iyi çabayı gösterir.

Bu durumda, BLOCK_ORG_DATA ile aynı BLOCKED kabul edilir ve bildirim hiç gösterilmez.

Daha ayrıntılı denetim için uygulama bildirimlerinin getNotificationRestriction değerini denetleyin ve uygun şekilde değiştirin.

Yedekleme verilerini koruma ilkesi

Intune Uygulama SDK'sı, Android'in yerleşik yedekleme ve geri yükleme özelliğine veri yüklemeyi engelleyebilir. Android'de yedekleme ve geri yükleme hakkında daha fazla bilgi edinmek için Android API kılavuzuna ve Android S / 12'de sunulan değişikliklere buradan bakın: Yedekleme ve geri yükleme olarak değiştirme.

Uygulamalar için Otomatik Yedekleme

Android M'den başlayarak Android, uygulamanın hedef API'sine bakılmaksızın uygulamalar için Google Drive'a otomatik tam yedeklemeler sunmaya başladı.

Intune, veri korumanın uygulandığından emin olmak için belirli Intune tümleştirme kılavuzuyla XML'de özel kurallar tanımlama özelliği de dahil olmak üzere Android'den sağlanan tüm otomatik geri gönderme özelliklerini kullanmanıza olanak tanır.

Uygulamanın bildiriminde yedekleme davranışını yapılandırma

Varsayılan olarak, android:allowBackupyedeklemeyi etkinleştirme ve devre dışı bırakma bölümünde açıklandığı gibi true olarak ayarlanır.

Uygulamanız tam yedekleme ve geri yükleme işlevine ihtiyaç duymazsa false olarak ayarlayınandroid:allowBackup. Bu durumda başka bir işlem yapılması gerekmez ve "kurumsal" veriler uygulama içinde kalır.

Uygulamanız tam yedekleme ve geri yükleme işlevi gerektiriyorsa true olarak ayarlayın android:allowBackup ve aşağıdaki ek adımları uygulayın:

  1. Uygulamanız kendi özel BackupAgentöğesini kullanmıyorsa, Intune ilkesiyle uyumlu otomatik tam yedeklemelere izin vermek için varsayılan MAMBackupAgent'ı kullanın. Uygulama bildirimine aşağıdakileri yerleştirin:

    <application
    ...
      android:fullBackupOnly="true"
      android:backupAgent="com.microsoft.intune.mam.client.app.backup.MAMDefaultBackupAgent"
      ...>
      </application>
    
  2. [İsteğe bağlı] İsteğe bağlı bir özel BackupAgentuyguladıysanız MAMBackupAgent veya MAMBackupAgentHelperkullandığınızdan emin olmanız gerekir. Aşağıdaki bölümlere bakın. Android M ve üzeri sürümlerde kolay yedekleme sağlayan 1. adımda açıklanan Intune'un MAMDefaultBackupAgent'ını kullanmaya geçmeyi göz önünde bulundurun.

  3. Uygulamanızın hangi tam yedekleme türünü (filtrelenmemiş, filtrelenmiş veya hiçbiri) alması gerektiğine karar verdiğinizde, özniteliğini android:fullBackupContent true, false veya uygulamanızda bir XML kaynağı olarak ayarlamanız gerekir.

  4. Ardından değerini meta veri etiketine com.microsoft.intune.mam.FullBackupContent ve API 31'de eklenen yeni XML yapılandırma biçimini destekleyen uygulamalar için meta veri etiketine com.microsoft.intune.mam.DataExtractionRules kopyalamanız android:fullBackupContentgerekir.

    • Örnek 1: Uygulamanızın dışlamalar olmadan tam yedeklemelere sahip olmasını istiyorsanız öznitelikleri ve meta veri etiketlerini true olarak ayarlamanız gerekir:

      <application
        ...
        android:fullBackupContent="true"
        ...>
      </application>
      ...
      <meta-data android:name="com.microsoft.intune.mam.FullBackupContent" android:value="true" />
      <meta-data android:name="com.microsoft.intune.mam.DataExtractionRules" android:value="true" />
      
    • Örnek 2: Uygulamanızın özel BackupAgent uygulamasını kullanmasını ve tam, Intune ilkesi uyumlu, otomatik yedeklemeleri geri çevirmesini istiyorsanız öznitelikleri ve meta veri etiketlerini false olarak ayarlamanız gerekir:

      <application
        ...
        android:fullBackupContent="false"
        ...>
      </application>
      ...
      <meta-data android:name="com.microsoft.intune.mam.FullBackupContent" android:value="false" />
      <meta-data android:name="com.microsoft.intune.mam.DataExtractionRules" android:value="false" />
      
    • Örnek 3: Uygulamanızın bir XML dosyasında tanımlanan özel kurallarınıza göre tam yedeklemelere sahip olmasını istiyorsanız, özniteliğini ve meta veri etiketini aynı XML kaynağına ayarlayın:

      <application
        ...
        android:fullBackupContent="@xml/my_full_backup_content_scheme"
        android:dataExtractionRules="@xml/my_data_extraction_rules_scheme"
        ...>
      </application>
      ...
      <meta-data android:name="com.microsoft.intune.mam.FullBackupContent" android:resource="@xml/my_full_backup_content_scheme" />
      <meta-data android:name="com.microsoft.intune.mam.DataExtractionRules" android:resource="@xml/my_data_extraction_rules_scheme" />
      

Anahtar/Değer Yedekleme

Anahtar/Değer Yedekleme seçeneği 8+ tüm API'lerde kullanılabilir ve uygulama verilerini Android Yedekleme Hizmeti'ne yükler. Uygulama başına veri miktarı 5 MB ile sınırlıdır. Anahtar/Değer Yedekleme kullanıyorsanız BackupAgentHelper veya BackupAgent kullanmanız gerekir.

BackupAgentHelper

BackupAgentHelper'ın uygulanması , hem yerel Android işlevselliği hem de Intune MAM tümleştirmesi açısından BackupAgentHelper'ın uygulanması BackupAgent'dan daha kolaydır. Geliştiricinin tüm dosyaları ve paylaşılan tercihleri oluşturma sonrasında BackupAgentHelper'a eklenen ve FileBackupHelperSharedPreferencesBackupHelper (sırasıyla) öğesine kaydetmesine olanak tanır. Intune MAM ile BackupAgentHelper kullanmak için aşağıdaki adımları izleyin:

  1. ile BackupAgentHelperçoklu kimlik yedeklemesini kullanmak için BackupAgentHelper'ı Genişletme için Android kılavuzunu izleyin.

  2. Sınıfınızın BackupAgentHelper, FileBackupHelper ve SharedPreferencesBackupHelper'ın MAM eşdeğerini genişletmesini sağlayın.

Android sınıfı MAM eşdeğeri
BackupAgentHelper MAMBackupAgentHelper
FileBackupHelper MAMFileBackupHelper
SharedPreferencesBackupHelper MAMSharedPreferencesBackupHelper

Bu yönergelerin izlenerek çok kimlikli yedekleme ve geri yüklemenin başarılı olması sağlanacaktır.

BackupAgent

BackupAgent, hangi verilerin yedeklendiği konusunda çok daha açık olmanıza olanak tanır. Uygulamadan geliştirici sorumlu olduğundan, Intune'dan uygun veri korumasını sağlamak için gereken daha fazla adım vardır. Çalışmanın çoğu geliştirici olan size gönderildiğinden Intune tümleştirmesi biraz daha karmaşıktır.

MAM'yi tümleştirme:

  1. BackupAgent uygulamanızın Android yönergelerine uyduğundan emin olmak için Anahtar/Değer Yedekleme için Android kılavuzunu ve özellikle BackupAgent'ı Genişletme kılavuzunu dikkatle okuyun.

  2. Sınıfınızın MAMBackupAgent'ı genişletmesini sağlayın.

Çok Kimlikli Yedekleme:

  1. Yedeklemeye başlamadan önce, yedeklemeyi planladığınız dosyaların veya veri arabelleklerinin BT yöneticisi tarafından çok kimlikli senaryolarda yedeklenebilmesine gerçekten izin verilip verilmediğini denetleyin. Bunu belirlemek için MAMFileProtectionManager ve MAMDataProtectionManager'da kullanınisBackupAllowed. Dosya veya veri arabelleğinin yedeklenmelerine izin verilmiyorsa, bunu yedeklemenize eklememelisiniz.

  2. Yedekleme sırasında bir noktada, 1. adımda iade ettiğiniz dosyaların kimliklerini yedeklemek istiyorsanız, verileri ayıklamayı planladığınız dosyalarla birlikte aramanız backupMAMFileIdentity(BackupDataOutput data, File … files) gerekir. Bu, otomatik olarak yeni yedekleme varlıkları oluşturur ve bunları sizin için öğesine BackupDataOutput yazar. Bu varlıklar geri yükleme işleminde otomatik olarak kullanılacaktır.

Çok Kimlikli Geri Yükleme: Veri Yedekleme kılavuzu, uygulamanızın verilerini geri yüklemek için genel bir algoritma belirtir ve BackupAgent'ı Genişletme bölümünde bir kod örneği sağlar. Çok kimlikli geri yüklemenin başarılı olması için, bu kod örneğinde sağlanan genel yapıyı izlemeniz ve aşağıdakilere özellikle dikkat etmeniz gerekir:

  1. Yedekleme varlıklarını gözden geçirebilmek için bir while(data.readNextHeader())* döngüsü kullanmanız gerekir.

  2. içinde yazdığınız onBackupanahtarla eşleşmiyorsa aramanız data.getKey()data.skipEntityData() gerekir. Bu adımı gerçekleştirmeden geri yüklemeleriniz başarılı olmayabilir.

  3. Otomatik olarak yazdığımız varlıklar kaybolacağı için * yapısındaki while(data.readNextHeader())yedekleme varlıklarını kullanırken geri dönmekten kaçının.

  • Burada data , geri yükleme sırasında uygulamanıza geçirilen MAMBackupDataInput için yerel değişken adıdır.

Özel Ekran Yakalama Kısıtlamaları

Uygulamanız Android'in Windowdüzey FLAG_SECURE kısıtlamasını atlayan özel bir ekran yakalama özelliği içeriyorsa, özelliğe tam erişime izin vermeden önce ekran yakalama ilkesini denetlemeniz gerekir. Örneğin, uygulamanız geçerli görünümü PNG dosyasına işlemek için özel bir işleme altyapısı kullanıyorsa, önce öğesini denetlemeniz AppPolicy.getIsScreenCaptureAllowed()gerekir.

Not

Uygulamanız herhangi bir özel veya üçüncü taraf ekran yakalama özelliği içermiyorsa, ekran yakalamaları kısıtlamak için herhangi bir işlem yapmanız gerekmez. Ekran yakalama ilkesi, tüm MAM tümleşik uygulamaları için düzeyinde otomatik olarak uygulanır Window . İşletim sistemi veya başka bir uygulama tarafından uygulamanızda yakalama Window girişimleri gerektiği gibi engellenir. Örneğin, bir kullanıcı Android'in yerleşik ekran görüntüsü veya ekran kaydı özellikleri aracılığıyla uygulamanızın ekranını yakalamaya çalışırsa yakalama, uygulamanızdan katılım olmadan otomatik olarak kısıtlanır.

Destek Uygulama Koruma CA'sı

Uygulama tabanlı CA olarak da bilinen Uygulama Koruma CA'sı (Koşullu Erişim), uygulamanız Intune Uygulama Koruma İlkeleri tarafından yönetilene kadar kaynaklara erişimi kısıtlar. Microsoft Entra Kimliği, CA korumalı bir kaynağa erişmek için belirteç vermeden önce uygulamanın APP tarafından kaydedilmesini ve yönetilmesini gerektirerek bunu zorlar.

Not

Uygulama Koruma CA'sı desteği, MSAL kitaplığının 1.0.0 (veya üzeri) sürümünü gerektirir.

MSAL ile uyumsuzlukları işleme

Bir hesap için belirteç alırken, MSAL kitaplığı uygulama koruma ilkesi yönetimine uyumsuzluk göstermek için bir MsalIntuneAppProtectionPolicyRequiredException döndürebilir veya verebilir. Uyumluluğu düzeltmek için özel durumdan ek parametreler ayıklanabilir (bkz. MAMComplianceManager). Düzeltme başarılı olduktan sonra uygulama, MSAL aracılığıyla belirteç alımını yeniden kullanabilir.

MAMComplianceManager

MSAL'den ilke için gerekli hata alındığında MAMComplianceManager arabirimi kullanılır. Uygulamayı uyumlu bir duruma sokmaya çalışmak için çağrılmalıdır [remediateCompliance] yöntemini içerir. başvurusu MAMComplianceManager aşağıdaki gibi elde edilebilir:

MAMComplianceManager mgr = MAMComponents.get(MAMComplianceManager.class);

// make use of mgr

Döndürülen MAMComplianceManager örneğin olmaması nullgaranti edilir.

package com.microsoft.intune.mam.policy;

public interface MAMComplianceManager {
    void remediateCompliance(String upn, String aadId, String tenantId, String authority, boolean showUX);
}

yöntemiremediateCompliance(), istenen belirteci vermek için Microsoft Entra kimliği koşullarını karşılamak üzere uygulamayı yönetim altına almak için çağrılır. İlk dört parametre, MSAL AuthenticationCallback.onError() yöntemi tarafından alınan özel durumdan ayıklanabilir (aşağıdaki kod örneğine bakın). Son parametre, uyumluluk girişimi sırasında UX gösterilip gösterilmediğini denetleyen bir boole değeridir.

remediateCompliance uygulamaların bu işlem sırasında özelleştirilmiş UX göstermesi gerekmeyecek şekilde basit bir engelleme ilerleme durumu iletişim kutusu görüntüler. Bu iletişim kutusu yalnızca uyumluluk düzeltmesi devam ederken görüntülenir; son sonucu görüntülemez. Uygulamanız, uyumluluk düzeltme girişiminin başarısını COMPLIANCE_STATUS veya başarısızlığını işlemek için bildirim için bir alıcı kaydedebilir. Ayrıntılar için bkz . Uyumluluk durumu bildirimleri .

remediateCompliance() , uyumluluk oluşturmanın bir parçası olarak bir MAM kaydı başlatabilir. Uygulama, kayıt bildirimleri için bir bildirim alıcısı kaydettiyse bir kayıt bildirimi alabilir. Uygulamanın kayıtlı MAMServiceAuthenticationCallback olması, kayıt için belirteç almak için yöntemini çağıracaktır acquireToken() . acquireToken() uygulama kendi belirtecini almadan önce çağrılır, bu nedenle başarılı bir belirteç alımından sonra uygulamanın yaptığı herhangi bir muhasebe veya hesap oluşturma görevi henüz yapılmamış olabilir. Geri çağırmanın bu durumda bir belirteç alabilmesi gerekir.

'den acquireToken()belirteç döndüremiyorsanız, uyumluluk düzeltme girişimi başarısız olur.

Daha sonra istenen kaynak için geçerli bir belirteçle çağırırsanız updateToken , uyumluluk düzeltmesi verilen belirteçle hemen yeniden denenir.

Not

Kullanıcının aracıyı yüklemesi ve özel durum alınmadan önce MsalIntuneAppProtectionPolicyRequiredException cihazı kaydetmesi için zaten yönlendirilmiş olması nedeniyle sessiz belirteç alma işlemi yine de mümkün acquireToken() olacaktır. Bu, aracının önbelleğinde geçerli bir yenileme belirteci bulunmasına ve istenen belirtecin sessiz alınmasının başarılı olmasına olanak sağlar.

Burada yönteminde AuthenticationCallback.onError() ilke için gerekli hatayı alma ve hatayı işlemek için MAMComplianceManager çağrısı yapma örneği verilmiştir.

public void onError(@Nullable MsalException exc) {
    if (exc instanceof MsalIntuneAppProtectionPolicyRequiredException) {

        final MsalIntuneAppProtectionPolicyRequiredException policyRequiredException =
            (MsalIntuneAppProtectionPolicyRequiredException) ex;

        final String upn = policyRequiredException.getAccountUpn();
        final String aadId = policyRequiredException.getAccountUserId();
        final String tenantId = policyRequiredException.getTenantId();
        final String authority = policyRequiredException.getAuthorityURL();

        MAMComplianceManager complianceManager = MAMComponents.get(MAMComplianceManager.class);
        complianceManager.remediateCompliance(upn, aadId, tenantId, authority, showUX);
    }
}

Uyumluluk durumu bildirimleri

Uygulama türündeki COMPLIANCE_STATUSbildirimlere kaydolacaksa, uyumluluk düzeltme girişiminin son durumunu uygulamaya bildirmek için bir MAMComplianceNotification gönderilir. Kaydetme hakkında ayrıntılı bilgi için bkz. SDK'dan bildirimlere kaydolma.

public interface MAMComplianceNotification extends MAMUserNotification {
    MAMCAComplianceStatus getComplianceStatus();
    String getComplianceErrorTitle();
    String getComplianceErrorMessage();
}

yöntemi, getComplianceStatus() uyumluluk düzeltme girişiminin sonucunu [MAMCAComplianceStatus] sabit tablosundan bir değer olarak döndürür.

Durum kodu Açıklama
UNKNOWN Durum bilinmiyor. Bu, beklenmeyen bir hata nedenini gösterebilir. Ek bilgiler Şirket Portalı günlüklerinde bulunabilir.
COMPLIANT Uyumluluk düzeltmesi başarılı oldu ve uygulama artık ilkeyle uyumlu. MSAL belirteci alma işlemi yeniden denenmelidir.
NOT_COMPLIANT Uyumluluğu düzeltme girişimi başarısız oldu. Uygulama uyumlu değildir ve hata koşulu düzeltilene kadar MSAL belirteci alımı yeniden denenmemelidir. MAMComplianceNotification ile ek hata bilgileri gönderilir.
SERVICE_FAILURE Intune Hizmetinden uyumluluk verileri alınmaya çalışılıyorken bir hata oluştu. Ek bilgiler Şirket Portalı günlüklerinde bulunabilir.
NETWORK_FAILURE Intune Hizmetine bağlanırken bir hata oluştu. Ağ bağlantısı geri yüklendiğinde uygulamanın belirteç alımını yeniden denemesi gerekir.
CLIENT_ERROR Uyumluluğu düzeltme girişimi istemciyle ilgili bir nedenden dolayı başarısız oldu. Örneğin, belirteç yok veya yanlış kullanıcı. MAMComplianceNotification ile ek hata bilgileri gönderilir.
PENDING Zaman sınırı aşıldığında hizmetten henüz durum yanıtı alınmadığından uyumluluğu düzeltme girişimi başarısız oldu. Uygulamanın belirteç alımını daha sonra yeniden denemesi gerekir.
COMPANY_PORTAL_REQUIRED Uyumluluk düzeltmesinin başarılı olması için Şirket Portalı cihaza yüklenmelidir. Şirket Portalı cihazda zaten yüklüyse uygulamanın yeniden başlatılması gerekir. Bu durumda, kullanıcıdan uygulamayı yeniden başlatmasını isteyen bir iletişim kutusu gösterilir.

Uyumluluk durumu ise MAMCAComplianceStatus.COMPLIANT, uygulamanın özgün belirteç alımını (kendi kaynağı için) yeniden başlatması gerekir.

Uyumluluk düzeltme girişimi başarısız olursa ve getComplianceErrorMessage() yöntemleri, getComplianceErrorTitle() uygulamanın seçtiğinde son kullanıcıya görüntüleyebileceği yerelleştirilmiş dizeler döndürür. Hata durumlarının çoğu uygulama tarafından düzeltilemez, bu nedenle genel durum için hesap oluşturma veya oturum açmada başarısız olmak ve kullanıcının daha sonra yeniden denemesine izin vermek en iyisidir.

Hata kalıcıysa, Şirket Portalı günlükleri nedenini belirlemeye yardımcı olabilir. Son kullanıcı günlükleri gönderebilir. Daha fazla bilgi için bkz . Karşıya yükleme ve e-posta günlükleri.

MAMNotificationReceiver arabirimini uygulamak için anonim bir sınıf kullanarak alıcı kaydetme örneği aşağıda verilmiştir:

final MAMNotificationReceiverRegistry notificationRegistry = MAMComponents.get(MAMNotificationReceiverRegistry.class);
// create a receiver
final MAMNotificationReceiver receiver = new MAMNotificationReceiver() {
    public boolean onReceive(MAMNotification notification) {
        if (notification.getType() == MAMNotificationType.COMPLIANCE_STATUS) {
            MAMComplianceNotification complianceNotification = (MAMComplianceNotification) notification;
            
            // take appropriate action based on complianceNotification.getComplianceStatus()
            
            // unregister this receiver if no longer needed
            notificationRegistry.unregisterReceiver(this, MAMNotificationType.COMPLIANCE_STATUS);
        }
        return true;
    }
};
// register the receiver
notificationRegistry.registerReceiver(receiver, MAMNotificationType.COMPLIANCE_STATUS);

Not

Bildirimin kaçırılmasına neden olabilecek bir yarış durumu oluşmasını önlemek için aramadan remediateCompliance() önce bildirim alıcısının kayıtlı olması gerekir.

Uygulama Koruma CA'sı için destek bildirme

Uygulamanız Uygulama CA'sı düzeltmesini işlemeye hazır olduktan sonra Microsoft Identity'e uygulamanızın Uygulama CA'sı hazır olduğunu söyleyebilirsiniz. Bunu MSAL uygulamanızda yapmak için "protapp" İstemci Özelliklerini kullanarak Genel İstemcinizi oluşturun

{
      "client_id" : "[YOUR_CLIENT_ID]",
      "authorization_user_agent" : "DEFAULT",
      "redirect_uri" : "[YOUR_REDIRECT_URI]",
      "multiple_clouds_supported":true,
      "broker_redirect_uri_registered": true,
      "account_mode": "MULTIPLE",
      "client_capabilities": "protapp",
      "authorities" : [
        {
          "type": "AAD",
          "audience": {
            "type": "AzureADandPersonalMicrosoftAccount"
          }
        }
      ]
    }

Yukarıdaki işlemi tamamladıktan sonra aşağıdaki Uygulama Koruma CA'sını Doğrulama bölümüne geçin.

Uygulama Notları

Not

Uygulamanın MAMServiceAuthenticationCallback.acquireToken() yöntemi bayrağı için forceRefreshfalse değerini adresine acquireTokenSilentAsync()geçirmelidir.

AcquireTokenSilentParameters acquireTokenSilentParameters =
        builder.withScopes(Arrays.asList(scopes))
               .forceRefresh(false)
               .build();

acquireTokenSilentAsync(acquireTokenSilentParameters);

Not

Düzeltme girişimi sırasında özel bir engelleme UX'i göstermek istiyorsanız, showUX parametresi için false değerini öğesine remediateCompliance()geçirmeniz gerekir. aramadan remediateCompliance()önce UX'nizi gösterdiğinizden ve bildirim dinleyicinizi kaydettiğinizden emin olmanız gerekir. Bu, çok hızlı bir şekilde başarısız olursa remediateCompliance() bildirimin yanıtsız bırakılacağı bir yarış durumunu engeller. Örneğin, bir Etkinlik alt sınıfının veya onMAMCreate() yöntemi, onCreate() bildirim dinleyicisini kaydetmek ve ardından çağrısı remediateCompliance()yapmak için ideal yerdir. için remediateCompliance() parametreleri UX'inize Amaç ekleri olarak geçirilebilir. Uyumluluk durumu bildirimi alındığında, sonucu görüntüleyebilir veya etkinliği tamamlayabilirsiniz.

Not

remediateCompliance() hesabı kaydeder ve kaydı dener. Ana belirteç alındıktan sonra çağrı registerAccountForMAM() yapılması gerekmez, ancak bunun yapılmasında bir zarar yoktur. Öte yandan, uygulama belirtecini amazsa ve kullanıcı hesabını kaldırmak isterse hesabı kaldırmak ve arka plan kaydı yeniden denemelerini önlemek için çağrısı unregisterAccountForMAM() yapmalıdır.

SDK'dan bildirimlere kaydolma

Intune Uygulama SDK'sı kılavuzunda, uygulamanızın SDK'dan bildirimlere kaydolması gerekebileceği çeşitli senaryolar ele alınmıştır, örneğin:

Bu bölümde SDK'nın gönderebileceği her bildirim türü, uygulamanızın bunu ne zaman ve neden dinlemek isteyeceği ve bildirim alıcısının nasıl uygulanacağı açıklanmaktadır.

Bildirim türleri

Tüm SDK bildirimleri, MAMNotificationType sabit listesi döndüren tek bir işlevi getType()olan MAMNotification arabirimini uygular.

Bildirimlerin çoğu, işlev aracılığıyla getUserIdentity() alınabilen tek bir kimliğe özgü bilgiler sağlayan MAMUserNotification'dır.

MAMEnrollmentNotification ve MAMComplianceNotification , bir kullanıcıyı/cihazı MAM Hizmeti'ne kaydetme girişimlerine ve app protection CA uyumluluğunu düzeltmeye yönelik sonuçları sırasıyla içeren kapsamını genişletir MAMUserNotification.

Bildirim türü Notification sınıfı Bildirim nedeni Uygulanabilirlik İşleme ipuçları İş parçacığı bilgileri
COMPLIANCE_STATUS MAMComplianceNotification Uyumluluk düzeltme girişiminin sonucunu döndürür. Uygulama Koruma CA'sı uygulayan uygulamaların bunu işlemesi gerekir. - Nondeterministic
MAM_ENROLLMENT_RESULT MAMEnrollmentNotification Kayıt girişiminin sonucunu döndürür. Tüm uygulamalar bunu alır. - Nondeterministic
MANAGEMENT_REMOVED MAMUserNotification Uygulama yönetilmeyen hale gelmek üzere. Kullanan MAMDataProtectionManager uygulamaların bunu işlemesi gerekir. Aşağıdaki MANAGEMENT_REMOVED bakın. Ui iş parçacığında hiçbir zaman açık değil
REFRESH_APP_CONFIG MAMUserNotification Uygulama yapılandırma değerleri değişmiş olabilir. Uygulama yapılandırması uygulayan ve uygulama yapılandırma verilerini önbelleğe alan uygulamaların bunu işlemesi gerekir. Uygulamalar önbelleğe alınmış uygulama yapılandırma verilerini geçersiz kılmalı ve güncelleştirmelidir. Nondeterministic
REFRESH_POLICY MAMUserNotification Uygulama koruması ilkesi değişmiş olabilir. Uygulama koruma ilkesini önbelleğe alan uygulamaların bunu işlemesi gerekir. Uygulamalar önbelleğe alınmış uygulama koruma ilkesi verilerini geçersiz kılmalı ve güncelleştirmelidir. Nondeterministic
WIPE_USER_DATA MAMUserNotification Silme işlemi gerçekleşmek üzere(*). Kullanan MAMDataProtectionManager uygulamaların bu veyaWIPE_USER_AUXILIARY_DATA ile ilgilenmesi gerekir. Bkz . Seçmeli Temizleme. Ui iş parçacığında hiçbir zaman açık değil
WIPE_USER_AUXILIARY_DATA MAMUserNotification Silme işlemi gerçekleşmek üzere(*). Bunu yalnızca çok kimlikli uygulamalar alır.
Kullanan MAMDataProtectionManager uygulamaların bu veyaWIPE_USER_DATA ile ilgilenmesi gerekir.
Bkz . Seçmeli Temizleme. Ui iş parçacığında hiçbir zaman açık değil
WIPE_COMPLETED MAMUserNotification Silme işlemi tamamlandı. Her zaman isteğe bağlı. veya WIPE_USER_AUXILIARY_DATAsonrasında WIPE_USER_DATA teslim edildi. *Uygulama veya WIPE_USER_AUXILIARY_DATAiçin WIPE_USER_DATA işleyicisinden bir hata bildirirse bu bildirim gönderilmez.- Ui iş parçacığında hiçbir zaman açık değil

(*) Silme işlemleri birçok nedenden dolayı oluşabilir, örneğin:

Uyarı

Bir uygulama hiçbir zaman hem hem WIPE_USER_AUXILIARY_DATA de bildirimlerine WIPE_USER_DATA kaydolmamalıdır.

MANAGEMENT_REMOVED

Bildirim, MANAGEMENT_REMOVED uygulamaya daha önce ilkeyle yönetilen bir hesabın yönetilmeyen hale gelmek üzere olduğunu bildirir. Hesap yönetilmedikten sonra uygulama artık bu hesabın şifrelenmiş dosyalarını okuyamaz, ile MAMDataProtectionManagerşifrelenmiş hesabın verilerini okuyamaz, şifrelenmiş panoyla etkileşim kuramaz veya yönetilen uygulama ekosistemine başka bir şekilde katılamaz.

Bu, kullanıcı verilerini silmeyi veya kullanıcının oturumunu kapatmayı gerektirmez (silme gerekiyorsa bir WIPE_USER_DATA bildirim gönderilir). Birçok uygulamanın bu bildirimi işlemesi gerekmeyebilir, ancak kullanan MAMDataProtectionManager uygulamaların bunu işlemesi gerekir. Ayrıntılar için bkz. Veri Arabelleği Koruması .

SDK uygulamanın MANAGEMENT_REMOVED alıcısını çağırdığında, aşağıdakiler doğru olacaktır:

  • SDK, uygulamaya ait önceden şifrelenmiş dosyaların (ancak korunan veri arabelleklerinin) şifresini zaten çözmüştür. Karttaki genel konumlarda bulunan ve doğrudan uygulamaya ait olmayan dosyaların (örneğin, Belgeler veya İndirme klasörleri) şifresi çözülmez.

  • Alıcı yöntemi (veya alıcı başlatıldıktan sonra çalıştırılan diğer kodlar) tarafından oluşturulan yeni dosyalar veya korumalı veri arabellekleri şifrelenmez.

  • Uygulamanın şifreleme anahtarlarına erişmeye devam eder, bu nedenle veri arabelleklerinin şifresini çözme gibi işlemler başarılı olur.

Uygulamanızın alıcısı geri döndüğünde artık şifreleme anahtarlarına erişimi olmayacaktır.

MAMNotificationReceiver Uygulama

SDK'dan bildirimlere kaydolmak için uygulamanızın bir MAMNotificationReceiver oluşturması ve MAMNotificationReceiverRegistry'ye kaydetmesi gerekir.

Alıcıyı kaydetmek için, alıcınızla ve yönteminizde Application.onCreate istenen bildirim türünü çağırınregisterReceiver:

@Override
public void onCreate() {
  super.onCreate();
  MAMComponents.get(MAMNotificationReceiverRegistry.class)
    .registerReceiver(
      new ToastNotificationReceiver(),
      MAMNotificationType.WIPE_USER_DATA);
}

Uygulamanızın MAMNotificationReceiver uygulaması yöntemini içermelidir onReceive(MAMNotification notification) . Bu yöntem, alınan her bildirim için ayrı ayrı çağrılır ve bir booleandöndürmelidir. Genellikle, uygulamanız bir bildirime yanıt verirken bir hatayla karşılaşmadığı sürece bu yöntem her zaman döndürmelidir true.

Diğer Android alıcı türlerinde olduğu gibi, uygulamanızın bildirimleri işleme esnekliği vardır:

  • Ayrı bildirim türleri için ayrı MAMNotificationReceiver uygulamaları oluşturabilir (aşağıda açıklanmıştır). Bu durumda, her uygulamayı ve her bildirim türünü ayrı ayrı kaydettiğinizden emin olun.
  • Birden çok ayrı bildirim türüne yanıt vermek için mantık içeren tek bir MAMNotificationReceiver uygulaması kullanabilir. Bu durumda, yanıt verebileceği her bildirim türü için kayıtlı olmalıdır.
  • Her birinde aynı bildirim türüne yanıt veren birden çok MAMNotificationReceiver uygulaması oluşturabilir. Bu durumda, her ikisinin de aynı bildirim türüne kaydedilmesi gerekir.

İpucu

Kullanıcı arabirimi iş parçacığında MAMNotificationReceiver.onReceive geri çağırması çalışmadığından, bunu engellemek güvenlidir.

Özel Temalar

Intune Uygulama SDK'sına özel bir tema sağlanabilir; bu özel tema tüm SDK ekranlarına ve iletişim kutularına uygulanır. Tema sağlanmazsa varsayılan SDK teması kullanılır.

Özel Tema Sağlama

Tema sağlamak için yöntemine aşağıdaki kod Application.onMAMCreate satırını eklemeniz gerekir:

MAMThemeManager.setAppTheme(R.style.AppTheme);

Yukarıdaki örnekte, yerine R.style.AppTheme SDK'nın uygulanmasını istediğiniz stil temasını eklemeniz gerekir.

Güvenilen Kök Sertifika Yönetimi

Uygulamanız iç web sitelerine ve uygulamalara güvenli erişim sağlamak için şirket içi veya özel bir sertifika yetkilisi tarafından verilen SSL/TLS sertifikalarını gerektiriyorsa, Intune Uygulama SDK'sı MAMTrustedRootCertsManager ve MAMCertTrustWebViewClient API sınıflarını kullanarak sertifika güven yönetimi desteği eklemiştir.

Not

MAMCertTrustWebViewClient , Android 10 veya üzerini destekler.

Güvenilen Kök Sertifika Yönetimi aşağıdakiler için destek sağlar:

  • SSLContext
  • SSLSocketFactory
  • TrustManager
  • Webview

Gereksinimler

Not

Güvenilen Kök Sertifika Yönetimi, Microsoft Tunnel VPN Gateway bağımsız olarak kullanılabilir, ancak Microsoft MAM Tunnel'ı kullanmak üzere lisanslamalısınız.

Güven Bağlayıcıları Oluşturmak için Intune'dan Güvenilen Kök Sertifikaları Kullanma

Güvenilen Kök Sertifika Yönetimi, uygulamanızın Intune'dan gelen güvenilen kök sertifikaları cihazdaki sertifikalarla birlikte kullanmasına olanak tanır.

MAMTrustedRootCertsManager ve MAMCertTrustWebViewClient API sınıfları, cihazın güvenilen kök sertifika depoları şirket içi kaynaklara güvenli bir bağlantı kurmak için gerekli güvenilen kök sertifikaları içermiyorsa, Uygulama Yapılandırması İlkesi aracılığıyla teslim edilen Intune güvenilen kök sertifikalarını geri dönüş seçeneği olarak kullanır. Bu şekilde, uygulama güvenli bağlantıları ve güvenilir kaynaklarla iletişimi doğrulamak için hem cihaz hem de Intune sertifikalarını kullanabilir.

Bir uygulama, ağ güvenlik ayarlarını geliştirmek için Ağ Güvenliği Yapılandırması XML dosyasını kullanabilir. Güvenilen Kök Sertifika Yönetimi, uygulamanın Ağ Güvenlik Yapılandırması XML'sinin şu özelliklerden herhangi birine sahip olup olmadığını doğrulayarak bu ek güvenliğe saygılıdır:

  • Otomatik olarak imzalanan sertifikalar gibi ek CA'lara sahip özel güven bağlayıcıları.
  • Güvenilen CA'ları sınırlamak için etki alanına özgü kurallar.
  • Belirli etki alanları için sertifika kümeleri sabitleyin.

Not

Android Ağ Güvenliği Yapılandırması hakkında daha fazla bilgi için: Ağ güvenlik yapılandırması

Bunlardan herhangi biri güven denetimi yapılan bir etki alanı için geçerliyse, Güvenilen Kök Sertifika Yönetimi bu etki alanı için özel güven denetimlerini atlar ve denetimleri yalnızca platformun varsayılan güven yöneticilerinin yapmasına izin verir.

MAMTrustedRootCertsManager Sınıfı

Bu sınıf aşağıdaki API'leri sağlar:

  • createSSLContext(String identity, String protocol): belirtilen kimlik ve belirtilen SSL/TLS protokolü için güvenilen kök sertifikaları kullanan bir SSLContext nesne oluşturur. Bu sınıftan döndürülen SSLContext nesne, cihazdan ve MAM hizmetinden birleştirilmiş güvenilen kök sertifikaları kullanan nesnelerle X509TrustManager zaten doğru şekilde başlatılmış.
  • createSSLSocketFactory(String identity, String protocol): belirtilen kimlik ve belirtilen SSL/TLS protokolü için güvenilen kök sertifikaları kullanan bir SSLSocketFactory nesne oluşturur. Döndürülen SSLSocketFactory nesneye bu sınıftaki aynı SSLContext nesneden başvurulur.
  • createX509TrustManagers(String identity): belirtilen kimlik için cihazdan X509TrustManager ve MAM hizmetinden birleştirilmiş güvenilen kök sertifikaları kullanan bir nesne dizisi oluşturur.

Not

parametresinin identity uygulamayı çalıştıran belirli bir kullanıcının UPN'leri gibi bir dize tanımlayıcısı olması beklenir. Kullanıcı tanımlayıcısının önceden bilinmediği durumlarda, null değeri geçirilebilir ve MAM bu API'lerin çağrıldığı iş parçacığından veya işlemden doğru kimliği bulmaya çalışır. MAM'ın kimliği bulması için işlemde veya iş parçacığında kimliğin doğru ayarlanması gerekir. Bir işlem veya iş parçacığında etkin kimliği ayarlama hakkında daha fazla bilgi edinmek için şu adresi ziyaret edin: 5. Aşama: Çoklu Kimlik

Not

protocol Parametresi sağlanmadığında platformda desteklenen en yüksek SSL/TLS protokolü kullanılır.

Bu sınıfın kullanımına bazı örnekler aşağıda verilmiştir.

HttpsUrlConnection Kullanma Örneği
// Create an SSL socket factory using supplying the optional parameters identity and protocol
SSLSocketFactory sslSocketFactory = MAMTrustedRootCertsManager.createSSLSocketFactory(identity, "TLSv1.3");

// Create a URL object for the desired endpoint
URL url = new URL("https://example.com");

// Open a connection using the URL object
HttpsURLConnection httpsURLConnection = (HttpsURLConnection) url.openConnection();

// Set the SSL socket factory for the connection
httpsURLConnection.setSSLSocketFactory(sslSocketFactory);

// Perform any other configuration or operations on the connection as needed
...
OkHttpClient Kullanma Örneği
// Get the TrustManager instances for an identity from the SDK
TrustManager[] trustManagers = MAMTrustedRootCertsManager.createX509TrustManagers(identity);

// Get SSLContext from the platform
SSLContext sslContext = SSLContext.getInstance("TLSv1.3");

// Initialize the SSLContext with the trust managers from the Intune App SDK
sslContext.init(null, trustManagers, null);  

// Create an OkHttpClient.Builder object
OkHttpClient.Builder builder = new OkHttpClient.Builder();

// Set the SSLSocketFactory and the trust managers from the SDK
builder.sslSocketFactory(sslContext.socketFactory, trustManagers[0] as X509TrustManager).build();

// Build an OkHttpClient object from the builder
OkHttpClient okHttpClient = builder.build();

// Create a Request object for the desired endpoint
Request request = new Request.Builder().url("https://example.com").build();

// Execute the request using the OkHttpClient object and get a Response object
Response response = okHttpClient.newCall(request).execute();

// Perform any other operations on the response as needed
...

MAMCertTrustWebViewClient Sınıfı

Bu sınıf, içinde SSL hatasını android.net.http.SslError.SSL_UNTRUSTEDWebViewişlemek için bir yol sağlayan Android sınıfının android.webkit.WebViewClient özel bir uygulamasını sağlar. Hatanın işlenmesinde, sınıfı Intune'da yapılandırılan ve IÇINDE SSL hatasını WebViewoluşturan hedef URL'den konağın güvenilirliğini denetlemek için MAM hizmetinden alınan güvenilen kök sertifikaları kullanır. Özel uygulama SSL hatasını işlemezse, üst sınıftan devralınan varsayılan davranış çağrılır. Bu sınıfı kullanırken, bunun bir örneğini oluşturup bir örneğe kaydetmek WebView için çağrısı WebView.setWebViewClient(WebViewClient) yapmalısınız.

Bu sınıfı kullanma örneği aşağıda verilmiştir.

WebView Kullanma Örneği
// Get the MAM implementation of WebViewClient from the Intune App SDK
MAMCertTrustWebViewClient mamCertTrustWebViewClient = new MAMCertTrustWebViewClient();

// Set the MAM WebViewClient from the SDK as the current handler on the instance of WebView
webView.setWebViewClient(mamCertTrustWebViewClient);

// Perform any other operations on WebView
...

Çıkış Ölçütleri

Test kolaylığı için değişen ilkeyle hızlı test etme bölümüne bakın.

Kısıtlamaların kaydedilip açılması doğrulanıyor

Uygulamalar ve cihaz veya bulut depolama konumları arasında veri aktarımını sınırlamak için İlke uygulamadıysanız atlayın.

Uygulamanızın bulut hizmetlerine veya yerel verilere veri kaydedebildiği ve bulut hizmetlerinden veya yerel verilerden veri açabildiği her senaryoyu yeniden öğrenin.

Kolaylık olması için bu testlerde uygulamanızın yalnızca uygulama içindeki tek bir konumdan OneDrive İş verileri kaydetme ve açma desteği içerdiği varsayılır. Ancak, her birleşimi doğrulamanız gerekir: uygulamanızın veri kaydetmeye izin verdiği her yerde desteklenen her kaydetme konumu ve uygulamanızın verileri açmaya izin verdiği her yerde desteklenen her açık konum.

Bu testler için uygulamanızı ve Intune Şirket Portalı yükleyin; teste başlamadan önce yönetilen bir hesapla oturum açın. Ayrıca:

  • Yönetilen hesabın ilkesini şu şekilde ayarlayın:
    • "Kuruluş verilerini diğer uygulamalara gönder", "İlkeyle yönetilen uygulamalar".
    • "Diğer uygulamalardan veri alma" için "İlkeyle yönetilen uygulamalar" seçeneğine gidin.
Senaryo Önkoşulları Adımlar
Kaydetmeye, tam olarak izin verilir "Kuruluş verilerinin kopyalarını kaydet" ilkesi "İzin Ver" olarak ayarlandı - Uygulamanızın verileri OneDrive İş kaydedebileceği yere gidin.
- Belgeyi uygulamanızda oturum açmış olan yönetilen hesaba OneDrive İş kaydetmeyi deneme.
- Kaydetmeye izin verildiğinden emin olarak.
Kaydedilecek, muaf tutulacak - "Kuruluş verilerinin kopyalarını kaydet" ilkesi "Engelle" olarak ayarlandı
- "Kullanıcının seçili hizmetlere kopya kaydetmesine izin ver" ilkesi yalnızca "OneDrive İş" olarak ayarlanmış
- Uygulamanızın verileri OneDrive İş kaydedebileceği yere gidin.
- Belgeyi uygulamanızda oturum açmış olan yönetilen hesaba OneDrive İş kaydetmeyi deneme.
- Kaydetmeye izin verildiğinden emin olarak.
- Uygulamanız izin veriyorsa dosyayı farklı bir bulut depolama konumuna kaydetmeyi ve engellendiğini onaylamayı dener.
Kaydet, engellendi "Kuruluş verilerinin kopyalarını kaydet" ilkesi "Engelle" olarak ayarlandı - Uygulamanızın verileri OneDrive İş kaydedebileceği yere gidin.
- Belgeyi uygulamanızda oturum açmış olan yönetilen hesaba OneDrive İş kaydetmeyi deneme.
- Kaydetmenin engellendiğini onaylayın.
- Uygulamanız izin veriyorsa dosyayı farklı bir bulut depolama konumuna kaydetmeyi ve engellendiğini onaylamayı dener.
Açık, tam olarak izin verilen "Verileri Kuruluş belgelerinde aç" ilkesi "İzin Ver" olarak ayarlandı - Uygulamanızın verileri OneDrive İş açabileceği yere gidin.
- Uygulamanızın depolama alanına oturum açmış olan yönetilen hesaptan OneDrive İş bir belge açmayı deneme.
- Açma izninin olduğunu onaylayın.
Açık, muaf - "Verileri Kuruluş belgelerine aç" ilkesi "Engelle" olarak ayarlandı
- "Kullanıcıların seçili hizmetlerden veri açmasına izin ver" ilkesi yalnızca "OneDrive İş" olarak ayarlanır
- Uygulamanızın verileri OneDrive İş açabileceği yere gidin.
- Uygulamanızın depolama alanına oturum açmış olan yönetilen hesaptan OneDrive İş bir belge açmayı deneme.
- Açma izninin olduğunu onaylayın.
- Uygulamanız izin veriyorsa farklı bir bulut depolama konumundan başka bir dosya açmayı deneyin ve engellendiğini onaylayın.
Açık, engellenmiş "Verileri Kuruluş belgelerine aç" ilkesi "Engelle" olarak ayarlandı - Uygulamanızın verileri OneDrive İş açabileceği yere gidin.
- Uygulamanızın depolama alanına oturum açmış olan yönetilen hesaptan OneDrive İş bir belge açmayı deneme.
- Açmanın engellendiğini onaylayın.
- Uygulamanız izin veriyorsa farklı bir bulut depolama konumundan başka bir dosya açmayı deneyin ve engellendiğini onaylayın.

Bildirim kısıtlamalarını doğrulama

Bildirimlerin içindeki içeriği kısıtlamak için İlke uygulamadıysanız atlayın.

Uygulama Koruma İlkesi söz konusu olduğunda, uygulamanız üç farklı türde bildirim tetiklenebilir:

  1. Hesap verileri içermeyen bildirimler.
  2. Yönetilen hesaba ait verileri içeren bildirimler.
  3. Yönetilmeyen bir hesaba ait verileri içeren bildirimler.

Uygulamanız tek kimlikliyse, tek hesap yönetilmezse hiçbir koruma uygulanmayacağı için yalnızca ilk 2 geçerli olur.

Bildirim kısıtlamaları, yapılandırılmış farklı ilke değerlerine sahip üç bildirim türünün tümü tetiklenerek doğrulanabilir.

Bu testler için uygulamanızı ve Intune Şirket Portalı yükleyin; teste başlamadan önce yönetilen bir hesapla oturum açın. Uygulamanız birden çok kimlikliyse, yönetilmeyen bir hesapla da uygulamanızda oturum açın.

Senaryo Önkoşulları Adımlar
Tam içerik engellendi "Kuruluş veri bildirimleri" ilkesi "Engelle" olarak ayarlandı - Hesap verileri olmadan bir bildirim başlatmak için uygulamanızı tetikleyin.
- Bu bildirimin herhangi bir içerik görüntülemediği onaylayın.
- Yönetilen hesabın verileriyle bir bildirim başlatmak için uygulamanızı tetikleyin.
- Bu bildirimin herhangi bir içerik görüntülemediği onaylayın.
- Yönetilmeyen hesabın verileriyle bir bildirim başlatmak için uygulamanızı tetikleyin.
- Bu bildirimin herhangi bir içerik görüntülemediği onaylayın.
Kısmi içerik engellendi "Kuruluş verileri bildirimleri" ilkesi "Kuruluş verilerini engelle" olarak ayarlandı - Hesap verileri olmadan bir bildirim başlatmak için uygulamanızı tetikleyin.
- Bu bildirimin içeriğinin tamamını görüntülediğine onaylayın.
- Yönetilen hesabın verileriyle bir bildirim başlatmak için uygulamanızı tetikleyin.
- Bu bildirimin yönetilen hesabın içeriğini yeniden dağıtarak onaylayın.
- Yönetilmeyen hesabın verileriyle bir bildirim başlatmak için uygulamanızı tetikleyin.
- Bu bildirimin içeriğinin tamamını görüntülediğine onaylayın.
engellenen içerik yok "Kuruluş veri bildirimleri" ilkesi "İzin Ver" olarak ayarlandı

Veri yedekleme ve geri yükleme doğrulama

Yedekleme verilerini korumak için İlke uygulamadıysanız atlayın.

Uygulamanızın yedekleme için yapılandırdığı içeriği (dosyalar ve/veya anahtar-değer çiftleri) yeniden tanıyın. Yalnızca beklenen içeriğin geri yüklemenin bir parçası olduğunu doğrulamanız gerekir. Geri yüklemedeki ek içerik veri sızıntısına yol açabilir.

Bu testler için uygulamanızı ve Intune Şirket Portalı yükleyin; teste başlamadan önce yönetilen bir hesapla oturum açın. Uygulamanız birden çok kimlikliyse, yönetilmeyen bir hesapla da uygulamanızda oturum açın.

Yedeklemeyi test etme için Android'in resmi yönergelerini izleyin. Bu yönergeler otomatik yedekleme ve anahtar/değer yedeklemeleri için farklılık gösterir, bu nedenle yakından izleyin.

İlkeye göre özel ekran yakalamayı doğrulama

Özel Ekran Yakalama Kısıtlamaları uygulamadıysanız atlayın.

Uygulamanızın Android Windowdüzeyinde FLAG_SECUREözelliğini atlayan bir özelliği varsa, bu özelliğin uygulama koruma ilkesi ekran yakalama kısıtlamaları tarafından engellendiğini doğrulayın.

Bu testler için uygulamanızı ve Intune Şirket Portalı yükleyin; teste başlamadan önce yönetilen bir hesapla oturum açın.

Senaryo Önkoşulları Adımlar
Ekran yakalama engellendi "Ekran yakalama ve Google Assistant" ilkesi "Engelle" olarak ayarlandı - Uygulamanızda özel FLAG_SECURE kodunuzdan yararlanan konuma gidin.
- Bu özelliği kullanmayı deneme.
- Özelliğin engellendiğini onaylayın.
Ekran yakalamaya izin verilir "Ekran yakalama ve Google Assistant" ilkesi "İzin Ver" olarak ayarlandı - Uygulamanızda özel FLAG_SECURE kodunuzdan yararlanan konuma gidin.
- Bu özelliği kullanmayı deneme.
- Özelliğe izin verildiğinden emin olup olmadığını doğrulayın.

Uygulama Koruma CA'sını Doğrulama

Destek Uygulama Koruma CA'sını uygulamadıysanız atlayın.

Uygulama ve test hesabınıza uygulama koruma ilkesi oluşturma ve atamaya ilişkin tipik doğrulama adımlarına ek olarak, test hesabınıza bir Uygulama Koruması Koşullu Erişim ilkesi oluşturup atamanız da gerekir. Ayrıntılar için bkz. Intune ile uygulama tabanlı Koşullu Erişim ilkelerini ayarlama .

Test adımları:

  1. Bu teste başlamadan önce Microsoft Authenticator'ı kaldırın ve Intune Şirket Portalı.
  2. Uygulamanızı yükleyin.
  3. Hem uygulama koruma ilkesi hem de uygulama tabanlı CA ilkesiyle hedeflenen test hesabınızla uygulamanızda oturum açın.
  4. Uygulamanızın sizden Şirket Portalı yüklemenizi isteyip istemediğinizi onaylayın.
  5. Yeniden oturum açın.
  6. Uygulamanızın cihazınızı kaydetmenizi istediğinizi onaylayın. İstemleri izleyin. Uygulamanız buradan kayıt istemezse, önce test cihazınızın SDK özellikli diğer uygulamaları, Şirket Portalı ve Authenticator'ı kaldırdığını onaylayın. Yine de sorulmazsa yukarıdaki uygulama yönergelerini yeniden ziyaret edin.
  7. Kaydoldıktan sonra tüm uygulama verilerine erişebildiğinizden emin olmanız gerekir.

Bildirim alıcılarını doğrulama

SDK'dan bildirimler için kaydolma uygulamadıysanız atlayın.

Doğrulama adımları, uygulamanızın kaydettiği bildirimlerin türüne bağlıdır. Tüm bildirim türleri için, alıcınızın düzgün bir şekilde çağrıldığından emin olmak için günlük kaydı ekleyin.

MAM_ENROLLMENT_RESULT yalnızca uygulama koruma ilkesiyle hedeflenen bir hesapla uygulamanızda oturum açarak tetiklenebilir.

REFRESH_APP_CONFIGve REFRESH_POLICY test hesabınıza hedeflenen ilgili Uygulama Yapılandırması İlkesi ve Uygulama Koruma İlkesi güncelleştirilerek ve SDK'nın güncelleştirilmiş ilkeyi alması beklenerek tetiklenebilir.

İpucu

Bu işlemi hızlandırmak için bkz . Değişen ilkeyle hızlı test etme.

MANAGEMENT_REMOVED, WIPE_USER_DATA, WIPE_USER_AUXILIARY_DATA, WIPE_COMPLETED bildirimlerinin tümü, Microsoft Intune seçmeli silme düzenlenerek tetiklenebilir.

Özel temaları doğrulama

Özel Temalar uygulamadıysanız atlayın.

Özel tema desteği, SDK'nın iletişim kutularındaki renkler incelenerek doğrulanabilir. Denetlenecek en basit iletişim kutusu MAM PIN ekranıdır.

Önkoşulları:

  • Yönetilen hesabın ilkesini şu şekilde ayarlayın:
    • "Erişim için PIN" öğesini "Gerekli" olarak ayarlayın.
  • Uygulamanızı ve Intune Şirket Portalı yükleyin.

Test Adımları:

  1. Uygulamanızı başlatın ve test hesabıyla oturum açın.
  2. MAM PIN ekranının göründüğünü ve SDK'ya sağladığınız özel temaya göre temalı olduğunu onaylayın.

Sonraki Adımlar

Bu kılavuzu sırayla izlediyseniz ve yukarıdaki tüm Çıkış Ölçütlerini tamamladıysanız tebrikler, uygulamanız artık Intune Uygulama SDK'sı ile tamamen tümleştirilmiştir ve uygulama koruma ilkelerini zorunlu kılabilir! Önceki uygulama katılımı bölümlerinden birini atladıysanız, 5. Aşama: Çoklu Kimlik ve 6. Aşama: Uygulama Yapılandırması ve uygulamanızın bu özellikleri desteklemesi gerekip gerekmediğini bilmiyorsanız SDK tümleştirmesi için Önemli Kararlar bölümünü gözden geçirin.

Uygulama koruması artık uygulamanız için temel bir senaryodur. Uygulamanızı geliştirmeye devam ettikçe bu kılavuza ve Ek'e başvurmaya devam edin.