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

Android için Microsoft Intune Uygulama SDK'sı, Intune uygulama koruma ilkelerini (MAM ilkeleri olarak da bilinir) yerel Java/Kotlin Android uygulamanıza dahil etmenize olanak tanır. Bir IntuneIntune-managed uygulaması, IntuneIntune App SDK ile tümleştirilir. IntuneIntune yöneticileri, IntuneIntune uygulamayı etkin olarak yönettiğinde, IntuneIntune-managed app to your IntuneIntune-managed app.

Not

Bu kılavuz birkaç ayrı aşamaya ayrılmıştır. Entegrasyonu Planlama bölümünü gözden geçirerek 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ızla ve kullanıcılarınızla ilgili uygulama katılım özelliklerini entegre edin.
  • Bu özelliklerin tümleştirmesini test edin.

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

Bu SDK tümleştirme işlemi, geliştiricilerin yazması gereken uygulamaya özgü kod miktarını en aza indirmeye çalışır. SDK tümleştirmesinin önceki aşamalarını başarıyla tamamlayan 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 çoğu uygulama koruma ilkesi ayarını zorunlu kılar.

Ancak, bazı ayarların düzgün bir şekilde uygulanması için uygulamaya özgü kod gerekir; Bu ayarlara uygulama katılım özellikleri adı verilir. Genellikle SDK, bu ayarları otomatik olarak uygulamak için uygulamanızın kodu veya son kullanıcı senaryosu hakkında yeterli bağlama sahip değildir ve bu nedenle geliştiricilerin SDK API'lerini uygun şekilde çağırmasına güvenir.

Uygulamaya katılım özelliklerinin isteğe bağlı olması gerekmez. Uygulamanızın mevcut özelliklerine bağlı olarak bu özellikler gerekli olabilir. Ayrıntılar için SDK entegrasyonu için Önemli Kararlar bölümüne bakın.

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

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

  • Yerel veya bulut depolamaya dosya kaydetmeyi veya bu depolama alanlarını açmayı kısıtlayan ilkeleri zorunlu tutun.
  • Bildirimlerdeki içeriği kısıtlayan ilkeyi zorunlu tutun.
  • Yedekleme verilerini koruyan ilkeyi zorunlu kılın.
  • Ekran yakalamayı kısıtlayan ilkeyi zorunlu kılın (uygulamanızın özel ekran yakalama kodu varsa).
  • Uygulama Koruma CA'sını destekleyin.
  • SDK'dan gelen bildirimler için kaydolun.
  • Özel uygulama teması uygulayın.
  • Intune'un güvenilen sertifikalarını kullanarak şirket içi uç noktalara güven zinciri sağlayın.

Uygulama Katılımı Özellik temelleri

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

Uygulamaya katılım özelliklerinin çoğu şunları içerir:

  • Bir eyleme izin verilip verilmediğini denetlemek için uygulama kodunda doğru yeri belirleme.
  • Şu anda yapılandırılmış ilkeye göre bir eyleme izin verilip verilmediğini denetlemek için bir AppPolicy 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 MAMPolicyManager yöntemlerinden birini kullanın, örneğin getPolicy(final Context context) , veya getPolicyForIdentityOID(final String oid).

AppPolicy'de bilgilendirici yöntemler

Her AppPolicy yöntem bir uygulamaya katılım özelliğine bağlı değildir. Bazı yöntemler bilgilendirme amaçlıdır ve uygulamanıza, şu anda hangi ilkelerin yapılandırıldığına dair veri sağlar (bu ilkeler SDK tarafından otomatik olarak zorunlu kılınsa bile). Bu yöntemler, uygulamanıza belirli ilkeler yapılandırıldığında özel kullanıcı deneyimleri sunma fırsatı vermek için vardır.

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

Uygulama, kullanıcının ekran görüntüsü almasına izin veren bir denetime sahipse, Uygulama Koruma İlkesi ekran görüntülerini engelliyorsa bu denetimi devre dışı bırakmayı veya gizlemeyi göz önünde bulundurun.

Uygulama arayarak kontrol MAMPolicyManager.getPolicy(currentActivity).getIsScreenCaptureAllowed()edebilir.

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

Birçok uygulama, son kullanıcının yerel dosya depolama veya bulut depolama hizmetlerine veri kaydetmesine veya buralardan veri açmasına olanak tanır. TIntuneIntune Uygulama SDK'sı, BT yöneticilerinin uygulamaların veri kaydedebileceği ve veri açabileceği yerleri kısıtlayarak 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 veya bulut konumlarına kaydetmeye veya verilerin doğrudan uygulamada 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 depolamasına kaydetme

API getIsSaveToLocationAllowedForOID , uygulamanın yapılandırılan ilkeye göre belirli bir kimlik için belirli konumlara kaydetmeye izin verilip verilmediğ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 Enum Değeri Kullanım Örneği İlişkili OID
ONEDRIVE Uygulama verileri OneDrive'a kaydediyor. Hem bulut hizmeti kimlik doğrulaması hem de Microsoft EntraMicrosoft Entra authentication için kullanılan bir hesabın OID'si. Bu hesap yoksa veya OID bilinmiyorsa .null
SHAREPOINT Uygulama, verileri SharePoint'e kaydetmektedir. Hem bulut hizmeti kimlik doğrulaması hem de Microsoft EntraMicrosoft Entra authentication için kullanılan bir hesabın OID'si. Bu hesap yoksa veya OID bilinmiyorsa .null
BOX Uygulama, verileri Box'a kaydediyor. Hem bulut hizmeti kimlik doğrulaması hem de Microsoft EntraMicrosoft Entra authentication için kullanılan bir hesabın OID'si. Bu hesap yoksa veya OID bilinmiyorsa .null
LOCAL Uygulama, verileri cihazda uygulamanın özel depolama alanı olmayan bir harici 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 depolaması 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 EntraMicrosoft Entra authentication için kullanılan bir hesabın OID'si. Bu hesap yoksa veya OID bilinmiyorsa .null
EGNYTE Uygulama, verileri Egnyte'a kaydediyor. Hem bulut hizmeti kimlik doğrulaması hem de Microsoft EntraMicrosoft Entra authentication için kullanılan bir hesabın OID'si. Bu hesap yoksa veya OID bilinmiyorsa .null
ACCOUNT_DOCUMENT Uygulama, verileri uygulama içindeki bir hesapla ilişkilendirilmiş konuma kaydediyor ve bu tablodaki belirli bulut konumlarından biri değil.

Çok kimlikli bir uygulama içindeki hesaplar arasında veri aktarılıp aktarılamayacağını belirlemek için bu konumu kullanın.
An OID for an account used for Microsoft EntraMicrosoft Entra authentication. Bu hesap yoksa veya OID bilinmiyorsa .null
OTHER Uygulama, verileri bu tabloda belirtilmeyen ve uygulaması ölçütlerini ACCOUNT_DOCUMENTkarşılamayan bir konuma kaydediyor. Bu oid konum için değerlendirilmedi ve null.

Uygulamanın çalışması için gerekli olan veya görüntülenmek üzere geçici olarak indirilen özel uygulama depolama alanına yerleştirilen Files her zaman izin verilir; kontrol getIsSaveToLocationAllowedForOIDetmeye gerek yok. Şunları denetle SaveLocation.LOCAL

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

Not

Kaydetme ilkesini denetlerken, oid kaydedilmekte olan bulut hizmetiyle ilişkili hesabın OID'si olmalıdır (bu hesap, kaydedilen belgenin sahibi olan hesapla aynı olmayabilir).

Verileri yerel bir konumdan veya buluttan açma

API getIsOpenFromLocationAllowedForOID , uygulamanın yapılandırılan ilkeye göre belirli bir kimlik için belirli konumlardan açılmaya izin verilip verilmediğ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şini destekleyip desteklemediğini belirleyin:

location Parametre: OpenLocation Enum Değeri Kullanım Örneği İlişkili OID
ONEDRIVE_FOR_BUSINESS Uygulama, verileri OneDrive'dan açıyor. Hem bulut hizmeti kimlik doğrulaması hem de Microsoft EntraMicrosoft Entra authentication için kullanılan bir hesabın OID'si. Bu hesap yoksa veya OID bilinmiyorsa .null
SHAREPOINT Uygulama, verileri SharePoint'ten açıyor. Hem bulut hizmeti kimlik doğrulaması hem de Microsoft EntraMicrosoft Entra authentication için kullanılan bir hesabın OID'si. Bu hesap yoksa veya OID bilinmiyorsa .null
CAMERA Uygulama, cihaz kamerasından verileri açıyor. Cihaz null kamerası bir bulut hizmeti olmadığından bir değer.
LOCAL Uygulama, cihazın özel depolama alanı olmayan bir harici depolama konumundan veriler 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:oidnullolmalıdır .
PHOTO_LIBRARY Uygulama, Android yerel fotoğraf deposundan veri açıyor. Yerel fotoğraf depolaması 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 verileri açıyor ve bu tablodaki belirli bulut konumlarından biri değil.

Çok kimlikli bir uygulama içindeki hesaplar arasında veri aktarılıp aktarılamayacağını belirlemek için bu konumu kullanın.
An OID for an account used for Microsoft EntraMicrosoft Entra authentication. Bu hesap yoksa veya OID bilinmiyorsa .null
OTHER Uygulama, bu tabloda belirtilmeyen ve dosya ölçütlerini ACCOUNT_DOCUMENTkarşılamayan bir konumdan verileri açıyor. Bu oid konum için değerlendirilmedi ve null.

Not

Açma ilkesini denetlerken, oid açılan dosya veya bulut hizmetiyle ilişkili hesabın OID'siolmalıdır (belgeyi açan hesapla aynı olması gerekmez).

İ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 AppPolicy.getIsOpenFromLocationAllowedForOID(OpenLocation.LOCAL, oid) , dosya sahibinin oidFile.

Paylaşım engellendi iletişim kutusu

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

API çağrısı kaydet/aç eyleminin engellenmesiyle sonuçlandığında getIsSaveToLocationAllowedForOIDgetIsOpenFromLocationAllowedForOID iletişim kutusu kullanıcıya gösterilmelidir. İletişim kutusunda 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

Ortak depolama konumlarına kaydetmeye izin verilmiyorsa, uygulamanız yine de kullanıcının dosyaları uygulama özel depolama alanına indirerek ve ardından 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 edemez. Çok kimlikli uygulamalar için SDK, hangi bildirimlerin yönetilen içeriğe sahip olduğunu 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 uygulanıp uygulanmadığını belirlemek için aşağıdaki çağrıyı yapın:

NotificationRestriction notificationRestriction =
    MAMPolicyManager.getPolicyForIdentityOID(notificationIdentityOid).getNotificationRestriction();

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

NotificationRestriction Numaralandırma Beklenen Uygulama Davranışı
BLOCKED Uygulama, bu ilkeyle ilişkili hesap için herhangi bir bildirim göstermemelidir . Tek kimlikli uygulamalar için, IntuneIntune Uygulama SDK'sı tüm bildirimleri otomatik olarak engeller ve ek kod gerekmez.
BLOCK_ORG_DATA Uygulamanın, kuruluş verilerini içermeyen değiştirilmiş bir bildirim göstermesi gerekir.
UNRESTRICTED Uygulamanın tüm bildirimleri göstermesi gerekir.

Uygulamanız düzgün bir şekilde çağrılmazsa getNotificationRestriction, MAM SDK'sı yalnızca tek kimlikli uygulamalar için bildirimleri otomatik olarak kısıtlamak için elinden gelenin en iyisini yapar.

Bu durumda, BLOCK_ORG_DATA aynı BLOCKED şekilde işlem yapılır ve bildirim hiç gösterilmez.

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

Yedekleme verilerini koruma ilkesi

TIntuneIntune Uygulama SDK'sı, Android'in yerleşik yedekleme ve geri yükleme özelliğine veri yüklemesini engelleyebilir. Android'de yedekleme ve geri yükleme hakkında daha fazla bilgi için, Android API kılavuzuna ve Android S / 12'de yedekleme ve geri yükleme değişikliğinde sunulan değişikliklere bakın.

Uygulamalar için Otomatik Yedekleme

Android M'den başlayarak Android, uygulamanın hedef API'sinden bağımsız olarak uygulamalar için Google Drive'a otomatik olarak tam yedeklemeler sağlar.

IntuneIntune, XML'de özel kurallar tanımlama yeteneği de dahil olmak üzere Android'in sağladığı tüm otomatik yedekleme özelliklerini, veri korumanın uygulandığından emin olmak için belirli IntuneIntune tümleştirme kılavuzuyla 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 belirtildiği gibi true olarak ayarlanır.

Uygulama tam yedekleme ve geri yükleme işlevi gerektirmiyorsa false olarak ayarlayınandroid:allowBackup. Bu durumda başka bir eylem gerekmez ve şirket verileri uygulamanın içinde kalır.

Uygulamanız tam yedekleme ve geri yükleme işlevselliği gerektiriyorsa true olarak ayarlayın android:allowBackup ve aşağıdaki adımları gerçekleştirin:

  1. Uygulamanız kendi özelini BackupAgentkullanmıyorsa, Intune ilkesiyle uyumlu 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. İsteğe bağlı. Özel bir uygulama BackupAgentuygularsanı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'ın MAMDefaultBackupAgent'ına geçmeyi düşünün.

  3. Uygulamanızın hangi tür tam yedekleme alması gerektiğine karar verdiğinizde (filtrelenmemiş, filtrelenmiş veya hiçbiri), özniteliği android:fullBackupContent , falseveya uygulamanızdaki bir XML kaynağı olarak trueayarlayın.

  4. Ardından, değerini android:fullBackupContent 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 gerekir.

    • Örnek 1: Uygulamanızın istisnalar 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 tam, IntuneIntune ilkesiyle uyumlu, otomatik yedeklemeleri devre dışı bırakmasını 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, öznitelik 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 tüm API'ler 8+ için mevcuttur ve uygulama verilerini Android Yedekleme Hizmetine yükler. Uygulama başına veri miktarı 5 MB ile sınırlıdır. Anahtar/Değer Yedekleme kullanıyorsanız, bir BackupAgentHelper veya BackupAgent kullanmanız gerekir.

BackupAgentHelper

BackupAgentHelper'ın uygulanması, hem yerel Android işlevselliği hem de Intune MAM entegrasyonu açısından BackupAgent'tan daha kolaydır. BackupAgentHelper, geliştiricinin tüm dosyaları ve paylaşılan tercihleri ve (sırasıyla) ' FileBackupHelper a kaydetmesine olanak tanır ve SharedPreferencesBackupHelper bunlar daha sonra oluşturulduktan sonra BackupAgentHelper'a eklenir. BackupAgentHelper'ı IntuneIntune MAM ile kullanmak için şu adımları izleyin:

  1. Çok kimlikli yedeklemeyi bir BackupAgentHelperile kullanmak için BackupAgentHelper'ı Genişletme 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 izlemek, başarılı bir çok kimlikli yedekleme ve geri yükleme gerçekleştirmenizi sağlar.

Yedekleme Aracısı

BackupAgent, hangi verilerin yedeklendiği konusunda çok daha açık olmanızı sağlar. Uygulamadan geliştirici sorumlu olduğundan, Intune uygun veri korumasını sağlamak için daha fazla adım gerekir. İşin çoğu geliştirici olarak size ait olduğundan, Intune entegrasyonu biraz daha fazla söz konusudur.

MAM'ı entegre edin:

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

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

Çok Kimlikli Yedekleme:

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

  2. Yedeklemeniz sırasında bir noktada, 1. adımda iade ettiğiniz dosyaların kimliklerini yedeklemek isterseniz, verileri ayıklamayı planladığınız dosyalarla çağırmanız backupMAMFileIdentity(BackupDataOutput data, File … files) gerekir. Bu yöntem otomatik olarak yeni yedekleme varlıkları oluşturur ve bunları BackupDataOutput sizin için yazar. Bu varlıklar geri yüklendikten sonra otomatik olarak tüketilir.

Çoklu Kimlik 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. Başarılı bir çok kimlikli geri yükleme gerçekleştirmek için, bu kod örneğinde sağlanan genel yapıyı aşağıdaki noktalara özellikle dikkat ederek izlemeniz gerekir:

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

  2. Yazdığınız onBackupanahtarla eşleşmiyorsa data.getKey() aramalısınızdata.skipEntityData(). Bu adım olmadan, geri yüklemeleriniz başarılı olmayabilir.

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

  • Uygulamanın geri yüklendikten sonra aldığı MAMBackupDataInput için yerel değişken adı nerededata?

Custom Screen CaptureCapture Restrictions

Uygulamanız, Android'in düzeyindeki FLAG_SECURE kısıtlamayı Windowatlayan özel bir ekran yakalama özelliği içeriyorsa, özelliğe tam erişime izin vermeden önce ekran yakalama ilkesini kontrol etmeniz gerekir. Örneğin, uygulamanız geçerli görünümü bir PNG dosyasına işlemek için özel bir işleme motoru kullanıyorsa, önce AppPolicy.getIsScreenCaptureAllowed().

Not

Uygulama herhangi bir özel veya Microsoft'a ait olmayan ekran görüntüsü özelliği içermiyorsa ekran yakalamalarını kısıtlamak için herhangi bir işlem yapılması gerekmez. Ekran yakalama ilkesi, tüm MAM tümleşik uygulamaları 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 kaydetme ö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 Koruması CA

Uygulama tabanlı CA olarak da bilinen Uygulama Koruma CA'sı (Koşullu Erişim), kaynaklara erişimi kısıtlar. IntuneIntune Uygulama Koruma İlkeleri, bu kaynaklara erişebilmesi için uygulamanızı yönetmelidir. Microsoft Entra ID, uygulamanın Koşullu Erişim korumalı bir kaynağa erişmek için belirteç vermeden önce Intune Uygulama Koruma İlkeleri'ne kaydolmasını ve bu ilkeler tarafından yönetilmesini zorunlu kılarak bu ilkeyi zorunlu kılar.

Not

Uygulama Koruma CA desteği, Microsoft Kimlik Doğrulama Kitaplığı (MSAL) sürüm 1.0.0 veya üzerini gerektirir.

MSAL ile uyumsuzluğu ele alma

Uygulama bir hesap için belirteç aldığında, MSAL kitaplığı uygulama koruma ilkesi yönetimiyle uyumsuzluğu belirtmek için bir MsalIntuneAppProtectionPolicyRequiredException döndürebilir veya atabilir. Uyumluluğu düzeltmede kullanmak 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

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

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

// make use of mgr

Döndürülen MAMComplianceManager örneğin olmadığı garanti edilir null.

package com.microsoft.intune.mam.policy;

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

YöntemremediateCompliance(), istenen belirteci vermek için Microsoft Entra IDMicrosoft Entra ID koşullarını karşılamak için uygulamayı yönetim altına almaya çalışır. İlk dört parametre, MSAL AuthenticationCallback.onError() yönteminin aldığı özel durumdan ayıklanabilir. Son parametre, uyumluluk girişimi sırasında bir kullanıcı deneyiminin görünüp görünmediğini denetleyen bir boole parametresidir.

remediateCompliance Basit bir engelleme ilerleme durumu iletişim kutusu görüntüler, böylece uygulamaların bu işlem sırasında özelleştirilmiş deneyimler göstermesi gerekmez. Bu iletişim kutusu yalnızca uyumluluk düzeltmesi sürerken görüntülenir. Nihai sonucu göstermez. Uygulamanız, uyumluluk düzeltme girişiminin COMPLIANCE_STATUS başarısını veya başarısızlığını ele almak için bildirim için bir alıcı kaydedebilir. Daha fazla ayrıntı için Uyumluluk durumu bildirimlerine bakın.

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ısı MAMServiceAuthenticationCallback , kayıt için bir belirteç almak üzere çağrılan yöntemine acquireToken() sahiptir. 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. Bu durumda geri çağırmanın bir belirteç alabilmesi gerekir.

'den acquireToken()belirteç döndüremezseniz, 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

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

Aşağıda, yöntemde 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 COMPLIANCE_STATUSbildirimleri için kaydolursa, sistem uygulamayı uyumluluk düzeltme girişiminin son durumu hakkında bilgilendirmek için bir MAMComplianceNotification gönderir. Kaydolma hakkında ayrıntılı bilgi için SDK'dan gelen bildirimler için kaydolma bölümüne bakın.

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

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

Durum kodu Açıklama
UNKNOWN Durum bilinmiyor. Bu durum beklenmeyen bir hatanın nedenini gösterebilir. Daha fazla bilgi Şirket Portalı Şirket Portalı günlüklerinde bulunabilir.
COMPLIANT Uyumluluk düzeltmesi başarılı oldu ve uygulama artık ilkeyle uyumlu. MSAL belirteci alımı 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 bilgileri içerir.
SERVICE_FAILURE TIntuneIntune hizmetinden uyumluluk verileri alınmaya çalışılırken bir hata oluştu. Daha fazla bilgi Şirket Portalı Şirket Portalı günlüklerinde bulunabilir.
NETWORK_FAILURE TIntuneIntune 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ının süresi dolmadan önce durum yanıtını göndermediğinden, uyumluluğu düzeltme girişimi başarısız olur. Uygulama, belirteç alımını daha sonra tekrar denemelidir.
COMPANY_PORTAL_REQUIRED Uyumluluk düzeltmesinin başarılı olması için Şirket Portalı cihaza yüklenmesi gerekir. 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 orijinal 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 isterse son kullanıcıya görüntüleyebileceği yerelleştirilmiş dizeler döndürür. Uygulama çoğu hata durumunu çözemez. Genel olarak, hesap oluşturma veya oturum açma başarısız olur ve kullanıcının daha sonra yeniden denemesine izin verilir.

Hata kalıcı oluyorsa, Şirket Portalı günlükleri nedeni belirlemeye yardımcı olabilir. Son kullanıcı günlükleri gönderebilir. Daha fazla bilgi için Karşıya yükleme ve e-posta günlükleri bölümüne bakın.

MAMNotificationReceiver arabirimini uygulamak için anonim bir sınıf kullanarak bir alıcıyı kaydetmeye bir örnek:

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ıyla sonuçlanabilecek bir yarış durumundan kaçınmak için aramadan remediateCompliance() önce bildirim alıcısını kaydetmeniz gerekir.

Uygulama Koruma CA'sı için destek bildiriliyor

Uygulamanız Uygulama CA düzeltmesini işlemeye hazır olduğunda, Microsoft Identity'ye uygulamanızın Uygulama CA'sına hazır olduğunu söyleyebilirsiniz. MSAL uygulamasında bunu yapmak için "protapp" İstemci Özellikleriyle Genel İstemciyi 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"
          }
        }
      ]
    }

Adımlar tamamlandıktan sonra Uygulama Koruma CA'sını Doğrulama bölümüne geçin.

Uygulama Notları

Not

Bayrağın MAMServiceAuthenticationCallback.acquireToken()acquireTokenSilentAsync()atanması için forceRefresh uygulamanın yöntemi false değerini geçmelidir.

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

acquireTokenSilentAsync(acquireTokenSilentParameters);

Not

Düzeltme girişimi sırasında özel bir engelleme UX göstermek istiyorsanız, showUX parametresi için false değerini 'a remediateCompliance()geçirmeniz gerekir. Aramadan remediateCompliance()önce UX'inizi gösterdiğinizden ve bildirim dinleyicinizi kaydettiğinizden emin olmalısınız. Bu, hızlı bir şekilde başarısız olursa remediateCompliance() bildirimin kaçırılabileceği bir yarış durumunu önler. Örneğin, bir Activity alt sınıfının or onMAMCreate() yöntemi, onCreate() bildirim dinleyicisini kaydetmek ve ardından 'yi çağırmak remediateCompliance()için ideal yerdir. Parametreleri remediateCompliance() , Intent ekstraları olarak UX'inize aktarılabilir. Uyumluluk durumu bildirimi alındığında, sonucu görüntüleyebilir veya etkinliği bitirebilirsiniz.

Not

remediateCompliance() Hesabı kaydeder ve kaydolmaya çalışır. Ana token edinildikten sonra, aramaya registerAccountForMAM() gerek yoktur, ancak bunu yapmanın bir zararı yoktur. Öte yandan, uygulama belirtecini alamazsa ve kullanıcı hesabını kaldırmak isterse, hesabı kaldırmak ve arka plan kaydının yeniden denemelerini önlemek için çağırması unregisterAccountForMAM() gerekir.

SDK'dan gelen bildirimler için kaydolma

TIntuneIntune Uygulama SDK'sı kılavuzu, uygulamanızın SDK'dan gelen bildirimler için kaydolmasının gerekebileceği çeşitli senaryoları ele alı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 bir bildirim alıcısının nasıl uygulanacağı açıklanmaktadır.

Bildirim türleri

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

Bildirimlerin çoğu, tek bir kimliğe özgü bilgiler sağlayan MAMUserNotification örnekleridir. Kimliğin OID'si getUserOid() işlev aracılığıyla alınabilir ve kimliğin UPN'si aracılığıyla alınabilir getUserIdentity().

MAMEnrollmentNotification ve MAMComplianceNotificationMAMUserNotification, sırasıyla bir kullanıcıyı veya cihazı MAM hizmetine kaydetme girişimlerinin sonuçlarını ve App Protection CA uyumluluğunu düzeltme girişimlerinin sonuçlarını içerir.

Bildirim türü Bildirim sınıfı Bildirim nedeni Uygulanabilirlik Taşıma ipuçları Yazışma bilgileri
COMPLIANCE_STATUS MAMComplianceNotification Uyumluluk düzeltme girişiminin sonucunu döndürür. Uygulama Koruma CA'sı uygulayan uygulamalar bunu ele almalıdır. Belirleyici Olmayan
MAM_ENROLLMENT_RESULT MAMEnrollmentNotification Bir kayıt girişiminin sonucunu döndürür. Tüm uygulamalar bunu alır. Belirleyici Olmayan
MANAGEMENT_REMOVED MAMUserNotification Uygulama yönetilemez hale gelmek üzere. Bunu kullanan MAMDataProtectionManager uygulamaların bunu halletmesi gerekir. Bkz. MANAGEMENT_REMOVED. Hiçbir zaman kullanıcı arabirimi iş parçacığında 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 bunu işlemelidir. Uygulamalar, önbelleğe alınan tüm uygulama yapılandırma verilerini geçersiz kılmalı ve yenilemelidir. Belirleyici Olmayan
REFRESH_POLICY MAMUserNotification Uygulama korumasıUygulama koruması ilkesi değişmiş olabilir. Uygulama koruma ilkesini önbelleğe alan uygulamalar bunu işlemelidir. Uygulamalar, önbelleğe alınan uygulama koruma ilkesi verilerini geçersiz kılmalı ve güncelleştirmelidir. Belirleyici Olmayan
WIPE_USER_DATA MAMUserNotification Temizleme işlemi gerçekleşmek üzere (*). Kullanan MAMDataProtectionManager uygulamalar bunu veyaWIPE_USER_AUXILIARY_DATA Bkz. Seçmeli Silme. Hiçbir zaman kullanıcı arabirimi iş parçacığında değil
WIPE_USER_AUXILIARY_DATA MAMUserNotification Temizleme işlemi gerçekleşmek üzere (*). Yalnızca çok kimlikli uygulamalar bunu alabilir.
Kullanan MAMDataProtectionManager uygulamalar bunu veyaWIPE_USER_DATA
Bkz. Seçmeli Silme. Hiçbir zaman kullanıcı arabirimi iş parçacığında değil
WIPE_COMPLETED MAMUserNotification Temizleme işlemi tamamlandı. Tüm uygulamalar için isteğe bağlıdır. Şu tarihten sonra teslim edilir WIPE_USER_DATA : veya WIPE_USER_AUXILIARY_DATA.
Uygulama temizleme işleyicisinden bir hata bildirirse bu bildirim gönderilmez.
Hiçbir zaman kullanıcı arabirimi iş parçacığında değil

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

Uyarı

Bir uygulama hiçbir zaman hem bildirim hem de WIPE_USER_DATAWIPE_USER_AUXILIARY_DATA bildirimleri için kaydolmamalıdır.

MANAGEMENT_REMOVED

Bildirim MANAGEMENT_REMOVED , uygulamayı daha önce ilke ile yönetilen bir hesabın yönetilemez hale gelmek üzere olduğu konusunda bilgilendirir. Hesap yönetilmedikten sonra, uygulama artık bu hesabın şifrelenmiş dosyalarını okuyamaz, hesabın şifrelenmiş MAMDataProtectionManagerverilerini 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 (temizleme gerekirse 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 Veri Tampon Koruması bölümüne bakın.

SDK uygulamanın alıcısını MANAGEMENT_REMOVED çağırdığında aşağıdakiler doğrudur:

  • SDK, uygulamaya ait daha önce şifrelenmiş dosyaların (ancak korunan veri arabelleklerinin) şifresini zaten çözmüştür. SD karttaki doğrudan uygulamaya ait olmayan herkese açık konumlardaki Files (örneğin Belgeler veya İndirilenler 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 hala erişimi vardır, bu nedenle veri arabelleklerinin şifresini çözme gibi işlemler başarılı olur.

Uygulamanızın alıcısı geri döndükten sonra artık şifreleme anahtarlarına erişemez.

MAMNotificationReceiver'ı Uygulama

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

Alıcıyı kaydetmek için, alıcınızı ve yönteminizde Application.onCreate istediğiniz bildirim türünü arayınregisterReceiver:

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

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

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

  • Farklı bildirim türleri için farklı MAMNotificationReceiver uygulamaları oluşturabilir. Bu durumda, her uygulamayı ve her bildirim türünü ayrı ayrı kaydettiğinizden emin olun.
  • Birden çok farklı bildirim türüne yanıt vermek için mantık içeren tek bir MAMNotificationReceiver uygulaması kullanabilir. Bu durumda, yanıtlayabileceği her bildirim türü için kaydedilmelidir.
  • Her biri 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 çalışmadığından engellemek MAMNotificationReceiver.onReceive 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

Bir tema sağlamak için, yönteme aşağıdaki kod satırını Application.onMAMCreate ekleyin:

MAMThemeManager.setAppTheme(R.style.AppTheme);

Örnekte, SDK'nın uygulaması gereken 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 App SDK'sı MAMTrustedRootCertsManager ve MAMCertTrustWebViewClient API sınıflarıyla sertifika güven yönetimi desteği eklemiştir.

Not

MAMCertTrustWebViewClient , Android 10 veya sonraki sürümleri destekler.

Güvenilir Kök Sertifika Yönetimi şunlar için destek sağlar:

  • SSLContext
  • SSLSocketFactory
  • Güven Yöneticisi
  • Web Görünümü

Gereksinimler

Not

Güvenilen Kök Sertifika Yönetimi, Microsoft Tunnel VPN GatewayVPN Gateway'den bağımsız olarak kullanılabilir, ancak kullanım için Microsoft MAM Tüneli'ni lisanslamanız gerekir.

Güven Çıpaları Oluşturmak için Intune'den Güvenilen Kök Sertifikaları Kullanma

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

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, MAMTrustedRootCertsManager ve MAMCertTrustWebViewClient API sınıfları, Uygulama Yapılandırması İlkesi aracılığıyla teslim edilen Intune güvenilen kök sertifikayı 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üvenilir Kök Sertifika Yönetimi, uygulamanın Ağ Güvenliği Yapılandırması XML'sinin aşağıdaki özelliklerden herhangi birine sahip olup olmadığını doğrulayarak bu ek güvenliğe uyar:

  • Otomatik olarak imzalanan sertifikalar gibi ek CA'lara sahip özel güven çıpaları.
  • Güvenilen CA'ları sınırlamak için etki alanına özgü kurallar.
  • Belirli etki alanlarına yönelik sertifikalar için pin kümeleri.

Not

Android Ağ Güvenliği Yapılandırması hakkında daha fazla bilgi için bkz.

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üvenilir kök sertifikaları kullanan bir SSLContext nesne oluşturur. Bu sınıftan döndürülen SSLContext nesne, cihazdan ve MAM hizmetinden birleşik güvenilir kök sertifikaları kullanan nesnelerle X509TrustManager zaten doğru şekilde başlatılmıştır.
  • createSSLSocketFactoryForOID(String oid, String protocol): Belirtilen kimlik ve belirtilen SSL/TLS protokolü için güvenilir 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 ve MAM hizmetinden birleşik güvenilir kök sertifikaları kullanan bir nesne dizisi X509TrustManager oluşturur.

Not

Parametreninoid, uygulamayı çalıştıran belirli bir kullanıcı için Microsoft EntraMicrosoft Entra kullanıcı kimliği (OID) olması beklenir. Kullanıcı tanımlayıcısı önceden bilinmiyorsa, bir değer null geçirebilirsiniz 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 kimliğin işlemde veya iş parçacığında doğru şekilde 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

protocol Parametre sağlanmadığında, platform desteklenen en yüksek SSL/TLS protokolünü kullanır.

Bu sınıfın kullanımına ilişkin 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
...

Sınıf MAMCertTrustWebViewClient

Bu sınıf, Android sınıfının android.webkit.WebViewClientözel bir uygulamasını sağlar. Sınıf, içindeki SSL hatasını android.net.http.SslError.SSL_UNTRUSTEDWebViewişlemek için bir yol sağlar.

Hatayı işlerken sınıf, Intune yapılandırdığı ve MAM hizmetinin sağladığı güvenilen kök sertifikaları kullanır. Bu yaklaşım, içinde SSL hatasını oluşturan hedef URL'den ana bilgisayarın güvenilirliğini kontrol eder WebView. Ö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 ardından bir WebView örneğe kaydetmek için çağırınWebView.setWebViewClient(WebViewClient).

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

Web Görünümü'nü 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
...

Çin App StoreApp Store Gizlilik Uyumluluğu

Çin'deki bazı uygulama mağazaları, uygulamaların cihazdaki diğer uygulamalarla etkileşim kuran işlemler gerçekleştirmeden önce kullanıcılara bir gizlilik onayı iletişim kutusu görüntülemesini gerektirir. Bu, paket yükleme/kaldırma olaylarını dinleyen yayın alıcılarının kaydedilmesini içerir. MAM SDK'sı, MAM mantığının büyük bir kısmının bulunduğu Şirket Portalı varlığını dinlemek için bunu yapar.

Uygulamanız bu gereksinime sahip Çin uygulama mağazaları aracılığıyla dağıtılıyorsa, çevrimdışı başlatma işlemlerini gizlilik onayı alınana kadar ertelemek için aşağıdaki tümleştirmeyi kullanın.

1. Bildirim Bayrağı Ekle

Uygulamanıza AndroidManifest.xmlaşağıdaki meta verileri ekleyin:

<application>
    <meta-data
        android:name="com.microsoft.intune.mam.OfflineStartupDeferredUntilAppSignal"
        android:value="true"/>
</application>

Not

Bu bayrak yalnızca Çin uygulama mağazaları aracılığıyla dağıtılan ve diğer uygulamalarla etkileşim kurmadan önce gizlilik izni gerektiren APK'lara eklenmelidir. Diğer mağazalar aracılığıyla dağıtılan APK'lar için bu bayrak dahil edilmemelidir.

2. Gizlilik iletişim kutusundan sonra sinyal hazırlığı

Kullanıcı gizlilik onayı iletişim kutunuzu kabul ettikten sonra, çevrimdışı başlatma işlemlerinin devam edebileceğini bildirmek için SDK'yı çağırın:

// After user accepts privacy dialog
MAMComponents.get(DeferredStartupManager::class.java)
    .setOfflineStartupReady()

Veya Java'da:

// After user accepts privacy dialog
MAMComponents.get(DeferredStartupManager.class)
    .setOfflineStartupReady();

Davranış

Hazır durumu, uygulama başlatmalarında kalıcı olur. Çağrıldıktan sonra setOfflineStartupReady() , sonraki başlatmalar, uygulama başlatma sırasında alıcıyı hemen kaydeder.

Notlar

  • Yöntem setOfflineStartupReady() bir kez etkilidir; birden çok kez çağırmak güvenlidir.
  • Şirket Portalı zaten yüklüyse (çevrimiçi mod), alıcıya gerek olmadığı için aramanın setOfflineStartupReady() hiçbir etkisi olmaz.
  • Önemli: Gizlilik iletişim kutunuz kabul edildikten sonra her zaman aramalısınız setOfflineStartupReady() .

Çıkış Kriterleri

Daha fazla bilgi için, test kolaylığı için Değişen ilkeyle hızlı bir şekilde test etme bölümüne bakın.

Kısıtlamalara kaydetmeyi ve kısıtlamalardan açmayı doğrulama

Uygulamalar ile cihaz veya bulut depolama konumları arasında veri aktarımını sınırlamaya yönelik bir İ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 verileri açabildiği her senaryoyu yeniden tanıyın.

Kolaylık olması açısından bu testlerde uygulamanızın yalnızca uygulama içinde tek bir konumdan OneDrive'a veri kaydetme ve OneDrive'dan veri açma desteği içerdiği varsayılır. Ancak, her kombinasyonu doğrulamanız gerekir: uygulamanızın veri kaydetmeye izin verdiği her yere karşı desteklenen her kaydetme konumu ve uygulamanızın veri açmasına izin verdiği her yere karşı desteklenen her açık konum.

Bu testler için uygulamanızı ve Intune Şirket PortalıIntune Şirket Portalı; testi başlatmadan ö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" seçeneği "İlke ile yönetilen uygulamalar" olarak ayarlandı.
    • "Diğer uygulamalardan veri al" seçeneği "İlke ile yönetilen uygulamalar" olarak ayarlandı.
Senaryo Ön koşullar Adımlar
Şuraya kaydet, tamamen izin ver "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ış aynı yönetilen hesabı kullanarak OneDrive'a belge kaydetmeyi deneyin.
- Kaydetme işlemine izin verildiğini onaylayın.
Kaydet, muaf - "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 ayarlanır
- Uygulamanızın verileri OneDrive'a kaydedebileceği bölümüne gidin.
- Uygulamanızda oturum açmış aynı yönetilen hesabı kullanarak OneDrive'a belge kaydetmeyi deneyin.
- Kaydetme işlemine izin verildiğini onaylayın.
- Uygulamanız izin veriyorsa dosyayı farklı bir bulut depolama konumuna kaydetmeyi deneyin ve engellendiğini onaylayın.
Şuraya kaydet, engelle "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ış aynı yönetilen hesabı kullanarak OneDrive'a belge kaydetmeyi deneyin.
- Kaydetme işleminin engellendiğini onaylayın.
- Uygulamanız izin veriyorsa dosyayı farklı bir bulut depolama konumuna kaydetmeyi deneyin ve engellendiğini onaylayın.
Açık, tamamen izin veriliyor "Verileri Kuruluş belgelerinde aç" ilkesi İzin Ver olarak ayarlandı - Uygulamanızın OneDrive'dan veri açabileceği bölümüne gidin.
- Uygulamanızın depolama alanında oturum açmış aynı yönetilen hesabı kullanarak OneDrive'dan bir belge açmaya çalışın.
- Açmaya izin verildiğini onaylayın.
Açık, muaf - "Verileri Kuruluş belgelerinde aç" ilkesi Engelle olarak ayarlandı
- "Kullanıcıların seçili hizmetlerdeki verileri açmasına izin ver" ilkesi yalnızca OneDrive olarak ayarlanır
- Uygulamanızın OneDrive'dan veri açabileceği bölümüne gidin.
- Uygulamanızın depolama alanında oturum açmış aynı yönetilen hesabı kullanarak OneDrive'dan bir belge açmaya çalışın.
- Açmaya izin verildiğini onaylayın.
- Uygulamanız izin veriyorsa farklı bir bulut depolama konumundan başka bir dosya açmayı deneyin ve engellendiğini onaylayın.
Açma yeri, engelleme "Verileri Kuruluş belgelerinde aç" ilkesi Engelle olarak ayarlandı - Uygulamanızın OneDrive'dan veri açabileceği bölümüne gidin.
- Uygulamanızın depolama alanında oturum açmış aynı yönetilen hesabı kullanarak OneDrive'dan bir belge açmaya çalışın.
- Açık seçeneğin 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ı bildirim türü tetikleyebilir:

  1. Herhangi bir hesap verisi içermeyen bildirimler.
  2. Yönetilen hesaba ait veriler içeren bildirimler.
  3. Yönetilmeyen bir hesaba ait veriler içeren bildirimler.

Uygulamanız tek kimlikliyse, yalnızca ilk ikisi önemlidir çünkü tek hesap yönetilmiyorsa herhangi bir koruma uygulanmaz.

Yapılandırılmış farklı ilke değerlerine sahip üç bildirim türünü de tetikleyerek bildirim kısıtlamalarını doğrulayabilirsiniz.

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

Senaryo Ön koşullar Adımlar
Tam içerik engellendi "Kuruluş verisi bildirimleri" ilkesi Engelle olarak ayarlandı - Hesap verisi içermeyen bir bildirimi tetiklemek için uygulamanızı tetikleyin.
- Bildirimin herhangi bir içerik göstermediğini onaylayın.
- Uygulamanızı, yönetilen hesabın verileriyle bir bildirim oluşturacak şekilde tetikleyin.
- Bildirimin herhangi bir içerik göstermediğini onaylayın.
- Uygulamanızı, yönetilmeyen hesabın verileriyle bir bildirim oluşturacak şekilde tetikleyin.
- Bildirimin herhangi bir içerik göstermediğini onaylayın.
Kısmi içerik engellendi "Kuruluş verileri bildirimleri" ilkesi Kuruluş verilerini engelle olarak ayarlandı - Hesap verisi içermeyen bir bildirimi tetiklemek için uygulamanızı tetikleyin.
- Bildirimin tüm içeriğini gösterdiğini onaylayın.
- Uygulamanızı, yönetilen hesabın verileriyle bir bildirim oluşturacak şekilde tetikleyin.
- Bildirimin, yönetilen hesabın içeriğini düzelttiğini onaylayın.
- Uygulamanızı, yönetilmeyen hesabın verileriyle bir bildirim oluşturacak şekilde tetikleyin.
- Bildirimin tüm içeriğini gösterdiğini onaylayın.
İçerik engellenmedi "Kuruluş veri bildirimleri" ilkesi İzin Ver olarak ayarlandı - Hesap verisi içermeyen bir bildirimi tetiklemek için uygulamanızı tetikleyin.
- Bildirimin tüm içeriğini gösterdiğini onaylayın.
- Uygulamanızı, yönetilen hesabın verileriyle bir bildirim oluşturacak şekilde tetikleyin.
- Bildirimin tüm içeriğini gösterdiğini onaylayın.
- Uygulamanızı, yönetilmeyen hesabın verileriyle bir bildirim oluşturacak şekilde tetikleyin.
- Bildirimin tüm içeriğini gösterdiğini onaylayın.

Veri yedeklemeyi ve geri yüklemeyi 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ırdığı içeriği (dosyalar ve anahtar-değer çiftleri) yeniden tanıyın. Geri yüklemeye yalnızca beklenen içeriğin eklendiğini doğrulamanız gerekir. Geri yüklemedeki fazladan içerik veri sızıntısına neden olabilir.

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

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

Özel ekran yakalamayı ilkeye göre doğrulama

Özel Ekran CaptureCapture Restrictions'ı uygulamadıysanız bu bölümü atlayın.

Uygulamanızın Android Windowdüzeyini FLAG_SECUREatlayan bir özelliği varsa, bu özelliğin uygulama koruma ilkesi ekran görüntüsü kısıtlamaları tarafından engellendiğini doğrulayın.

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

Senaryo Ön koşullar Adımlar
Ekran yakalama engellendi "Ekran yakalama ve Google Asistan" politikası Engelle olarak ayarlandı - Uygulamanızın özel FLAG_SECURE kodu kullanan bölümüne gidin.
- Bu özelliği kullanmaya çalışın.
- Özelliğin engellenmiş olduğunu onaylayın.
Ekran yakalamaya izin verildi "Ekran yakalama ve Google Asistan" politikası İzin Ver olarak ayarlandı - Uygulamanızın özel FLAG_SECURE kodu kullanan bölümüne gidin.
- Bu özelliği kullanmaya çalışın.
- Özelliğe izin verildiğini onaylayın.

Uygulama Koruma CA'sını doğrulama

Destek Uygulama Koruma CA'sını uygulamadıysanız bu bölümü atlayın.

Uygulamanıza ve test hesabınıza uygulama koruma ilkesi oluşturma ve atama gibi tipik doğrulama adımlarına ek olarak, test hesabınıza bir Uygulama Koruma Koşullu Erişim ilkesi de oluşturmanız ve atamanız gerekir. Ayrıntılar için Intune ile uygulama tabanlı Koşullu Erişim ilkelerini ayarlama bölümüne bakın.

Test adımları:

  1. Bu teste başlamadan önce Microsoft Authenticator ve Intune Şirket PortalıIntune Şirket Portalı'ı kaldırın.
  2. Uygulamanızı yükleyin.
  3. Hem uygulama koruma ilkesi hem de uygulama tabanlı CA ilkesi ile hedeflenen test hesabınızla uygulamanızda oturum açın.
  4. Uygulamanızın Şirket Portalı yüklemenizi istediğini onaylayın.
  5. Yeniden oturum açın.
  6. Uygulamanızın sizden cihazınızı kaydetmenizi istediğini onaylayın. İstemleri izleyin. Uygulamanız burada kayıt istemiyorsa test cihazınızın önce diğer SDK özellikli uygulamaları, Şirket Portalı'u ve Authenticator'ı kaldırdığını doğrulayın. Bu da işe yaramazsa uygulama talimatlarını yeniden gözden geçirin.
  7. Kaydolduktan sonra tüm uygulama verilerine erişebildiğinizi onaylayın.

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

SDK'dan gelen bildirimler için Kaydolma'yı uygulamadıysanız bu bölümü atlayın.

Doğrulama adımları, uygulamanızın kaydolduğu bildirim türlerine bağlıdır. Tüm bildirim türlerinde, alıcınızın düzgün çağrıldığından emin olmak için günlüğe kaydetme ekleyin.

MAM_ENROLLMENT_RESULT uygulama koruma ilkesinin hedeflediği bir hesapla uygulamanızda oturum açarak tetiklenebilir.

Test hesabınızı hedefleyen ve SDK'nın güncelleştirilmiş ilkeyi almasını bekleyen ilgili Uygulama YapılandırmasıUygulama Yapılandırması İlkesi ve Uygulama Koruma İlkesi'ni tetikleyebilir REFRESH_APP_CONFIGREFRESH_POLICY ve güncelleştirebilirsiniz.

İpucu

Bu süreci hızlandırmak için Değiştirilen ilkeyle hızlı bir şekilde test etme bölümüne bakın.

TMicrosoft IntuneMicrosoft Intune'dan seçmeli bir silme işlemi gerçekleştirerek , WIPE_USER_DATA, WIPE_USER_AUXILIARY_DATA, ve WIPE_COMPLETED bildirimleri tetikleyebilirsinizMANAGEMENT_REMOVED.

Özel temaları doğrulama

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

SDK'nın iletişim kutularındaki renkleri inceleyerek özel tema desteğini doğrulayabilirsiniz. Denetlenecek en basit iletişim kutusu MAM PIN ekranıdır.

Ön koşullar:

  • Yönetilen hesabın ilkesini şu şekilde ayarlayın:
    • "Erişim için PIN" "Gerekli" olarak ayarlandı.
  • Uygulamanızı ve Intune Şirket Portalı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üntülendiğini 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şiktir ve uygulama koruma ilkelerini zorunlu tutabilir. Önceki uygulama katılımı bölümlerinden birini, Aşama 5: Çoklu Kimlik ve Aşama 6: Uygulama YapılandırmasıUygulama Yapılandırması ve uygulamanızın bu özellikleri destekleyip desteklememesi gerektiğinden emin değilseniz, SDK entegrasyonu için Önemli Kararlar'ı yeniden ziyaret edin.

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