Android için Intune Uygulama SDK'sı - Çoklu Kimlik

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

Not

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

5. Aşama: Çoklu Kimlik

Aşama Goals

  • Uygulamanızın çok kimlikli desteğe ihtiyacı olup olmadığını belirleyin.
  • Intune Uygulama SDK'sının kimlikleri nasıl algıladığını anlama.
  • Kimlik farkındalığı için uygulamanızı yeniden düzenleme.
  • SDK'ya uygulamanızın her yanındaki etkin ve değişen kimlikleri bildirmek için kod ekleyin.
  • Hem yönetilen hem de yönetilmeyen kimlikler için uygulama koruma ilkesi zorlamasını kapsamlı bir şekilde test edin.

Kimlik terminolojisi

"kullanıcı", "hesap" ve "kimlik" terimleri genellikle birbirinin yerine kullanılır. Bu kılavuz aşağıdaki gibi ayırt etmeye çalışır:

  • Kullanıcı: yazılım ürününü kullanan insan. Son kullanıcı, Android uygulamasını kullanan insan ve yönetici / kullanıcı / BT yöneticisi / BT Uzmanı, Microsoft Intune yönetim merkezini kullanan insan olarak daha da ayırt edilir.
  • Hesap: Kullanıcının varlığını benzersiz olarak tanımlayan bir kuruluşa ait yazılım kaydı. bir insan kullanıcının birden çok hesabı olabilir.
  • Kimlik: Intune Uygulama SDK'sının bir hesabı benzersiz olarak tanımlamak için kullandığı veri kümesi.

Arka plan

Varsayılan olarak, Intune Uygulama SDK'sı ilkeyi uygulamanızın tamamına uygular. Bir hesabı hedeflenen uygulama koruma ilkesiyle kaydettikten sonra SDK, her dosyayı ve her etkinliği bu hesabın kimliğiyle ilişkilendirir ve bu hesabın hedeflenen ilkesini evrensel olarak uygular.

Birçok geliştirici için bu, uygulamaları için istenen uygulama koruma davranışıdır. Bu uygulamalar tek kimlikli olarak kabul edilir. Uygulamanız önceki aşamaları tamamlayarak tek kimlik olarak başarıyla tümleştirilmiştir ve tüm temel ilkeleri zorunlu kılabilir. Tek kimlikli kalması amaçlanan uygulamalar bu bölümü atlayabilir ve 6. Aşama: Uygulama Yapılandırması devam edebilir.

Intune Uygulama SDK'sı isteğe bağlı olarak ilkeyi kimlik başına düzeyinde zorunlu kılabilir. Uygulamanız zaten aynı anda oturum açmış birden çok hesabı destekliyorsa ve bu çoklu hesap desteğini uygulama koruma ilkeleriyle korumak istiyorsanız, uygulamanız çoklu kimlik olarak kabul edilir.

İpucu

Uygulamanın tek kimlikli veya çok kimlikli korumaları desteklemesi gerekip gerekmediğini bilmiyorum, uygulamam tek kimlik mi yoksa çoklu kimlik mi? konusuna bakın.

Uyarı

Çoklu kimliği desteklemek, diğer uygulama koruma özelliklerine göre önemli ölçüde daha karmaşıktır. Çoklu kimliğin yanlış tümleştirilmesi veri sızıntılarına ve diğer güvenlik sorunlarına neden olabilir. Bir sonraki aşamaya geçmeden önce bu bölümü dikkatle gözden geçirin ve test için bol zaman planlayın.

SDK'ya "Kimlik"

SDK ile tümleşik bir uygulama registerAccountForMAM kullanarak bir hesap kaydettiğinde, SDK sağlanan tüm parametreleri (upn, aadId, tenantId ve authority) kimlik olarak kaydeder. Ancak SDK'nın kimlik API'lerinin çoğu kimlik için yalnızca sağlanan upn dizesini kısaltma olarak kullanır. Bu API'ler yalnızca upn dizesini kimlik olarak döndürür ve kimlik için yalnızca upn dizesi parametresini gerektirir.

Kimlikler büyük/küçük harfe duyarlı değildir. Bir kimlik için SDK'ya yapılan istekler, kimliği kaydederken veya ayarlarken kullanılan büyük/küçük harfle aynı büyük/küçük harf döndürmeyebilir.

İpucu

Gelecekte SDK API'leri, yalnızca upn değil hesap kayıt zamanında sağlanan tüm alanları içeren daha bütünsel bir kimlik yapısı sunabilir. Çoklu kimlik desteğini tümleştirirken, geçerli API'leri kullanarak kimliği ayarlarken uygulamanızın aadId, tenantId ve yetkiliye de erişimi olduğundan emin olun.

Yönetilen ve Yönetilmeyen Kimlikler karşılaştırması

Uygulama Koruma İlkesine Kaydolma bölümünde açıklandığı gibi, kullanıcı oturum açtığında SDK'yı bilgilendirmek uygulamanızdan sorumludur. Oturum açma sırasında kullanıcının hesabı uygulama koruma ilkesiyle hedeflenebilir veya hedeflenmeyebilir. Hesap uygulama koruma ilkesiyle hedefleniyorsa SDK, hesabın yönetildiğini kabul eder; aksi takdirde yönetilmez.

SDK, yönetildiğini düşündüğü kimlikler için ilkeyi zorunlu kılacak. SDK yönetilmeyen olarak kabul edilen kimlikler için ilkeyi zorlamaz.

Şu anda Intune Uygulama SDK'sı cihaz başına yalnızca tek bir yönetilen kimliği destekler. SDK ile tümleşik herhangi bir uygulama yönetilen bir kimliği kaydettiği anda, uygulama koruma ilkeleriyle hedeflenmiş olsalar bile daha sonra kaydedilen tüm kimlikler yönetilmeyen olarak kabul edilir.

Yönetilen kimlik cihaza zaten kaydedildiyse ve uygulamanız uygulama koruma ilkesiyle de hedeflenen başka bir kimliği kaydederse SDK geri döner MAMEnrollmentManager.Result.WRONG_USER ve son kullanıcıya düzeltme seçeneklerini sorar. Daha fazla ayrıntı için bkz. SDK'dan bildirimlere kaydolma .

Not

Kayıt zamanında uygulama koruma ilkesiyle hedeflenmeyen bir hesap yönetilmeyen olarak değerlendirilir. Hesap, uygulama koruma ilkesi için lisanslanmamış veya hedeflenmemiş olsa bile SDK, bu hesabın daha sonra lisanslanıp lisanslanmadığını ve hedeflenip hedeflenmediğini düzenli aralıklarla denetler. Başka bir yönetilen kimlik kaydedilmemişse SDK, ilkeyle hedeflendikten sonra bu kimliği yönetilen olarak kabul etmeye başlar. Kullanıcının bu değişikliği yapmak için oturumu kapatıp bu hesapta yeniden oturum açması gerekmez.

Etkin Kimlik

Uygulamanızın sdk'yı her zaman geçerli kullanımdaki kimlik hakkında (etkin kimlik olarak da bilinir) haberdar etmesi gerekir. Etkin kimlik yönetiliyorsa SDK koruma uygular. Etkin kimlik yönetilmiyorsa SDK koruma uygulamaz.

SDK'nın uygulamaya özgü bilgisi olmadığından, doğru etkin kimliği paylaşmak için uygulamaya güvenmesi gerekir.

  • Uygulama sdk'ya yönetilen kimlik gerçekten kullanımdayken yönetilmeyen bir kimliğin etkin olduğunu yanlış söylerse, SDK koruma uygulamaz. Bu, kullanıcıların verilerini riske atan bir veri sızıntısına neden olabilir.

  • Uygulama sdk'ya yönetilmeyen bir kimlik gerçekten kullanımdayken yönetilen kimliğin etkin olduğunu yanlış söylerse, SDK uygun olmayan korumalar uygular. Bu bir veri sızıntısı değildir, ancak bu, yönetilmeyen kullanıcıları gereksiz yere kısıtlayabilir ve yönetilmeyen kullanıcıların verilerini silme riskiyle karşılayabilir.

Uygulamanız herhangi bir kullanıcının verilerini görüntülüyorsa yalnızca etkin kimliğe ait verileri görüntülemesi gerekir. Uygulamanız şu anda görüntülenen verilerin sahibini bilmiyorsa, çoklu kimlik desteğini tümleştirmeye başlamadan önce daha fazla kimlik farkındalığı için uygulamanızı yeniden düzenlemeniz gerekebilir.

Uygulama Verilerini Kimliğe Göre Düzenleme

Uygulamanız yeni bir dosya yazdığında SDK, geçerli etkin iş parçacığını ve işlem kimliğini temel alan bir kimliği bu dosyayla ilişkilendirir ("etiketler" olarak da bilinir). Alternatif olarak, uygulamanız belirli bir kimliğe sahip bir dosyayı el ile etiketlemek için SDK'yı doğrudan çağırabilir (ayrıntılar için bkz . Korumalı Dosyalar Yazma ). SDK, hem dosya şifreleme hem de seçmeli temizleme için bu etiketli dosya kimliğini kullanır.

Yönetilen kimlik şifreleme ilkesiyle hedefleniyorsa, yalnızca yönetilen kimlikle etiketlenmiş dosyalar şifrelenir.

Yönetici eylemi veya yapılandırılmış ilke yönetilen verilerin silinmesini isterse, yalnızca yönetilen kimlikle etiketlenen dosyalar silinir.

SDK birden çok kimliği tek bir dosyayla ilişkilendiremez. Uygulamanız aynı dosyada birden çok kullanıcıya ait verileri depolarsa, SDK'nın varsayılan davranışı bu verilerin yetersiz korunmasına veya aşırı korunmasına neden olur. Uygulamanızın verilerini kimliğe göre düzenlemeniz kesinlikle teşvik edilir.

Uygulamanızın farklı kimliklere ait verileri kesinlikle aynı dosyada depolaması gerekiyorsa SDK, bir dosyadaki verilerin kimlik etiketleme alt kümelerine yönelik özellikler sağlar. Ayrıntılar için bkz. Veri Arabelleği Koruması .

Çoklu Kimlik Uygulama

Uygulamanız için çoklu kimlik desteği bildirmek için aşağıdaki meta verileri AndroidManifest.xml yerleştirerek başlayın.

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

Etkin Kimliği Ayarlama

Uygulamanız, etkin kimliği azalan önceliğe göre aşağıdaki düzeylerde ayarlayabilir:

  1. İş parçacığı düzeyi
  2. Context (genel olarak Activity) Düzey
  3. İşlem düzeyi

İş parçacığı düzeyinde ayarlanan bir kimlik, düzeyinde ayarlanan kimliğin Context yerini alır ve bu da işlem düzeyinde ayarlanan kimliğin yerini alır.

üzerinde Context ayarlanan bir kimlik yalnızca uygun ilişkili senaryolarda kullanılır. Örneğin, dosya GÇ işlemlerinin ilişkili Contextbir değeri yoktur. En yaygın olarak, uygulamalar üzerindeki kimliği ActivityayarlarContext. içinde kimliği Activity.onCreateayarlamayı Context göz önünde bulundurun. Kimlik aynı kimliğe ayarlanmadığı sürece Activity bir uygulamanın kimlik verilerini görüntülememesi gerekir.

Genel olarak, işlem düzeyi kimliği yalnızca uygulama tüm iş parçacıklarında aynı anda tek bir kimlikle çalışıyorsa yararlıdır. Bu, birden çok hesabı destekleyen uygulamalar için tipik bir davranış değildir. Hesap verilerini ayırmanız ve iş parçacığında veya Context düzeylerde etkin kimliği ayarlamanız kesinlikle teşvik edilir.

Uygulamanız sistem hizmetlerini almak için bağlamı Application kullanıyorsa, iş parçacığı veya işlem kimliğinin ayarlandığından veya uygulamanızın Application bağlamında kullanıcı arabirimi kimliğini ayarladığınızdan emin olun.

Uygulamanız amaçları başlatmak için bağlam Service kullanıyorsa, içerik çözümleyicilerini kullanıyorsa veya diğer sistem hizmetlerinden yararlanıyorsa, bağlam üzerinde kimliği ayarladığınızdan Service emin olun. Benzer şekilde, uygulamanız bu eylemleri gerçekleştirmek için bir JobService bağlam kullanıyorsa, bağlam veya iş parçacığında JobService kimliği uygulamanız JobService için gerekli olduğu şekilde ayarladığınızdan emin olun. Örneğin, işleri tek bir kimlik için işlerseniz JobService , kimliği bağlama göre ayarlamayı JobService göz önünde bulundurun. İşleri birden JobService çok kimlik için işlerseniz, kimliği iş parçacığı düzeyinde ayarlamayı göz önünde bulundurun.

Dikkat

Kullanan WorkManager uygulamalar, kimliği ayarlarken özel bir özen göstermelidir. Özellikle, bu uygulamalar oluşturucuda Worker geçirilen üzerinde Context bir kimlik ayarlamaktan kaçınmalıdır. Bu Context örnek aynı anda birden çok Worker örnek arasında paylaşılabilir. Tanımsız davranışı önlemek için, uygulamalar bunun yerine uygulamanın gerektirdiği Worker şekilde içinde Worker.doWork() bir iş parçacığı kimliği ayarlamalıdır.

Not

CLIPBOARD_SERVICE kullanıcı arabirimi işlemleri için kullanıldığından SDK, işlemler için ClipboardManager ön plan etkinliğinin kullanıcı arabirimi kimliğini kullanır.

MAMPolicyManager'da aşağıdaki yöntemler etkin kimliği ayarlamak ve daha önce ayarlanan kimlik değerlerini almak için kullanılabilir.

public static void setUIPolicyIdentity(final Context context, final String identity, final MAMSetUIIdentityCallback mamSetUIIdentityCallback,
final EnumSet<IdentitySwitchOption> options);

public static String getUIPolicyIdentity(final Context context);

public static MAMIdentitySwitchResult setProcessIdentity(final String identity);

public static String getProcessIdentity();

public static MAMIdentitySwitchResult setCurrentThreadIdentity(final String identity);

public static String getCurrentThreadIdentity();

/**
 * Get the current app policy. This does NOT take the UI (Context) identity into account.
 * If the current operation has any context (e.g. an Activity) associated with it, use the overload below.
 */
public static AppPolicy getCurrentThreadPolicy();

/**
 * Get the current app policy. This DOES take the UI (Context) identity into account.
 * If the current operation has any context (e.g. an Activity) associated with it, use this function.
 */
public static AppPolicy getPolicy(final Context context);


public static AppPolicy getPolicyForIdentity(final String identity);

public static boolean getIsIdentityManaged(final String identity);

Kolaylık sağlamak için, bir etkinliğin kimliğini çağırmak MAMPolicyManager.setUIPolicyIdentityyerine doğrudan MAMActivity'deki bir yöntem aracılığıyla ayarlayabilirsiniz. Bunu yapmak için aşağıdaki yöntemi kullanın:

     public final void switchMAMIdentity(final String newIdentity, final EnumSet<IdentitySwitchOption> options);

Not

Uygulamanız bildirimde çoklu kimlik desteği bildirmezse, kimliği ayarlamak için bu yöntemleri çağırmak herhangi bir eylem yürütmez ve bir MAMIdentitySwitchResultdöndürürse her zaman döndürür FAILED.

Ortak Kimlik Anahtarı Tuzakları

  • çağrısı için startActivity, Intune Uygulama SDK'sı düzeyindeki etkin kimliğin Context sağlanan Intent parametreyle ilişkilendirildiğini varsayar. Düzey kimliğini 'Contextnin bağlamıyla değil Applicationbağlamıyla Activityayarlamanızı kesinlikle öneririz.

  • Etkinliğin ContextonCreate yöntemi sırasında kimliğin ayarlanması önerilir. Ancak, gibi onNewIntentdiğer giriş noktalarını da kapsamaya dikkat edin. Aksi takdirde, aynı Etkinlik hem yönetilen hem de yönetilmeyen kimlikler için verileri görüntülemek için yeniden kullanıldığında ilke yanlış uygulanabilir ve bu da korumasız şirket verilerine veya yanlış kısıtlanmış kişisel verilere yol açabilir.

Kimlik Anahtarı Sonuçları

Kimlik raporu sonuç değerlerini MAMIdentitySwitchResult aracılığıyla ayarlamak için kullanılan tüm yöntemler. Döndürülebilecek dört değer vardır:

Dönüş değeri Senaryo
SUCCEEDED Kimlik değişikliği başarılı oldu.
NOT_ALLOWED Kimlik değişikliğine izin verilmez. Geçerli iş parçacığında farklı bir kimlik ayarlandığında kullanıcı arabirimi (Context) kimliğini ayarlama girişiminde bulunulduğunda bu durum oluşur.
CANCELLED Kullanıcı genellikle PIN veya kimlik doğrulama istemindeki geri düğmesine basarak kimlik değişikliğini iptal etti.
FAILED Kimlik değişikliği belirlenemeyen bir nedenden dolayı başarısız oldu.

Uygulama, yönetilen hesabın verilerini görüntülemeden veya kullanmadan önce MAMIdentitySwitchResultSUCCEEDED değerini doğrulamalıdır.

Etkin kimliği ayarlama yöntemlerinin çoğu MAMIdentitySwitchResult değerini zaman uyumlu olarak döndürür. setUIPolicyIdentity aracılığıyla bir Context kimlik ayarlanması durumunda, sonuç zaman uyumsuz olarak bildirilir. Uygulama bu sonucu almak için bir MAMSetUIIdentityCallback uygulayabilir veya geri çağırma nesnesi için null geçirebilir. Aynı bağlamda yapılan önceki bir çağrının setUIPolicyIdentity sonucu henüz teslim edilmemişken çağrısı yapılırsasetUIPolicyIdentity, yeni geri arama eskinin yerini alır ve özgün geri arama hiçbir zaman sonuç almaz.

Dikkat

ContextsetUIPolicyIdentity için sağlanan bir Activityise SDK, yönetici tarafından yapılandırılmış koşullu başlatma denetimlerini gerçekleştirene kadar kimlik değişikliğinin başarılı olup olmadığını bilmez. Bu, kullanıcının bir PIN veya kurumsal kimlik bilgileri girmesini gerektirebilir.

Şu anda çok kimlikli bir uygulama için işlem ve iş parçacığı kimlik anahtarları her zaman başarılı olacaktır. SDK gelecekte hata koşulları ekleme hakkını saklıdır.

Ui kimlik anahtarı, iş parçacığı kimliğiyle çakışıyorsa veya kullanıcı koşullu başlatma gereksinimlerini iptal ederse (örneğin, PIN ekranında geri düğmesine basar) geçersiz bağımsız değişkenler için başarısız olabilir.

Bir etkinliğin başarısız ui kimliği anahtarı için varsayılan davranış, etkinliği tamamlamaktır. Bu davranışı değiştirmek ve bir etkinliğin kimlik değişikliği girişimleriyle ilgili bildirimler almak için, içindeki MAMActivitybir yöntemi geçersiz kılabilirsiniz.

    public void onSwitchMAMIdentityComplete(final MAMIdentitySwitchResult result);

Geçersiz kılarsanız onSwitchMAMIdentityComplete (veya yöntemini çağırırsanız super ), başarısız bir kimlik anahtarından sonra yönetilen hesabın verilerinin görüntülenmediğinden emin olmanız gerekir .

Not

Kimliğin değiştirilmesi için etkinliğin yeniden oluşturması gerekebilir. Bu durumda, onSwitchMAMIdentityComplete geri çağırma etkinliğin yeni örneğine teslim edilecek.

Identity, Intents ve IdentitySwitchOptions

SDK, etkin kimlikle yeni dosyaları otomatik olarak etiketlemenin yanı sıra amaçları da etkin kimlikle etiketler. Varsayılan olarak, SDK gelen bir amaçtaki kimliği denetler ve etkin kimlikle karşılaştırır. Bu kimlikler eşleşmiyorsa SDK(*) genellikle bir kimlik anahtarı ister (daha fazla ayrıntı için aşağıdaki Örtük Kimlik Değişiklikleri bölümüne bakın).

SDK, bu gelen amaç kimliğini daha sonra kullanmak üzere de depolar. Uygulama kullanıcı arabirimi kimliğini açıkça değiştirdiğinde SDK, uygulamanın geçiş yapmaya çalıştığı kimliği en son gelen amaç kimliğiyle karşılaştırır. Bu kimlikler eşleşmezse SDK genellikle(*) kimlik anahtarında başarısız olur.

SDK bu denetimi gerçekleştirir çünkü uygulamanın amaç üzerinde etiketlenen kimliğe ait olan amacın içeriğini görüntülemeye devam ettiğini varsayar. Bu varsayım, yönetilen verileri görüntülerken uygulamanın istemeden korumaları kapatmasını sağlar; ancak bu varsayım uygulamanın gerçek davranışında doğru olmayabilir.

İsteğe bağlı IdentitySwitchOption sabit listeleri, SDK'nın varsayılan davranışını değiştirmek için setUIPolicyIdentity ve switchMAMIdentity API'lerine geçirilebilir.

  • IGNORE_INTENT: Kullanıcı arabirimi katmanında kimlik anahtarı isterken, bu seçenek SDK'ya istenen kimlik parametresini en son depolanan amaç kimliğiyle karşılaştırmayı atlamayı bildirir. Bu, uygulamanız artık bu kimliğe ait içeriği görüntülemiyorsa ve SDK bu kimlik anahtarını engellemediğinde yararlıdır. Örneğin:

    1. Uygulamanız bir belge görüntüleyicisi. Diğer uygulamalardan geçirilen belgeleri işleyebilir. Ayrıca kullanıcıların hesap değiştirebileceği bir özellik de içerir. Kullanıcı bu hesap değiştirme özelliğini her kullandığında, uygulama bu hesabın son belgelerini içeren hesaba özgü bir giriş sayfasına gider.
    2. Uygulamanız belge görüntüleme amacını alır. Bu amaç yönetilen kimlikle etiketlenmiş.
    3. Uygulamanız yönetilen kimliğe geçirilir ve korumalar düzgün uygulanmış olarak bu belgeyi görüntüler.
    4. Kullanıcı, kişisel hesabına geçmek için hesap değiştiriciyi kullanır.

    Uygulamanızın 4. adımda kullanıcı arabirimi kimliğini değiştirmesi gerekir. Bu durumda, uygulamanın davranışı yönetilen hesabın verilerinden (amaçtaki belge) uzaklaşmak olduğundan, kimlik anahtarı çağrısında kullanmalıdır IGNORE_INTENT . Bu, SDK'nın bu çağrıyı uygunsuz bir şekilde başarısız kılmasını önler.

  • DATA_FROM_INTENT: Kullanıcı arabirimi katmanında bir kimlik anahtarı isterken, bu seçenek SDK'ya kimlik anahtarı başarılı olduktan sonra en son depolanan amaç kimliğindeki verilerin görüntülenmeye devam edeceği bilgisini verir. Sonuç olarak SDK, görüntülemeye izin verilip verilmediğini belirlemek için alma ilkesini önceki amaç kimliğine göre tam olarak değerlendirir. Örneğin:

    1. Uygulamanız bir belge görüntüleyicisi. Diğer uygulamalardan geçirilen belgeleri işleyebilir. Ayrıca kullanıcıların hesap değiştirebileceği bir özellik de içerir. Önceki örnekten farklı olarak, kullanıcı bu hesap değiştirme özelliğini her kullandığında, uygulama tüm hesapların son belgelerini gösteren paylaşılan bir sayfaya gider.
    2. Uygulamanız belge görüntüleme amacını alır. Bu amaç yönetilen kimlikle etiketlenmiş.
    3. Uygulamanız yönetilen kimliğe geçirilir ve korumalar düzgün uygulanmış olarak bu belgeyi görüntüler.
    4. Kullanıcı, kişisel hesabına geçmek için hesap değiştiriciyi kullanır.

    Uygulamanızın 4. adımda kullanıcı arabirimi kimliğini değiştirmesi gerekir. Bu durumda, uygulamanın davranışı yönetilen kimliğin verilerini (amaçtaki belgenin önizlemesi) görüntülemeye devam etmek olduğundan, kimlik anahtarı çağrısında kullanmalıdır DATA_FROM_INTENT . Bu, SDK'ya verilerin görüntülenmeye devam etmesi için uygun olup olmadığını belirlemek üzere yapılandırılmış uygulama koruma ilkesini denetlemesi konusunda bilgilendirilir.

(*) SDK'nın varsayılan davranışı, örneğin amacın aynı uygulamanın içinden mi yoksa sistem başlatıcısından mı geldiği gibi bu veri giriş denetimini atlayan özel bir büyük/küçük harf içerir.

Etkin Kimliği Temizleme

Uygulamanızın hesap belirsiz senaryoları olabilir. Uygulamanızın, herhangi bir oturum açma gerektirmeyen yerel yönetilmeyen senaryolara yönelik senaryoları da olabilir. Bu iki durumda da uygulamanız SDK'nın yönetilen kimliğin ilkelerini zorlamasını istemeyebilir, ancak geçiş yapmak için açık bir kimliğiniz olmayabilir.

kimlik parametresi olarak ayarlanmış nullayarlanmış kimlik yöntemlerinden herhangi birini çağırarak etkin kimliği temizleyebilirsiniz. Kimliğin bir düzeyde temizlenmesi, SDK'nın öncelik sırasına göre etkin kimliği diğer düzeylerde aramasına neden olur.

Alternatif olarak, kimliği yönetilmeyen bir kimlik olarak değerlendirilen özel bir boş değere ayarlayan kimlik parametresi olarak boş dize geçirebilirsiniz. Etkin kimliği boş dize olarak ayarlamak, SDK'ya herhangi bir uygulama koruma ilkesi uygulamamasını bildirir.

Örtük Kimlik Değişiklikleri

Yukarıdaki bölümde uygulamanızın iş parçacığı, bağlam ve işlem düzeylerinde etkin kimliği açıkça ayarlayabilmesinin farklı yolları açıklanmaktadır. Ancak, uygulamanızdaki etkin kimlik, uygulamanız bu yöntemlerden herhangi birini çağırmadan da değişebilir. Bu bölümde uygulamanızın bu örtük kimlik değişikliklerini nasıl dinleyebileceği ve yanıt verdiği açıklanmaktadır.

Bu örtük kimlik değişikliklerini dinlemek isteğe bağlıdır ancak önerilir. SDK, bu örtük kimlik değişikliği bildirimlerini sağlamadan etkin kimliği hiçbir zaman değiştirmez.

Dikkat

Uygulamanız örtük kimlik değişikliklerini dinlememeyi seçtiyse, etkin kimliği varsaymamaya dikkat edin. Şüpheniz olduğunda, etkin kimliği onaylamak için , getUIPolicyIdentityve getProcessIdentity yöntemlerini kullanıngetCurrentThreadIdentity.

Örtük Kimlik Değişikliklerinin Kaynakları

  • Diğer Intune tarafından yönetilen uygulamalardan veri girişi, iş parçacığı ve bağlam düzeyinde etkin kimliği değiştirebilir.

    • Başka bir MAM uygulaması tarafından gönderilen bir Intent etkinlik başlatılırsa, etkinliğin kimliği, gönderildiği noktada Intent diğer uygulamadaki etkin kimliğe göre ayarlanır.

      • Örneğin, Word belgeyi görüntüleme etkinliği, kullanıcı bir belge ekini seçtiğinde Microsoft Outlook'tan bir amaçtan başlatılır. Office'in belge görüntüleyici etkinliğinin kimliği, Outlook'tan kimliğe geçirilir.
    • Hizmetler için iş parçacığı kimliği, bir onStart veya onBind çağrısı süresi boyunca benzer şekilde ayarlanır. Binder'den onBind döndürülen çağrılar da iş parçacığı kimliğini geçici olarak ayarlar.

    • içine ContentProvider çağrıları, iş parçacığı kimliğini süreleri boyunca benzer şekilde ayarlar.

  • Bir etkinlikle kullanıcı etkileşimi, bağlam düzeyinde etkin kimliği değiştirebilir. Örneğin:

    • Sırasında Resume yetkilendirme istemini iptal eden bir kullanıcı, boş bir kimliğe örtük bir geçişe neden olur.

Örtük Kimlik Değişikliklerini İşleme

Uygulamanız isteğe bağlı olarak bu örtük kimlik değişikliklerini dinleyebilir ve bunlara tepki verebilir. Örneğin, uygulamanızın yeni bir gelen kutusu ayarlaması gibi eklenen bir hesabın kullanılabilmesi için birden çok adım gerekebilir. Bu eksik hesabın kimliğine geçiş yapılan bir kimlik gördükten sonra uygulamanızın işleyicisi, kimlik anahtarını kabul etmeden önce kullanıcıyı hesap kurulum etkinliğine yönlendirebilir. Alternatif olarak, uygulamanızın işleyicisi bir hata iletişim kutusu görüntüleyebilir ve kimlik anahtarını engelleyebilir.

Uygulamanız, bu iş parçacığına uygulanan kimlik değişiklikleri için veya ContextProvider üzerinde ServiceMAMIdentityRequirementListener arabirimini uygulayabilir. Uygulamanızın geçersiz kılmalıdır:

public abstract void onMAMIdentitySwitchRequired(String identity,
        AppIdentitySwitchResultCallback callback);

Uygulamanız, bu etkinliğe uygulanan kimlik değişiklikleri için bir ActivitymamActivityIdentityRequirementListener arabirimini uygulayabilir. Uygulamanızın geçersiz kılmalıdır:

public abstract void onMAMIdentitySwitchRequired(String identity,
        AppIdentitySwitchReason reason,
        AppIdentitySwitchResultCallback callback);

AppIdentitySwitchReason enum parametresi örtük kimlik anahtarının kaynağını açıklar.

Sabit listesi değeri Varsayılan SDK davranışı Açıklama
CREATE Kimlik anahtarına izin verin. Kimlik anahtarı bir etkinlik oluşturma nedeniyle gerçekleşiyor.
NEW_INTENT Kimlik anahtarına izin verin. Bir etkinliğe yeni bir amaç atandığından kimlik anahtarı gerçekleşiyor.
RESUME_CANCELLED Kimlik anahtarını engelleyin. Özgeçmiş iptal edildiğinden kimlik anahtarı gerçekleşiyor. Bu durum en yaygın olarak son kullanıcı PIN, kimlik doğrulaması veya uyumluluk kullanıcı arabirimindeki geri düğmesine bastığında görülür.

AppIdentitySwitchResultCallback parametresi, geliştiricilerin kimlik anahtarı için varsayılan davranışı geçersiz kılmasını sağlar:

public interface AppIdentitySwitchResultCallback {
  /**
    * @param result
    *            whether the identity switch can proceed.
    */
  void reportIdentitySwitchResult(AppIdentitySwitchResult result);
}
// Where [AppIdentitySwitchResult] is either `SUCCESS` or `FAILURE`.

onMAMIdentitySwitchRequired , içinden döndürülen bir Bağlayıcı aracılığıyla yapılanlar dışında tüm örtük kimlik değişiklikleri için çağrılır MAMService.onMAMBind. Hemen çağrının onMAMIdentitySwitchRequired varsayılan uygulamaları:

  • callback.reportIdentitySwitchResult(FAILURE) nedeni olduğunda RESUME_CANCELLED.

  • callback.reportIdentitySwitchResult(SUCCESS) diğer tüm durumlarda.

Çoğu uygulamanın bir kimlik anahtarını farklı bir şekilde engellemesi veya geciktirmesi beklenmez, ancak bir uygulamanın bunu yapması gerekiyorsa aşağıdaki noktalar dikkate alınmalıdır:

  • Kimlik anahtarı engellenirse son kullanıcı davranışı, SDK'nın "diğer uygulamalardan veri alma" uygulama koruma ayarının veri girişini yasaklamasından kaynaklanan davranışla aynıdır.

  • Bir Hizmet ana iş parçacığında çalışıyorsa, reportIdentitySwitchResult zaman uyumlu olarak çağrılmalıdır veya UI iş parçacığı yanıt vermeyi durdurur.

  • Oluşturma için Activity , onMAMIdentitySwitchRequired öncesinde onMAMCreateçağrılacaktır. Uygulamanın kimlik anahtarına izin verilip verilmeyeceğini belirlemek için kullanıcı arabirimi göstermesi gerekiyorsa, bu kullanıcı arabiriminin farklı bir etkinlik kullanılarak gösterilmesi gerekir.

  • bir Activityiçinde, nedeni RESUME_CANCELLEDolarak boş kimliğe bir anahtar istendiğinde, uygulamanın bu kimlik anahtarıyla tutarlı verileri görüntülemek için sürdürülen etkinliği değiştirmesi gerekir. Bu mümkün değilse, uygulama anahtarı reddeder ve kullanıcıdan devam eden kimlik ilkesine uyması (örneğin, uygulama PIN'i giriş ekranıyla) yeniden uyması istenir.

Dikkat

Çok kimlikli bir uygulama hem yönetilen hem de yönetilmeyen uygulamalardan gelen verileri alabilir. Yönetilen kimliklerdeki verileri yönetilen bir şekilde işlemek uygulamanın sorumluluğundadır.

İstenen kimlik yönetiliyorsa (denetlemek için MAMPolicyManager.getIsIdentityManaged kullanın), ancak uygulama bu hesabı kullanamıyorsa (örneğin, e-posta hesapları gibi hesapların önce uygulamada ayarlanması gerektiğinden) kimlik anahtarı reddedilmelidir.

için MAMActivity.onMAMIdentitySwitchRequired varsayılan davranışa statik yöntemi MAMActivity.defaultOnMAMIdentitySwitchRequired(activity, identity, reason, callback)çağrılarak erişilebilir.

Benzer şekilde, geçersiz kılmanız MAMActivity.onSwitchMAMIdentityCompletegerekirse, açıkça 'den MAMActivitydevralmadan uygulayabilirsinizMAMActivityIdentitySwitchListener.

Kimlik Anahtarları ve Ekran Görüntüsü Kısıtlamaları

Intune Uygulama SDK'sı Window , ekran görüntüsü ilkesini zorunlu kılmak için bayrağını FLAG_SECURE kullanır. Bazı uygulamalar kendi amaçları doğrultusunda da ayarlanabilir FLAG_SECURE . Uygulama koruma ilkesi ekran görüntülerini kısıtlamadığında SDK'da değişiklik FLAG_SECUREolmaz.

İlkesinde ekran görüntülerinin devre dışı bırakılması gereken bir kimlikten, ilkesi olmayan bir kimliğe kimlik anahtarında SDK işaretini kaldırır FLAG_SECURE. Sonuç olarak, uygulamanız bir kimlik anahtarı sonrasında kalan kümeye FLAG_SECURE güvenmemelidir.

Zaman Uyumsuz İşlemlerde Kimliği Koruma

Uygulamalar genellikle diğer iş parçacıklarındaki işlemleri işlemek için kullanıcı arabirimi iş parçacığından arka plan görevleri gönderilir. Çok kimlikli bir uygulama, bu arka plan görevlerinin uygun kimlikle çalıştığından emin olmalıdır. Bu kimlik genellikle bunları dağıtan etkinlik tarafından kullanılan kimlikle aynıdır.

Intune Uygulama SDK'sı, zaman uyumsuz işlemlerde kimliğin korunmasına yardımcı olmak için MAMAsyncTask ve MAMIdentityExecutors sağlar. Zaman uyumsuz işlemleri şunları gerçekleştirebiliyorsa uygulamanızın bunları kullanması (veya görevlerde iş parçacığı kimliğini açıkça ayarlaması) gerekir:

  • Yönetilen kimliğe ait verileri bir dosyaya yazma
  • Diğer uygulamalarla iletişim kurma

MAMAsyncTask

kullanmak MAMAsyncTaskiçin, ve'nin AsyncTask geçersiz kılmalarını doInBackgroundMAMdoInBackgroundonPreExecuteonPreExecuteMAM ve yerine devralın. MAMAsyncTask Oluşturucu bir etkinlik bağlamı alır. Örneğin:

AsyncTask<Object, Object, Object> task = new MAMAsyncTask<Object, Object, Object>(thisActivity) {

    @Override
    protected Object doInBackgroundMAM(final Object[] params) {
        // Do operations.
    }

    @Override
    protected void onPreExecuteMAM() {
        // Do setup.
    };
}

MAMAsyncTask , etkin kimliği normal öncelik sırasına göre kabul eder.

MAMIdentityExecutors

MAMIdentityExecutorsve yöntemleriyle kimlik koruyucu/ExecutorServiceExecutorolarak mevcut Executor veya ExecutorService örneği sarmalamanıza olanak tanır.wrapExecutorwrapExecutorService Örneğin,

Executor wrappedExecutor = MAMIdentityExecutors.wrapExecutor(originalExecutor, activity);
ExecutorService wrappedService = MAMIdentityExecutors.wrapExecutorService(originalExecutorService, activity);

MAMIdentityExecutors , etkin kimliği normal öncelik sırasına göre kabul eder.

Dosya Koruması

Korumalı Dosyalar Yazma

Yukarıdaki Kimlikle Uygulama Verilerini Düzenleme bölümünde belirtildiği gibi, Intune Uygulama SDK'sı etkin kimliği (iş parçacığı/işlem düzeyinden) yazıldıkları dosyalarla ilişkilendirir. Düzgün şifreleme ve seçmeli silme işlevselliği sağlamak için dosya oluşturma zamanında doğru kimliğin ayarlanması kritik önem taşır.

Uygulamanız, özellikle MAMFileProtectionManager.getProtectionInfo sorgulamak ve değiştirmek için MAMFileProtectionManager sınıfını kullanarak bir dosyanın kimliğini sorgular veya MAMFileProtectionManager.protect değiştirebilir.

protect yöntemi dizinleri korumak için de kullanılabilir. Dizin koruması, dizinin içerdiği tüm dosyalara ve alt dizinlere özyinelemeli olarak uygulanır. Bir dizin korunduğunda, dizin içinde oluşturulan tüm yeni dosyalar otomatik olarak aynı koruma uygulanır. Dizin koruması yinelemeli olarak uygulandığından, çağrının protect büyük dizinler için tamamlanması biraz zaman alabilir. Bu nedenle, çok sayıda dosya içeren bir dizine koruma uygulayan uygulamalar arka plan iş parçacığında zaman uyumsuz olarak çalışmak protect isteyebilir.

Identity parametresi için boş dizeyle çağrılması protect , dosyayı/dizini yönetilmeyen kimlikle etiketler. Bu işlem, daha önce şifrelendiyse dosyadan/dizinden şifrelemeyi kaldırır. Seçmeli silme komutu verildiğinde, dosya/dizin silinmez.

Korumalı Dosya İçeriğini Görüntüleme

Yetkisiz kullanıcıların yönetilen verileri görüntülemesini önlemek için dosya içeriği görüntülenirken doğru kimliğin ayarlanması da aynı derecede kritiktir. SDK, okunan dosyalarla içinde görüntülenen Activityveriler arasındaki ilişkiyi otomatik olarak çıkaramaz. Uygulamaların yönetilen verileri görüntülemeden önce kullanıcı arabirimi kimliğini uygun şekilde ayarlaması gerekir . Bu, dosyalardan okunan verileri içerir.

Bir dosya uygulamanın dışından geliyorsa (genel olarak yazılabilir bir konumdan ContentProvider veya okunduysa), uygulama dosyadan okunan bilgileri görüntülemeden önce dosya kimliğini belirlemeyi (veri kaynağı için doğru MAMFileProtectionManager.getProtectionInfo aşırı yüklemesini kullanarak) denemelidir.

Null olmayan, boş olmayan bir kimlik bildirirsegetProtectionInfo, uygulamanın MAMActivity.switchMAMIdentity veya MAMPolicyManager.setUIPolicyIdentity kullanarak kullanıcı arabirimi kimliğini bu kimlikle eşleşecek şekilde ayarlaması gerekir. Kimlik anahtarı başarısız olursa, dosyadaki veriler görüntülenmemelidir .

bir içerik URI'sinden okurken, önce kimliği okumak gerekebilir ( getProtectionInfo aşırı yükleme ile bir Uri), ardından bağlamı veya iş parçacığı kimliğini uygun şekilde ayarlayın. Bu, üzerinde ContentResolverbir dosya tanımlayıcısı veya giriş akışı açmadan önce yapılmalıdır, aksi durumda işlem başarısız olabilir.

Örnek akış aşağıdakine benzer olabilir:

  • Kullanıcı uygulamada açmak için bir belge seçer.

  • Açık akış sırasında, diskten veri okumadan önce uygulama içeriği görüntülemek için kullanılması gereken kimliği onaylar:

    MAMFileProtectionInfo info = MAMFileProtectionManager.getProtectionInfo(docPath)
    if (info != null)
        MAMPolicyManager.setUIPolicyIdentity(activity, info.getIdentity(), callback, EnumSet.noneOf<IdentitySwitchOption.class>)
    
  • Uygulama, geri çağırma için bir sonuç bildirilene kadar bekler.

  • Bildirilen sonuç bir hataysa uygulama belgeyi görüntülemez.

  • Uygulama açılır ve dosyayı işler.

Bir uygulama dosyaları indirmek için Android DownloadManager kullanıyorsa, SDK daha önce açıklanan kimlik önceliğini kullanarak bu dosyaları otomatik olarak korumaya çalışır. İş parçacığı kimliği ayarlanmazsa, öğesini almak DownloadManager için kullanılan bağlam kullanılır. İndirilen dosyalar şirket verileri içeriyorsa, dosyaların indirildikten sonra taşınması veya yeniden oluşturulması durumunda koruma çağrısı yapmak uygulamanın sorumluluğundadır.

Çoklu Kimlik Geçişi'ne Single-Identity

Daha önce tek kimlikli Intune tümleştirmesi ile yayınlanan bir uygulama daha sonra çoklu kimliği tümleştirirse, önceden yüklenmiş uygulamalar bir geçişle karşılaşır. Bu geçiş kullanıcı tarafından görülemez.

Bu geçişi işlemek için uygulama gerekli değildir . Geçiş öncesinde oluşturulan tüm dosyalar yönetiliyor olarak kabul edilmeye devam eder (bu nedenle şifreleme ilkesi açıksa şifrelenirler).

Önceki tüm uygulama verilerinin yönetilen kimlikle ilişkilendirilmesini istemiyorsanız, bu geçişi algılayabilir ve korumayı açıkça kaldırabilirsiniz.

  • Uygulamanızın sürümünü, çoklu kimlik desteğinin eklendiği bilinen bir sürümle karşılaştırarak yükseltmeyi algılayın.
  • Yönetilen kimlikle ilişkilendirılmasını istemediğiniz dosyalarda veya dizinlerde kimlik parametresi için boş dizeyle çağrısı protect yapma.

Çevrimdışı Senaryolar

Şirket Portalı uygulaması yüklü olmadığında Intune Uygulama SDK'sı "çevrimdışı" modda çalışır. Dosya kimliği etiketleme çevrimdışı moda duyarlıdır:

  • Şirket Portalı yüklü değilse, dosyalar kimlikle etiketlenemez. MAMFileProtectionManager.protect dosyasını çevrimdışı modda çağırmak güvenlidir, ancak hiçbir etkisi olmaz.

  • Şirket Portalı yüklüyse ancak uygulamada Uygulama Koruma İlkesi yoksa, dosyalar güvenilir bir şekilde kimlik etiketiyle etiketlenemez.

  • Dosya kimliği etiketleme kullanılabilir duruma geldiğinde, daha önce oluşturulan tüm dosyalar, Tek Kimlikliden Çoklu Kimliğe Geçiş bölümünde açıklandığı gibi, uygulamanın daha önce tek kimlikle yönetilen bir uygulama olarak yüklendiği durumlar dışında kişisel/yönetilmeyen (boş dize kimliğine ait) olarak kabul edilir.

Bu durumlardan kaçınmak için, hesap kaydı başarıyla tamamlanana kadar uygulamalar hesap verilerini içeren dosyalar oluşturmaktan kaçınmalıdır. Uygulamanızın çevrimdışıyken kesinlikle dosya oluşturması gerekiyorsa, SDK çevrimiçi olduktan sonra dosyanın ilişkili kimliğini düzeltmek için MAMFileProtectionManager.protect kullanabilir.

Veri Arabellek Koruması

Uyarı

Tek bir dosyada birden çok maknede yer alan verilerin yazılmaması önerilir. Mümkünse uygulamanızın dosyalarını kimliğe göre düzenleyin.

SDK'nın MAMDataProtectionManager'ı , etiketli kimliği belirli veri arabelleklerinde ya da byte[]InputStream biçiminde denetlemek ve değiştirmek için yöntemler sağlar.

MAMDataProtectionManager.protect bir uygulamanın verileri bir kimlikle ilişkilendirmesine ve kimlik şu anda şifreleme ilkesiyle hedefleniyorsa verileri şifrelemesine olanak tanır. Bu şifrelenmiş veriler, bir dosyada diske depolamak için uygundur.

MAMDataProtectionManager ayrıca kimlikle ilişkili verileri sorgulamanıza ve şifrelerini kaldırmanıza olanak tanır.

kullanan MAMDataProtectionManager uygulamalar, bildirim için MANAGEMENT_REMOVED bir alıcı uygulamalıdır. Daha fazla ayrıntı için bkz. SDK'dan bildirimlere kaydolma .

Bu bildirim tamamlandıktan sonra, bu sınıf aracılığıyla korunan arabellekler artık okunamaz (arabellekler korunduğunda dosya şifreleme etkinleştirildiyse). Bir uygulama, bildirimi işlerken MANAGEMENT_REMOVED tüm arabellekleri çağırarak MAMDataProtectionManager.unprotect bu arabelleklerin okunamaz hale gelmesini önleyebilir. Kimlik bilgilerini korumak istiyorsanız bu bildirim sırasında arama protect yapmak da güvenlidir. Şifrelemenin bildirim sırasında devre dışı bırakılacağı garanti edilir ve işleyicideki çağrı protect veri arabelleklerini şifrelemez.

İçerik Sağlayıcıları

Çok kimlikli bir uygulama, yönetilen içeriğin uygunsuz bir şekilde paylaşılmasını önlemek için s aracılığıyla ContentProviderpaylaşılan verileri de korumalıdır.

Uygulamanızın içerik döndürmeden önce statik MAMContentProvider yöntemini isProvideContentAllowed(provider, contentIdentity) çağırması gerekir. Bu işlev false döndürürse, içerik çağırana döndürülmemelidir .

bir döndüren ParcelFileDescriptorçağrı isProvideContentAllowedContentProvider gerekli değildir. İçerik sağlayıcısı aracılığıyla döndürülen dosya tanımlayıcıları, dosya kimliğine göre otomatik olarak işlenir.

Seçmeli Temizleme

Varsayılan olarak, Intune Uygulama SDK'sı seçmeli silme işlemlerini otomatik olarak işler ve yönetilen kimlikle ilişkilendirilmiş tüm dosyaları siler. Daha sonra SDK, etkinlikleri tamamlayarak ve uygulama işlemini sonlandırarak uygulamayı düzgün bir şekilde kapatır.

SDK, uygulamanızın varsayılan temizleme davranışını tamamlaması (önerilen) veya geçersiz kılabilmesi için isteğe bağlı bir özellik sağlar.

SDK'nın varsayılan temizleme işleyicisi tarafından MAMDataProtectionManagerkorunan veri arabelleklerini işlemez. Uygulamanız bu özelliği kullandıysa, bu verileri kaldırmak için varsayılan temizleme işleyicisini tamamlaması veya geçersiz kılması gerekir .

Not

Varsayılan temizleme davranışının desteklenmesi ve geçersiz kılınılması için belirli SDK bildirimlerinin işlenmesi gerekir. Bildirim işleyicilerini uygulama hakkında daha fazla ayrıntı için bkz. SDK'dan bildirimlere kaydolma.

Varsayılan Temizleme Davranışını Tamamlama

Varsayılan SDK silme davranışını desteklemek için uygulamanız MAMNotificationType'aWIPE_USER_AUXILIARY_DATA kaydolabilir.

Bu bildirim, varsayılan seçmeli silme işlemini gerçekleştirmeden önce SDK tarafından gönderilir. SDK, verileri silip uygulamayı sonlandırmadan önce uygulamanızın bildirim işleyicisinin tamamlanmasını bekler. Uygulamanız verileri zaman uyumlu bir şekilde temizlemeli ve tüm temizleme tamamlanana kadar geri dönmemelidir.

Çok kimlikli uygulamalarda uygulamaya özgü temizleme yaygın olduğundan, uygulamalar varsayılan temizleme davranışını ile WIPE_USER_AUXILIARY_DATAdesteklemeyi kesinlikle göz önünde bulundurmalıdır.

Varsayılan Temizleme Davranışını Geçersiz Kılma

Varsayılan SDK silme davranışını geçersiz kılmak için uygulamanız MAMNotificationType'aWIPE_USER_DATA kaydolabilir.

Uyarı

Bir uygulamanın hem hem de WIPE_USER_DATAWIPE_USER_AUXILIARY_DATAiçin hiçbir zaman kaydolmaması gerekir.

Varsayılan SDK silme davranışını geçersiz kılma, uygulamanızda önemli bir risk oluşturur. Uygulamanız, bu kimlik için etiketlenmiş tüm dosyalar ve veri arabellekleri de dahil olmak üzere yönetilen kimlikle ilişkili tüm verilerin kaldırılmasından tamamen sorumlu olacaktır.

  • Yönetilen kimlik şifreleme ile korunuyorsa ve uygulamanızın özel temizleme işleyicisi tüm yönetilen verileri tamamen kaldırmıyorsa, kalan tüm yönetilen dosyalar şifrelenmiş olarak kalır. Bu verilere erişilemez hale gelir ve uygulamanız şifrelenmiş verileri düzgün bir şekilde okuma girişimini işlemeyebilir.
  • Yönetilen kimlikle etiketlenmemiş dosyaları kaldırırsa, uygulamanızın silme işleyicisi yönetilmeyen kullanıcılar için veri kaybına neden olabilir.

Uygulamanızın özel temizleme işleyicisi yönetilen verileri bir dosyadan kaldırır ancak dosyada başka veriler bırakmak isterse, dosyanın kimliğini (MAMFileProtectionManager.protect aracılığıyla) yönetilmeyen bir kimlik veya boş dize olarak değiştirmelidir.

Geçersiz kılınan temizleme işleyiciniz verileri zaman uyumlu bir şekilde temizlemeli ve tüm temizleme tamamlanana kadar geri dönmemelidir.

Bir silme işlemi gerçekleştikten sonra kullanıcının bellek içi verilere erişmesini önlemek için özel temizleme işleyicisi adımlarınızı tamamladıktan sonra uygulamanızı el ile kapatmayı göz önünde bulundurun.

Çıkış Ölçütleri

Uygulamanızın çoklu kimlik tümleştirmesini doğrulamak için önemli bir zaman ayırmayı planlayın. Teste başlamadan önce:

  • Bir hesaba uygulama koruma ilkesi oluşturun ve atayın. Bu, test yönetilen hesabınız olacaktır.
  • Başka bir hesaba uygulama koruma ilkesi oluşturun ancak atayın. Bu, yönetilmeyen test hesabınız olacaktır. Alternatif olarak, uygulamanız Microsoft Entra hesapların ötesinde birden çok hesap türünü destekliyorsa, yönetilmeyen test hesabı olarak mevcut AAD olmayan bir hesabı kullanabilirsiniz.
  • İlkenin uygulamanızda nasıl uygulandığını yeniden öğrenin. Çoklu kimlik testi, uygulamanızın ilke zorunlu kılınarak ne zaman çalıştığını ve çalışmamasını kolayca ayırt etmenizi gerektirir. Ekran görüntülerini engellemeye yönelik uygulama koruma ilkesi ayarı, ilke zorlamasını hızlı bir şekilde test etmede etkilidir.
  • Uygulamanızın sunduğu tüm kullanıcı arabirimi kümesini göz önünde bulundurun. Hesap verilerinin görüntülendiği ekranları numaralandırın. Uygulamanız tek bir hesabın verilerini tek seferde sunuyor mu yoksa aynı anda birden çok hesaba ait verileri sunabiliyor mu?
  • Uygulamanızın oluşturduğu dosya kümesinin tamamını göz önünde bulundurun. Sistem düzeyindeki verilerin aksine, bu dosyalardan hangilerinin bir hesaba ait verileri içerdiğini numaralandırın.
    • Bu dosyaların her birinde şifrelemeyi nasıl doğrulayabileceğinizi belirleyin.
  • Uygulamanızın diğer uygulamalarla etkileşim kurabileceği tüm yolları göz önünde bulundurun. Tüm giriş ve çıkış noktalarını numaralandırın. Uygulamanız hangi tür verileri alabilir? Hangi amaçları yayınlar? Hangi içerik sağlayıcılarını uygular?
    • Bu veri paylaşım özelliklerinin her birini nasıl uygulayabileceğinizi belirleyin.
    • Uygulamanızla etkileşim kurabilen hem yönetilen hem de yönetilmeyen uygulamalar içeren bir test cihazı hazırlayın.
  • Uygulamanızın son kullanıcının oturum açmış tüm hesaplarla etkileşim kurmasına nasıl olanak sağladığını düşünün. Bu hesabın verileri görüntülenmeden önce kullanıcının bir hesaba el ile geçmesi gerekiyor mu?

Uygulamanızın geçerli davranışını ayrıntılı bir şekilde değerlendirdikten sonra aşağıdaki test kümesini yürüterek çoklu kimlik tümleştirmesini doğrulayın. Bunun kapsamlı bir liste olmadığını ve uygulamanızın çoklu kimlik uygulamasının hatasız olduğunu garanti etmez.

Oturum açma ve oturumu kapatma senaryolarını doğrulama

Çok kimlikli uygulamanız en fazla 1 yönetilen hesabı ve birden çok yönetilmeyen hesabı destekler. Bu testler, kullanıcılar oturum açtığında veya oturumu kapattığında çoklu kimlik tümleştirmenizin korumaları yanlış değiştirmediğinden emin olunmasını sağlar.

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

Senaryo Adımlar
Önce yönetilen oturum açma - İlk olarak yönetilen bir hesapla oturum açın ve hesabın verilerinin yönetildiğini doğrulayın.
- Yönetilmeyen bir hesapla oturum açın ve hesabın verilerinin yönetilmediğini doğrulayın.
Önce yönetilmeyen oturum aç - İlk olarak yönetilmeyen bir hesapla oturum açın ve hesabın verilerinin yönetilmediğini doğrulayın.
- Yönetilen bir hesapla oturum açın ve hesabın verilerinin yönetildiğini doğrulayın.
Birden çok yönetilen oturum açma - İlk olarak yönetilen bir hesapla oturum açın ve hesabın verilerinin yönetildiğini doğrulayın.
- İkinci bir yönetilen hesapla oturum açın ve önce özgün yönetilen hesabı kaldırmadan kullanıcının oturum açmasının engellendiğini doğrulayın.
Yönetilen oturumu kapatma - Yönetilen bir yönetilmeyen hesapla uygulamanızda oturum açın.
- Yönetilen hesabın oturumunu kapatın.
- Yönetilen hesabın uygulamanızdan kaldırıldığını ve bu hesabın tüm verilerinin kaldırıldığını onaylayın.
- Yönetilmeyen hesabın hala oturum açtığını, yönetilmeyen hesabın verilerinin hiçbirinin kaldırılmadığını ve ilkenin hala uygulanmadığını onaylayın.
Yönetilmeyen oturumu kapatma - Yönetilen bir yönetilmeyen hesapla uygulamanızda oturum açın.
- Yönetilmeyen hesabın oturumunu kapatın.
- Yönetilmeyen hesabın uygulamanızdan kaldırıldığını ve bu hesabın tüm verilerinin kaldırıldığını onaylayın.
- Yönetilen hesabın hala oturum açtığını, yönetilmeyen hesabın verilerinin hiçbirinin kaldırılmadığını ve ilkenin hala uygulandığını onaylayın.

Etkin kimlik ve uygulama yaşam döngüsünü doğrulama

Çok kimlikli uygulamanız tek bir hesabın verileriyle görünümler sunabilir ve kullanıcının geçerli kullanımdaki hesabı açıkça değiştirmesine izin verebilir. Aynı anda birden çok hesabın verilerini içeren görünümler de sunabilir. Bu testler, çoklu kimlik tümleştirmenizin tüm uygulama yaşam döngüsü boyunca her sayfada etkin kimlik için doğru korumaları sağlamasına yardımcı olur.

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

Senaryo Adımlar
Tek hesap görünümü, yönetilen - Yönetilen hesaba geçin.
- Uygulamanızda tek bir hesabın verilerini sunan tüm sayfalara gidin.
- İlkenin her sayfaya uygulandığını onaylayın.
Tek hesap görünümü, yönetilmeyen - Yönetilmeyen hesaba geçin.
- Uygulamanızda tek bir hesabın verilerini sunan tüm sayfalara gidin.
- İlkenin hiçbir sayfaya uygulanmadığını onaylayın.
Çok hesaplı görünüm - Uygulamanızda aynı anda birden çok hesabın verilerini sunan tüm sayfalara gidin.
- İlkenin her sayfaya uygulandığını onaylayın.
Yönetilen duraklatma - Yönetilen verilerin görüntülendiği ve ilkenin etkin olduğu bir ekranda, cihazın giriş ekranına veya başka bir uygulamaya giderek uygulamayı duraklatın.
- Uygulamayı sürdür.
- İlkenin hala uygulandığını onaylayın.
Yönetilmeyen duraklatma - Yönetilmeyen verilerin görüntülendiği ve ilkenin etkin olmadığı bir ekranda, cihazın giriş ekranına veya başka bir uygulamaya giderek uygulamayı duraklatın.
- Uygulamayı sürdür.
- İlkenin uygulanmadığını onaylayın.
Yönetilen sonlandırma - Yönetilen verilerin görüntülendiği ve ilkenin etkin olduğu bir ekranda uygulamayı sonlandırmaya zorlayabilirsiniz.
- Uygulamayı yeniden başlatın.
- Uygulama yönetilen hesabın verileriyle (beklenen) bir ekranda devam ederse ilkenin hala uygulandığını onaylayın. Uygulama yönetilmeyen hesabın verilerini içeren bir ekranda devam ederse ilkenin uygulanmadığını onaylayın.
Yönetilmeyen sonlandırma - Yönetilmeyen verilerin görüntülendiği ve ilkenin etkin olduğu bir ekranda uygulamayı zorla sonlandırmaya zorlayabilirsiniz.
- Uygulamayı yeniden başlatın.
- Uygulama yönetilmeyen hesabın verileriyle (beklenen) bir ekranda devam ederse ilkenin uygulanmadığını onaylayın. Uygulama yönetilen hesabın verileriyle bir ekranda sürdürülürse ilkenin hala uygulandığını onaylayın.
Kimlik anahtarı geçici - Hesaplar arasında geçiş yapma ve uygulamayı duraklatma / devam ettirme / öldürme / yeniden başlatma denemesi.
- Yönetilen hesabın verilerinin her zaman korunduğunu ve yönetilmeyen hesabın verilerinin hiçbir zaman korunmadığını onaylayın.

Veri paylaşımı senaryolarını doğrulama

Çok kimlikli uygulamanız diğer uygulamalara veri gönderebilir ve bu uygulamalardan veri alabilir. Intune'un uygulama koruma ilkeleri, bu davranışı belirleyen ayarlara sahiptir. Bu testler, çoklu kimlik tümleştirmenizin bu veri paylaşımı ayarlarını yerine getirdiğinden emin olunmasını sağlar.

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

  • Yönetilen hesabın ilkesini şu şekilde ayarlayın:
    • "Kuruluş verilerini diğer uygulamalara gönder", "İlkeyle yönetilen uygulamalar".
    • "Diğer uygulamalardan veri alma" için "İlkeyle yönetilen uygulamalar" seçeneğine gidin.
  • Test cihazına diğer uygulamaları yükleyin:
    • Uygulamanızla aynı ilkeye sahip olan ve veri gönderip alabilen (Microsoft Outlook gibi) yönetilen bir uygulama.
    • Veri gönderebilen ve alabilen yönetilmeyen tüm uygulamalar.
  • Yönetilen test hesabıyla diğer yönetilen uygulamada oturum açın. Diğer yönetilen uygulama birden çok kimlikli olsa bile, yalnızca yönetilen hesapla oturum açın.

Uygulamanız, Microsoft Outlook'un Microsoft Office'e belge eki göndermesi gibi diğer uygulamalara veri gönderebilme özelliğine sahipse:

Senaryo Adımlar
Yönetilmeyen uygulamaya yönetilen kimlik gönderme - Yönetilen hesaba geçin.
- Uygulamanızın veri gönderebileceği yere gidin.
- Yönetilmeyen bir uygulamaya veri göndermeyi deneme.
- Yönetilmeyen uygulamaya veri göndermeniz engellenmelidir.
Yönetilen uygulamaya yönetilen kimlik gönderme - Yönetilen hesaba geçin.
- Uygulamanızın veri gönderebileceği yere gidin.
- Yönetilen hesabın oturum açtığı diğer yönetilen uygulamaya veri göndermeyi deneme.
- Yönetilen uygulamaya veri göndermenize izin verilmelidir.
Yönetilen uygulamaya yönetilmeyen kimlik gönderme - Yönetilmeyen hesaba geçin.
- Uygulamanızın veri gönderebileceği yere gidin.
- Yönetilen hesabın oturum açtığı diğer yönetilen uygulamaya veri göndermeyi deneme.
- Diğer yönetilen uygulamaya veri göndermeniz engellenmelidir.
Yönetilmeyen uygulamaya yönetilmeyen kimlik gönderme - Yönetilmeyen hesaba geçin.
- Uygulamanızın veri gönderebileceği yere gidin.
- Yönetilmeyen bir uygulamaya veri göndermeyi deneme.
- Yönetilmeyen bir hesabın verilerini her zaman yönetilmeyen bir uygulamaya göndermenize izin verilmelidir.

Uygulamanız, Microsoft Outlook'un Microsoft OneDrive'dan dosya eklemesi gibi diğer uygulamalardan verileri etkin bir şekilde içeri aktarabilir. Uygulamanız, Microsoft Office'in bir Microsoft Outlook ekinden belge açması gibi diğer uygulamalardan da pasif olarak veri alabilir. Uygulama koruma ilkesi alma ayarı her iki senaryoyu da kapsar.

Uygulamanızın diğer uygulamalardan verileri etkin bir şekilde içeri aktarma özelliği varsa:

Senaryo Adımlar
Yönetilmeyen uygulamadan yönetilen kimlik içeri aktarma - Yönetilen hesaba geçin.
- Uygulamanızın diğer uygulamalardan verileri içeri aktarabileceği yere gidin.
- Yönetilmeyen bir uygulamadan verileri içeri aktarmayı deneme.
- Yönetilmeyen uygulamalardan veri içeri aktarmanız engellenmelidir.
Yönetilen uygulamadan yönetilen kimlik içeri aktarma - Yönetilen hesaba geçin.
- Uygulamanızın diğer uygulamalardan verileri içeri aktarabileceği yere gidin.
- Yönetilen hesabın oturum açtığı diğer yönetilen uygulamadan verileri içeri aktarmayı deneme.
- Diğer yönetilen uygulamadan verileri içeri aktarmanıza izin verilmelidir.
Yönetilen uygulamadan yönetilmeyen kimlik içeri aktarma - Yönetilmeyen hesaba geçin.
- Uygulamanızın diğer uygulamalardan verileri içeri aktarabileceği yere gidin.
- Yönetilen hesabın oturum açtığı diğer yönetilen uygulamadan verileri içeri aktarmayı deneme.
- Diğer yönetilen uygulamadan veri içeri aktarmanız engellenmelidir.
Yönetilmeyen uygulamadan yönetilmeyen kimlik içeri aktarma - Yönetilmeyen hesaba geçin.
- Uygulamanızın diğer uygulamalardan verileri içeri aktarabileceği yere gidin.
- Yönetilmeyen bir uygulamadan verileri içeri aktarmayı deneme.
- Yönetilmeyen bir hesap için her zaman yönetilmeyen uygulamadan veri içeri aktarmanıza izin verilmelidir.

Uygulamanızın diğer uygulamalardan pasif veri alma özelliği varsa:

Senaryo Adımlar
Yönetilmeyen uygulamadan yönetilen kimlik alma - Yönetilen hesaba geçin.
- Yönetilmeyen uygulamaya geçin.
- Veri gönderebileceği yere gidin.
- Yönetilmeyen uygulamadan uygulamanıza veri göndermeyi deneme.
- Uygulamanızın yönetilen hesabı yönetilmeyen uygulamadan veri alamamalıdır.
Yönetilen uygulamadan yönetilen kimlik alma - Yönetilen hesaba geçin.
- Yönetilen hesabın oturum açtığı diğer yönetilen uygulamaya geçin.
- Veri gönderebileceği yere gidin.
- Yönetilen uygulamadan uygulamanıza veri göndermeyi deneme.
- Uygulamanızın yönetilen hesabının diğer yönetilen uygulamadan veri almasına izin verilmelidir.
Yönetilen uygulamadan yönetilmeyen kimlik alma - Yönetilmeyen hesaba geçin.
- Yönetilen hesabın oturum açtığı diğer yönetilen uygulamaya geçin.
- Veri gönderebileceği yere gidin.
- Yönetilen uygulamadan uygulamanıza veri göndermeyi deneme.
- Uygulamanızın yönetilmeyen hesabı yönetilen uygulamadan veri alamamalıdır.
Yönetilmeyen uygulamadan yönetilmeyen kimlik alma - Yönetilmeyen hesaba geçin.
- Yönetilmeyen uygulamaya geçin.
- Veri gönderebileceği yere gidin.
- Yönetilmeyen uygulamadan uygulamanıza veri göndermeyi deneme.
- Uygulamanızın yönetilmeyen hesabının her zaman yönetilmeyen uygulamadan veri almasına izin verilmelidir.

Bu testlerdeki hatalar, uygulamanızın veri göndermeye veya almaya çalıştığında doğru etkin kimliğe sahip olmadığını gösterebilir. Etkin kimliğin düzgün ayarlandığını onaylamak için sdk'nın kimlik alma API'lerinden yararlanarak bunu araştırabilirsiniz.

Seçmeli silme senaryolarını doğrulama

Çok kimlikli uygulamanız SDK'nın varsayılan silme davranışını tamamlamış veya geçersiz kılmış olabilir. Bu testler, çoklu kimlik tümleştirmenizin, yönetilmeyen verileri etkilemeden silme işlemleri başlatıldığında yönetilen verileri düzgün bir şekilde kaldırmasını sağlamaya yardımcı olur.

Uyarı

Anımsatıcı, uygulamanız uygulamasından yararlandıysa MAMDataProtectionManager.protectveya WIPE_USER_DATAiçin WIPE_USER_AUXILIARY_DATA bir işleyici uygulamalıdır.

Bu testler için uygulamanızı ve Intune Şirket Portalı yükleyin; teste başlamadan önce hem yönetilen hem de yönetilmeyen bir hesapla oturum açın. Her iki hesap için de hesap verilerini depolayan uygulama senaryolarını alıştırma.

Senaryo Önkoşulları Adımlar
Ek silme işleyicisi Uygulamanız için bir işleyici uyguladı WIPE_USER_AUXILIARY_DATA - Microsoft Intune yönetim merkezinden seçmeli silme işlemi yapın.
- Temizleme işleyicinizin başarıyla yürütüldüğünü onaylayın (genellikle günlüğe kaydetme yoluyla).
- Yönetilen hesabın uygulamanızdan kaldırıldığını ve bu hesabın tüm verilerinin kaldırıldığını onaylayın.
- Yönetilmeyen hesabın hala oturum açtığını, yönetilmeyen hesabın verilerinin hiçbirinin kaldırılmadığını ve ilkenin hala uygulanmadığını onaylayın.
Geçersiz kılma temizleme işleyicisi Uygulamanız için bir işleyici uyguladı WIPE_USER_DATA - Microsoft Intune yönetim merkezinden seçmeli silme işlemi yapın.
- Temizleme işleyicinizin başarıyla yürütüldüğünü onaylayın (genellikle günlüğe kaydetme yoluyla).
- Yönetilen hesabın uygulamanızdan kaldırıldığını ve bu hesabın tüm verilerinin kaldırıldığını onaylayın.
- Yönetilmeyen hesabın hala oturum açtığını, yönetilmeyen hesabın verilerinin hiçbirinin kaldırılmadığını ve ilkenin hala uygulanmadığını onaylayın.
- Silme işleyiciniz tamamlandıktan sonra uygulamanızın düzgün bir şekilde çıktığını veya hala iyi durumda olduğunu onaylayın.
El ile dosya koruması - Uygulama çağrılarınız MAMFileProtectionManager.protect
- Uygulamanız için bir işleyici uyguladı WIPE_USER_DATA
- Uygulamanızın yönetilen hesaba ait en az bir dosyayı el ile koruyabileceği senaryolar kullandığınızdan emin olun.
- Microsoft Intune yönetim merkezinden seçmeli silme işlemi yapın.
- Dosyaların kaldırıldığını onaylayın.
El ile veri arabelleği koruması - Uygulama çağrılarınız MAMDataProtectionManager.protect
- Uygulamanız veya için WIPE_USER_AUXILIARY_DATA bir işleyici uyguladı WIPE_USER_DATA
- Uygulamanızın yönetilen hesaba ait en az bir veri arabelleğinin el ile korunacağı senaryolar kullandığınızdan emin olun.
- Microsoft Intune yönetim merkezinden seçmeli silme işlemi yapın.
- Veri arabelleklerinin depolandıkları dosyalardan kaldırıldığını ve uygulamanızın bu dosyalardan yönetilmeyen verileri okuyabildiğini onaylayın.

Sonraki Adımlar

Yukarıdaki tüm Çıkış Ölçütlerini tamamladıktan sonra, uygulamanız artık çok kimlikli olarak başarıyla tümleştirilir ve uygulama koruma ilkelerini kimlik temelinde zorunlu kılabilir. Sonraki bölümler olan 6. Aşama: Uygulama Yapılandırması ve 7. Aşama: Uygulama Katılım Özellikleri, uygulamanızın istenen uygulama koruma ilkesi desteğine bağlı olarak gerekli olabilir veya olmayabilir. Bu bölümlerden herhangi birinin uygulamanız için geçerli olup olmadığından emin değilseniz SDK tümleştirmesi için Önemli Kararlar'a yeniden bakın.