Android için Intune Uygulama SDK'sı - Uygulama Katılımı Özellikleri

Android için Microsoft Intune Uygulama SDK'sı, yerel Java/Kotlin Android uygulamanıza Intune uygulama koruma ilkelerini (MAM ilkeleri olarak da bilinir) dahil etmenizi sağlar. Intune yönetilen bir uygulama, Intune Uygulama SDK'sı ile tümleşir. Intune yöneticileri, Intune uygulamayı etkin bir şekilde yönettiğinde uygulama koruma ilkelerini Intune 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 Hedefleri

  • Intune Uygulama SDK'sı tarafından sunulan 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 zorunluyor.

Ancak bazı ayarların düzgün şekilde uygulanması için uygulamaya özgü kod gerekir; bu ayarlara 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ı zaten çeşitli uygulama katılım özelliklerini açıklamaktadır:

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

  • Yerel veya bulut depolama alanına dosya kaydetmeyi veya dosyaları 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.
  • Intune güvenilir sertifikaları kullanarak şirket içi uç noktalara güven zinciri sağlayı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ı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 getPolicyForIdentityOID(final String oid)gibi getPolicy(final Context context)MAMPolicyManager 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ığına ilişkin veriler verir. Belirli ilkeler yapılandırıldığında uygulamanıza özel kullanıcı deneyimleri sunma fırsatı vermek için bu yöntemler vardır.

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

Uygulamanın kullanıcının ekran görüntüsü almasını sağlayan bir denetimi varsa, Uygulama Koruma İlkesi ekran görüntülerini engelliyorsa bu denetimi devre dışı bırakmayı veya gizlemeyi göz önünde bulundurun.

Uygulama çağrısı MAMPolicyManager.getPolicy(currentActivity).getIsScreenCaptureAllowed()yaparak kontrol edebilir.

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 verileri açabileceği yerleri kısıtlayarak BT yöneticilerinin veri girişine ve veri sızıntısına karşı koruma sağlamasını sağlar.

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 ve 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, getIsSaveToLocationAllowedForOID uygulamanın yapılandırılan ilkeye bağlı olarak belirli bir kimlik için belirli konumlara kaydetmeye izin verilip verilmeyeceğini bilmesini sağlar:

MAMPolicyManager.getPolicy(currentActivity).getIsSaveToLocationAllowedForOID(
SaveLocation service, String oid);

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

service Parametre: SaveLocation Sabit Listesi Değeri Kullanım Örneği İlişkili OID
ONEDRIVE Uygulama verileri OneDrive'a kaydediyor. Hem bulut hizmeti kimlik doğrulaması hem de Microsoft Entra kimlik doğrulaması için kullanılan bir hesap için OID. Bu hesap yoksa veya OID bilinmiyorsa kullanın null.
SHAREPOINT Uygulama verileri SharePoint'e kaydediyor. Hem bulut hizmeti kimlik doğrulaması hem de Microsoft Entra kimlik doğrulaması için kullanılan bir hesap için OID. Bu hesap yoksa veya OID bilinmiyorsa kullanın null.
BOX Uygulama Verileri Box'a kaydediyor. Hem bulut hizmeti kimlik doğrulaması hem de Microsoft Entra kimlik doğrulaması için kullanılan bir hesap için OID. Bu hesap yoksa veya OID bilinmiyorsa kullanın null.
LOCAL Uygulama, verileri cihazın özel depolama alanı olmayan bir dış depolama konumuna kaydediyor. Bu depolama konumu bir bulut hizmeti olarak kabul edilmez ve her zaman bir null OID parametresiyle kullanılmalıdır.
PHOTO_LIBRARY Uygulama, verileri Android yerel fotoğraf depolama alanına kaydediyor. Yerel fotoğraf depolama bir bulut hizmeti olarak kabul edilmez ve her zaman bir null OID parametresiyle kullanılmalıdır.
IMANAGE Uygulama, verileri iManage'a kaydediyor. Hem bulut hizmeti kimlik doğrulaması hem de Microsoft Entra kimlik doğrulaması için kullanılan bir hesap için OID. Bu hesap yoksa veya OID bilinmiyorsa kullanın null.
EGNYTE Uygulama, Verileri Egnyte'e kaydediyor. Hem bulut hizmeti kimlik doğrulaması hem de Microsoft Entra kimlik doğrulaması için kullanılan bir hesap için OID. Bu hesap yoksa veya OID bilinmiyorsa kullanın null.
ACCOUNT_DOCUMENT Uygulama, verileri uygulama içindeki bir hesapla ilişkili bir konuma kaydediyor ve bu tablodaki belirli bulut konumlarından biri değil.

Çok kimlikli bir uygulamadaki hesaplar arasında veri geçirilip geçirilemeyeceğini belirlemek için bu konumu kullanın.
Microsoft Entra kimlik doğrulaması için kullanılan bir hesap için OID. Bu hesap yoksa veya OID bilinmiyorsa kullanın null.
OTHER Uygulama, verileri bu tabloda belirtilmeyen ve ölçütlerini ACCOUNT_DOCUMENTkarşılamayan bir konuma kaydediyor. oid bu konum için değerlendirilmez ve olmalıdırnull.

Files uygulama işlemi için gerekli olan veya görüntü için geçici olarak indirilen özel uygulama depolama alanına yerleştirilen her zaman izin verilir; denetlemeye getIsSaveToLocationAllowedForOIDgerek yoktur. Kontrol edin SaveLocation.LOCAL

  1. Files özel uygulama depolama alanı dışında kaydedilir.
  2. Files uygulama işlemi için gerekli olmayan özel uygulama depolama alanına indirilir (örneğin, kullanıcı cihaza indirmeyi açıkça seçtiğinde).

Not

Kaydetme ilkesini denetlerken, oid kaydedilmekte olan bulut hizmetiyle ilişkili hesabın OID'sinin olması gerekir (bu hesap, kaydedilmekte olan belgenin sahibi olan hesapla aynı olmayabilir).

Yerel veya bulut depolama konumundan veri açma

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

MAMPolicyManager.getPolicy(currentActivity).getIsOpenFromLocationAllowedForOID(
OpenLocation location, String oid);

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

location Parametre: OpenLocation Sabit Listesi Değeri Kullanım Örneği İlişkili OID
ONEDRIVE_FOR_BUSINESS Uygulama, OneDrive'dan veri açıyor. Hem bulut hizmeti kimlik doğrulaması hem de Microsoft Entra kimlik doğrulaması için kullanılan bir hesap için OID. Bu hesap yoksa veya OID bilinmiyorsa kullanın null.
SHAREPOINT Uygulama SharePoint'ten veri açıyor. Hem bulut hizmeti kimlik doğrulaması hem de Microsoft Entra kimlik doğrulaması için kullanılan bir hesap için OID. Bu hesap yoksa veya OID bilinmiyorsa kullanın null.
CAMERA Uygulama, cihaz kamerasındaki verileri 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 olmasa da, sahipliği gösterdiği için bir oid parametre beklenir.

* Kimlik etiketli dosyalar için:oid dosya sahibinin kimliği olmalıdır.
* Kimlik etiketi olmayan dosyalar için:oid olmalıdır null.
LOCAL Uygulama, cihazın özel depolama alanı olmayan bir dış depolama konumundan veri açıyor. Dış depolama bir bulut hizmeti olmasa da, sahipliği gösterdiği için bir oid parametre beklenir.

* Kimlik etiketli dosyalar için:oid dosya sahibinin kimliği olmalıdır.
* Kimlik etiketi olmayan dosyalar için:oid olmalıdır null.
PHOTO_LIBRARY Uygulama, Android yerel fotoğraf depolama alanından veri açıyor. Yerel fotoğraf depolama bir bulut hizmeti olarak kabul edilmez ve her zaman bir null OID parametresiyle kullanılmalıdır.
ACCOUNT_DOCUMENT Uygulama, uygulama içindeki bir hesapla ilişkilendirilmiş bir konumdan veri açıyor ve bu tablodaki belirli bulut konumlarından biri değil.

Çok kimlikli bir uygulamadaki hesaplar arasında veri geçirilip geçirilemeyeceğini belirlemek için bu konumu kullanın.
Microsoft Entra kimlik doğrulaması için kullanılan bir hesap için OID. Bu hesap yoksa veya OID bilinmiyorsa kullanın null.
OTHER Uygulama, bu tabloda belirtilmeyen ve ölçütlerini ACCOUNT_DOCUMENTkarşılamayan bir konumdan veri açıyor. oid bu konum için değerlendirilmez ve olmalıdırnull.

Not

Açık ilkeyi denetlediğinizde, oidaçılan dosya veya bulut hizmetiyle ilişkili hesabın OID değeri 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. İlke zorlaması için, bu yöntem çağrısıyla AppPolicy.getIsOpenFromLocationAllowedForOID(OpenLocation.LOCAL, oid) işlevsel olarak aynıdır, ancak dosyasından dosya sahibinin oidFileayrıştırma işlemini işler.

Paylaşım engellendi iletişim kutusu

SDK, MAM ilkesi bir veri aktarımı eylemini engellediğinde kullanıcıyı bilgilendirmek için bir iletişim kutusu sağlar.

veya getIsOpenFromLocationAllowedForOID API çağrısı kaydetme/açma eylemi engellendiğinde iletişim kutusu kullanıcıya getIsSaveToLocationAllowedForOID gösterilmelidir. İletişim kutusu genel bir ileti görüntüler ve kapatıldığında çağrıya Activity 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ıları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 Intune Uygulama SDK'sının varsayılan davranışı, Uygulama Koruma İlkesi bildirimleri kısıtladığında 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 çok kimlikliyse ve/veya "Kuruluş verilerini engelle" değerine uyması gerekiyorsa, 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.getPolicyForIdentityOID(notificationIdentityOid).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ı kabul BLOCKED 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 için Android API kılavuzuna ve Yedekleme ve geri yüklemeyi değiştirme bölümünde Android S / 12'de sunulan değişikliklere bakın.

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 sağlar.

Intune, veri korumanın uygulandığından emin olmak için belirli Intune tümleştirme yönergeleriyle XML'de özel kurallar tanımlama özelliği de dahil olmak üzere Android'in sağladığı 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.

Uygulama tam yedekleme ve geri yükleme işlevselliği gerektirmiyorsa false olarak ayarlayınandroid:allowBackup. Bu durumda başka bir işlem yapılması gerekmez ve şirket verileri 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 adımları uygulayın:

  1. Uygulamanız kendi özel BackupAgentöğesini kullanmıyorsa, ilke uyumlu Intune otomatik tam yedeklemeleri etkinleştirmek 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. Isteğe bağlı. Özel BackupAgentbir uygularsanız MAMBackupAgent veya MAMBackupAgentHelper kullanmanız gerekir. Aşağıdaki bölümlere bakın. Android M ve sonraki sürümlerde kolay yedekleme sağlayan 1. adımda açıklanan Intune MAMDefaultBackupAgent'a geçmeyi göz önünde bulundurun.

  3. Uygulamanızın hangi tam yedekleme türünü (filtrelenmemiş, filtrelenmiş veya hiçbiri) alacağına karar vediğinizde, özniteliğini android:fullBackupContenttrue, falseveya uygulamanızda bir XML kaynağı olarak ayarlayın.

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

    • Ö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 özelliğini kullanmasını ve ilke uyumlu, otomatik yedeklemeler Intune tamamen 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 BackupAgent'dan daha kolaydır. BackupAgentHelper, geliştiricinin tüm dosyaları ve paylaşılan tercihleri oluşturma sırasında BackupAgentHelper'a eklenen ve FileBackupHelperSharedPreferencesBackupHelper (sırasıyla) olarak kaydetmesine olanak tanır. Intune MAM ile BackupAgentHelper kullanmak için şu adımları izleyin:

  1. bir ile BackupAgentHelperçok kimlikli yedekleme 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önergeleri izleyerek çok kimlikli yedekleme ve geri yükleme işlemlerini başarılı bir şekilde gerçekleştirebilirsiniz.

BackupAgent

BackupAgent, hangi verilerin yedeklendiği konusunda çok daha açık olmanıza olanak tanır. Uygulamadan geliştirici sorumlu olduğundan, Intune uygun veri korumasını sağlamak için daha fazla adım gerekir. Çalışmanın çoğu geliştirici olarak sizin üzerinize olduğundan, Intune tümleştirme 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 izin verilip verilmediğini denetleyin. Bu davranışı belirlemek için MAMFileProtectionManager ve MAMDataProtectionManager içinde 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 yöntem otomatik olarak yeni yedekleme varlıkları oluşturur ve bunları sizin için öğesine BackupDataOutput yazar. Bu varlıklar geri yükleme sırasında otomatik olarak tüketilir.

Ç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 başarılı bir geri yükleme gerçekleştirmek için bu kod örneğinde sağlanan genel yapıyı izlemeniz ve aşağıdaki noktalara özellikle dikkat etmeniz gerekir:

  1. Yedekleme varlıklarını gözden geçirebilmek için * 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 olmadan geri yüklemeleriniz başarılı olmayabilir.

  3. * yapısında while(data.readNextHeader())yedekleme varlıklarını kullanırken geri dönmekten kaçının çünkü bu durumda otomatik olarak yazdığımız tüm varlıklar kaybolur.

  • Burada data , uygulamanın geri yükleme sırasında aldığı MAMBackupDataInput 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

Uygulama herhangi bir özel veya Microsoft dışı ekran yakalama özelliği içermiyorsa, ekran yakalamaları kısıtlamak için herhangi bir eylem 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 işlemi 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), kaynaklara erişimi kısıtlar. Intune Uygulama Koruma İlkeleri bu kaynaklara erişebilmesi için uygulamanızı yönetmelidir. Microsoft Entra ID, koşullu erişim korumalı bir kaynağa erişmek için belirteç sağlamadan önce uygulamanın Intune Uygulama Koruma İlkeleri'ne kaydolmasını ve bu ilke tarafından yönetilmesini zorunlu kılarak bu ilkeyi uygular.

Not

App Protection CA desteği için Microsoft Kimlik Doğrulama Kitaplığı (MSAL) sürüm 1.0.0 veya üzeri gerekir.

MSAL ile uyumsuzluğu işleme

Uygulama bir hesap için belirteç edindiğinde, MSAL kitaplığı uygulama koruma ilkesi yönetimiyle uyumsuzluğu göstermek için bir MsalIntuneAppProtectionPolicyRequiredException döndürebilir veya bir verebilir. Uyumluluğu düzeltmek için özel durumdan daha fazla parametre ayıklayabilirsiniz (bkz. MAMComplianceManager). Düzeltme başarılı olduktan sonra uygulama, MSAL aracılığıyla belirteç alımını yeniden deneyebilir.

MAMComplianceManager

MSAL'den ilke için gerekli hata alındığında MAMComplianceManager arabirimi kullanılır. Uygulamayı uyumlu duruma getirmek için çağırmanız gereken [remediateCompliance] yöntemini içerir. için aşağıdaki gibi bir başvuru MAMComplianceManager alabilirsiniz:

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öntemi, remediateCompliance() Microsoft Entra ID istenen belirteci verme koşullarını karşılamak için uygulamayı yönetim altına alma girişiminde bulunur. İlk dört parametre, MSAL AuthenticationCallback.onError() yönteminin aldığı özel durumdan ayıklanabilir. Son parametre, uyumluluk girişimi sırasında kullanıcı deneyiminin görünüp görünmediğini denetleyen bir boole değeridir.

remediateCompliance uygulamaların bu işlem sırasında özelleştirilmiş deneyimler 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. Daha fazla ayrıntı 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 adlı yöntemine sahiptir acquireToken() . acquireToken() uygulama kendi belirtecini almadan önce çağrılır. Başarılı bir belirteç alımından sonra uygulamanın yaptığı herhangi bir defter tutma 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 devam eder.

Not

Özel durum oluşmadan önce MsalIntuneAppProtectionPolicyRequiredException kullanıcının aracıyı yüklemesi ve cihazı kaydetmesi için zaten yönlendirildiği için sessiz belirteç alma işlemi yine de mümkündüracquireToken(). Bu işlem, aracının önbelleğinde geçerli bir yenileme belirteci olmasıyla sonuçlanır ve bu da aracının istenen belirteci sessizce almasını sağlar.

Burada, yönteminde AuthenticationCallback.onError() ilke için gerekli hatayı alan ve hatayı işlemek için MAMComplianceManager'ı çağıran bir örnek 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 sistem, uyumluluk düzeltme girişiminin son durumunu uygulamaya bildirmek için bir MAMComplianceNotification gönderir. 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 durum beklenmeyen bir hata nedenini gösterebilir. daha fazla bilgi Ş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. ek MAMComplianceNotification hata bilgilerini içerir.
SERVICE_FAILURE Intune hizmetinden uyumluluk verileri alınmaya çalışılıyorken bir hata oluştu. daha fazla bilgi Ş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 Eksik veya yanlış kullanıcı belirteci gibi istemciyle ilgili bir sorun nedeniyle uyumluluğu düzeltme girişimi başarısız oldu. daha MAMComplianceNotification fazla hata bilgisi içerir.
PENDING Hizmet, süre sınırı sona ermeden önce durum yanıtını göndermediğinden uyumluluğu düzeltme girişimi başarısız olur. 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. Zaten yüklüyse, uygulamanın yeniden başlatılması gerekir. Bir iletişim kutusu kullanıcıdan uygulamayı yeniden başlatmasını ister.

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. Uygulama çoğu hata sorununu çözemiyor. Genel olarak, hesap oluşturmayı veya oturum açmayı başarısız yapın ve kullanıcının daha sonra yeniden denemesine izin verin.

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 eksik olmasına neden olabilecek bir yarış durumundan kaçınmak için aramadan remediateCompliance() önce bildirim alıcısını kaydetmeniz 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 uygulamasında yapmak için Public Client'ı "protapp" İstemci Özellikleri ile derleyin

{
      "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"
          }
        }
      ]
    }

Adımlar tamamlandıktan sonra 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 'ye 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, hızlı bir şekilde başarısız olursa remediateCompliance() bildirimin yanıtsız bırakılacağı bir yarış durumunu önler. Ö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 gelen bildirimlere kaydolması gerekebileceği çeşitli senaryolar ele alınmaktadı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, tek bir kimliğe özgü bilgiler sağlayan MAMUserNotification örnekleridir. Kimliğin OID'i işlevi aracılığıyla getUserOid() alınabilir ve kimliğin UPN'i aracılığıyla getUserIdentity()alınabilir.

MAMEnrollmentNotification ve MAMComplianceNotification , bir kullanıcıyı veya cihazı MAM hizmetine kaydetme girişimlerine yönelik sonuçları ve app protection CA uyumluluğunu düzeltme girişimlerinin sonuçlarını sırasıyla içeren öğesini daha da 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. bkz. MANAGEMENT_REMOVED. 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ın önbelleğe alınan uygulama yapılandırma verilerini geçersiz kılıp yenilemesi gerekir. 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 üzeredir. 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 üzeredir. 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ı. Tüm uygulamalar için isteğe bağlı. veya WIPE_USER_AUXILIARY_DATAsonrasında WIPE_USER_DATA teslim edildi.
Uygulama silme 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önetilmemek üzere olduğunu bildirir. Hesap yönetilmedikten sonra uygulama artık bu hesabın şifrelenmiş dosyalarını okuyamıyor, hesabın ile MAMDataProtectionManagerşifrelenen verilerini okuyamıyor, şifrelenmiş panoyla etkileşim kuramıyor veya yönetilen uygulama ekosisteminde başka bir şekilde katılamıyor.

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ğrudur:

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

  • Alıcı yönteminin oluşturduğu yeni dosyalar veya korumalı veri arabellekleri (veya alıcı başlatıldıktan sonra çalışan diğer kodlar) ş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ı döndükten sonra artık şifreleme anahtarlarına erişimi olmaz.

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ı yapar ve bir booleandöndürmesi gerekir. 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. 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

Geri çağırma kullanıcı arabirimi iş parçacığında MAMNotificationReceiver.onReceive ç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ı ve iletişim kutuları için geçerlidir. 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ı ekleyin:

MAMThemeManager.setAppTheme(R.style.AppTheme);

Örnekte öğesini SDK'nın uygulayacağı stil temasıyla değiştirin R.style.AppTheme .

Güvenilen Kök Sertifika Yönetimi

Uygulama, 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ıyla 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'nden 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 Güvenilen Kök Sertifikaları Kullanma

Güvenilen Kök Sertifika Yönetimi, uygulamanızın Intune güvenilir kök sertifikalarını 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ı duyuyor:

  • Otomatik olarak imzalanan sertifikalar gibi ek CA'lara sahip özel güven tutturucuları.
  • 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 bkz. 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:

  • createSSLContextForOID(String oid, 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ış.
  • createSSLSocketFactoryForOID(String oid, 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.
  • createX509TrustManagersForOID(String oid): belirtilen kimlik için cihazdan X509TrustManager ve MAM hizmetinden birleştirilmiş güvenilen kök sertifikaları kullanan bir nesne dizisi oluşturur.

Not

oid Parametresinin, uygulamayı çalıştıran belirli bir kullanıcı için Microsoft Entra kullanıcı kimliği (OID) olması beklenir. Kullanıcı tanımlayıcısı önceden bilinmiyorsa değerini geçirebilirsiniz null 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 için bkz. 5. Aşama: Çoklu Kimlik.

Not

Parametresi sağlanmayan protocol platform, desteklenen en yüksek SSL/TLS protokollerini kullanı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.createSSLSocketFactoryForOID(oid, "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.createX509TrustManagersForOID(oid);

// 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, Android sınıfının android.webkit.WebViewClientözel bir uygulamasını sağlar. sınıfı, içindeki WebViewSSL hatasını android.net.http.SslError.SSL_UNTRUSTED işlemek için bir yol sağlar.

Hata işlenirken sınıfı, Intune yapılandıran ve MAM hizmetinin sağladığı güvenilen kök sertifikaları kullanır. Bu yaklaşım, içinde SSL hatasını WebViewoluşturan hedef URL'den konağın güvenilirliğini denetler. Özel uygulama SSL hatasını işlemezse, sistem üst sınıftan devralınan varsayılan davranışı çağırır.

Bu sınıfı kullandığınızda, bir örneğini oluşturun ve bir örneğe kaydetmek için çağrısı WebView.setWebViewClient(WebViewClient) yapın WebView .

Bu sınıfın kullanımına bir örnek aşağıda verilmiştır.

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

Daha fazla bilgi için bkz . Test kolaylığı için değişen ilkeyle hızlı test etme.

Kısıtlamaları kaydetme ve açma işlemlerini doğrulama

Uygulamalar ve cihaz veya bulut depolama konumları arasında veri aktarımını sınırlamak için İlke uygulamadıysanız bu bölümü 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 OneDrive'a kaydetme ve uygulama içindeki tek bir konumdan veri 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. Tesis:

  • Yönetilen hesabın ilkesini şu şekilde ayarlayın:
    • "Kuruluş verilerini diğer uygulamalara gönder", "İlkeyle yönetilen uygulamalar" olarak ayarlanır.
    • "Diğer uygulamalardan veri alma" "İlkeyle yönetilen uygulamalar" olarak ayarlanır.
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'a kaydedebileceği bölümüne gidin.
- Uygulamanızda oturum açmış olan yönetilen hesabı kullanarak belgeyi OneDrive'a 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 ayarlandı
- Uygulamanızın Verileri OneDrive'a kaydedebileceği bölümüne gidin.
- Uygulamanızda oturum açmış olan yönetilen hesabı kullanarak belgeyi OneDrive'a kaydetmeyi deneme.
- Kaydetmeye izin verildiğinden emin olarak.
- Uygulamanız izin veriyorsa dosyayı farklı bir bulut depolama konumuna kaydetmeyi ve engellendiğini onaylamayı denemeniz gerekir.
Kaydet, engellendi "Kuruluş verilerinin kopyalarını kaydet" ilkesi Engelle olarak ayarlandı - Uygulamanızın Verileri OneDrive'a kaydedebileceği bölümüne gidin.
- Uygulamanızda oturum açmış olan yönetilen hesabı kullanarak belgeyi OneDrive'a kaydetmeyi deneme.
- Kaydetmenin engellendiğini onaylayın.
- Uygulamanız izin veriyorsa dosyayı farklı bir bulut depolama konumuna kaydetmeyi ve engellendiğini onaylamayı denemeniz gerekir.
Açık, tam olarak izin verilen "Verileri Kuruluş belgelerinde aç" ilkesi İzin Ver olarak ayarlandı - Uygulamanızın OneDrive'dan veri açabildiği bölümüne gidin.
- OneDrive'dan bir belgeyi, uygulamanızın depolama alanına oturum açmış aynı yönetilen hesabı kullanarak 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 ayarlandı
- Uygulamanızın OneDrive'dan veri açabildiği bölümüne gidin.
- OneDrive'dan bir belgeyi, uygulamanızın depolama alanına oturum açmış aynı yönetilen hesabı kullanarak 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ş belgelerinde aç" ilkesi Engelle olarak ayarlandı - Uygulamanızın OneDrive'dan veri açabildiği bölümüne gidin.
- OneDrive'dan bir belgeyi, uygulamanızın depolama alanına oturum açmış aynı yönetilen hesabı kullanarak 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 bu bölümü atlayın.

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

  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 yalnızca ilk ikisi geçerlidir, çünkü tek hesap yönetilmezse hiçbir koruma uygulanmaz.

Farklı ilke değerleri yapılandırılmış üç bildirim türünü de tetikleyerek bildirim kısıtlamalarını doğrulayabilirsiniz.

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.
- 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.
- 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.
- Bildirimin herhangi bir içerik görüntülemediği onaylayın.
Kısmi içerik engellendi "Kuruluş veri bildirimleri" ilkesi Kuruluş verilerini engelle olarak ayarlandı - Hesap verileri olmadan bir bildirim başlatmak için uygulamanızı tetikleyin.
- 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.
- 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.
- 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ı - Hesap verileri olmadan bir bildirim başlatmak için uygulamanızı tetikleyin.
- 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.
- Bildirimin içeriğinin tamamını görüntülediğine onaylayın.
- Yönetilmeyen hesabın verileriyle bir bildirim başlatmak için uygulamanızı tetikleyin.
- Bildirimin içeriğinin tamamını görüntülediğine onaylayın.

Veri yedekleme ve geri yükleme doğrulama

Yedekleme verilerini korumak için İlke uygulamadıysanız bu bölümü atlayın.

Uygulamanızın yedekleme için yapılandırmış olduğu içerikle (dosyalar ve anahtar-değer çiftleri) kendinizi yeniden anlayı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 bunları yakından izleyin.

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

Özel Ekran Yakalama Kısıtlamaları uygulamadıysanız bu bölümü 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ızın özel FLAG_SECURE kodu kullanan bölümüne gidin.
- Bu özelliği kullanmayı dene.
- Özelliğin engellendiğini onaylayın.
Ekran yakalamaya izin verilir "Ekran yakalama ve Google Assistant" ilkesi İzin Ver olarak ayarlandı - Uygulamanızın özel FLAG_SECURE kodu kullanan bölümüne gidin.
- Bu özelliği kullanmayı dene.
- Ö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 bu bölümü 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 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 kaydetme uygulamadıysanız bu bölümü atlayın.

Doğrulama adımları, uygulamanızın kaydettiği bildirim türlerine 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 uygulama koruma ilkesinin hedeflediği bir hesapla uygulamanızda oturum açarak tetiklenebilir.

Test hesabınızı hedefleyen ilgili Uygulama Yapılandırması İlkesini ve Uygulama Koruma İlkesini güncelleştirerek ve SDK'nın güncelleştirilmiş ilkeyi almasını bekleyerek ve tetikleyebilirsiniz REFRESH_APP_CONFIGREFRESH_POLICY.

İpucu

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

Microsoft Intune seçmeli silme işlemi yaparak , WIPE_USER_DATA, WIPE_USER_AUXILIARY_DATAve WIPE_COMPLETED bildirimlerini tetikleyebilirsinizMANAGEMENT_REMOVED.

Özel temaları doğrulama

Özel Temalar uygulamadıysanız bu bölümü atlayın.

SDK iletişim kutularındaki renkleri inceleyerek özel tema desteğini doğrulayabilirsiniz. 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" "Gerekli" olarak ayarlanır.
  • 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 bu makalenin önceki bölümlerinde yer alan Tüm Çıkış Ölçütlerini tamamladıysanız, 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.