Android için Intune Uygulama SDK'sı - Çoklu Kimlik
Android için Microsoft Intune Uygulama SDK'sı, yerel Java/Kotlin Android uygulamanıza Intune uygulama koruma ilkelerini (APP veya MAM ilkeleri olarak da bilinir) dahil etmenizi sağlar. Intune yönetilen uygulama, Intune Uygulama SDK'sı ile tümleştirilmiş uygulamadır. Intune yöneticileri, Intune uygulamayı etkin bir şekilde yönettiğinde uygulama koruma ilkelerini Intune yönetilen uygulamanıza kolayca dağıtabilir.
Not
Bu kılavuz birkaç ayrı aşamaya ayrılmıştır. 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ı anlayın.
- 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, kimliğin tanımlayıcısı olarak sağlanan OID'yi (Microsoft Entra ID veya AAD Kimliği olarak da bilinir) kullanır. MAM SDK API'leri kimlik olarak OID dizesini döndürür ve kimlik için OID dizesi parametresini gerektirir. Bazı yöntemler de bir UPN dizesi alabilir veya döndürebilir; bu durumda UPN yalnızca bilgilendirme amaçlıdır.
Kimlik parametreleri 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.
Dikkat
UpN dizesini alan veya döndüren kullanım dışı yöntemleri kullanan uygulamalar için, uygulamaların çeşitli API çağrılarına geçirilen kimlik UPN dizesinin tutarlı olduğundan emin olması gerekir. Tutarsız UPN dizelerinin geçirilmesi veri sızıntılarına neden olabilir.
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:
- İş parçacığı düzeyi
-
Context
(genel olarakActivity
) düzey - İş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 Context
bir değeri yoktur.
En yaygın olarak, uygulamalar üzerindeki kimliği Activity
ayarlarContext
.
içinde kimliği Activity.onCreate
ayarlamayı 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 setUIPolicyIdentityOID(final Context context, final String oid,
final MAMSetUIIdentityCallback mamSetUIIdentityCallback, final EnumSet<IdentitySwitchOption> options);
public static String getUIPolicyIdentityOID(final Context context);
public static MAMIdentitySwitchResult setProcessIdentityOID(final String oid);
public static String getProcessIdentityOID();
public static MAMIdentitySwitchResult setCurrentThreadIdentityOID(final String oid);
public static String getCurrentThreadIdentityOID();
/**
* 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 getPolicyForIdentityOID(final String oid);
public static boolean getIsIdentityOIDManaged(final String oid);
Kolaylık sağlamak için, bir etkinliğin kimliğini çağırmak MAMPolicyManager.setUIPolicyIdentityOID
yerine 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 switchMAMIdentityOID(final String newIdentityOid, 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 MAMIdentitySwitchResult
dö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üzeydeki etkin kimliğinContext
sağlananIntent
parametreyle ilişkilendirildiğini varsayar. Düzey kimliğini 'Context
nin bağlamıyla değilApplication
bağlamıylaActivity
ayarlamanızı kesinlikle öneririz.Etkinliğin
Context
onCreate
yöntemi sırasında kimliğin ayarlanması önerilir. Ancak, gibionNewIntent
diğ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.
setUIPolicyIdentityOID 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ı Context
üzerindeki önceki bir çağrının setUIPolicyIdentityOID
sonucu henüz teslim edilmemişken çağrısı yapılırsasetUIPolicyIdentityOID
, yeni geri arama eskinin yerini alır ve özgün geri arama hiçbir zaman sonuç almaz.
Dikkat
Context
setUIPolicyIdentityOID için sağlanan bir Activity
ise 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 MAMActivity
bir 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 setUIPolicyIdentityOID ve switchMAMIdentityOID 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:- 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.
- Uygulamanız belge görüntüleme amacını alır. Bu amaç yönetilen kimlikle etiketlenmiş.
- Uygulamanız yönetilen kimliğe geçirilir ve korumalar düzgün uygulanmış olarak bu belgeyi görüntüler.
- 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:- 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.
- Uygulamanız belge görüntüleme amacını alır. Bu amaç yönetilen kimlikle etiketlenmiş.
- Uygulamanız yönetilen kimliğe geçirilir ve korumalar düzgün uygulanmış olarak bu belgeyi görüntüler.
- 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.
OID parametresi olarak ayarlanmış null
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 OID 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 , getUIPolicyIdentityOID
ve getProcessIdentityOID
yöntemlerini kullanıngetCurrentThreadIdentityOID
.
Örtük Kimlik Değişikliklerinin Kaynakları
diğer Intune 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 noktadaIntent
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
veyaonBind
çağrısı süresi boyunca benzer şekilde ayarlanır.Binder
'denonBind
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.
- Sırasında
Ö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 Service
MAMIdentityRequirementListener arabirimini uygulayabilir. Uygulamanızın geçersiz kılmalıdır:
public abstract void onMAMIdentitySwitchRequired(String upn, String oid,
AppIdentitySwitchResultCallback callback);
Uygulamanız, bu etkinliğe uygulanan kimlik değişiklikleri için bir Activity
mamActivityIdentityRequirementListener arabirimini uygulayabilir.
Uygulamanızın geçersiz kılmalıdır:
public abstract void onMAMIdentitySwitchRequired(String upn, String oid,
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ğundaRESUME_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 öncesindeonMAMCreate
ç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
Activity
içinde, nedeniRESUME_CANCELLED
olarak 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.getIsIdentityOIDManaged 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, upn, oid, reason, callback)
çağrılarak erişilebilir.
Benzer şekilde, geçersiz kılmanız MAMActivity.onSwitchMAMIdentityComplete
gerekirse, açıkça 'den MAMActivity
devralmadan 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_SECURE
olmaz.
İ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'a kolaylık 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 MAMAsyncTask
için, ve'nin AsyncTask
geçersiz kılmalarını doInBackgroundMAM
doInBackground
onPreExecute
onPreExecuteMAM
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
MAMIdentityExecutors
ve yöntemleriyle kimlik koruyucu/ExecutorService
Executor
olarak mevcut Executor
veya ExecutorService
örneği sarmalamanıza olanak tanır.wrapExecutor
wrapExecutorService
Mesela
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.protectForOID
değiştirebilir.
protectForOID
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 protectForOID
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 protectForOID
isteyebilir.
Identity parametresi için boş dizeyle çağrılması protectForOID
, 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.
Uyarı
Yalnızca belirli bir kimliğe ait dosyaların bu kimlikle korunduğundan emin olmak önemlidir. Aksi takdirde, diğer kimlikler sahip olan kimlik oturumunu kapattığında veri kaybıyla karşılaşabilir çünkü dosyalar silinecek ve şifreleme anahtarı erişimi kaybolacaktır.
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 Activity
veriler 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.switchMAMIdentityOID veya MAMPolicyManager.setUIPolicyIdentityOID 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 ContentResolver
bir 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.setUIPolicyIdentityOID(activity, info.getIdentityOID(), 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 protectForOID ç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ı
protectForOID
yapma.
Çevrimdışı Senaryolar
Intune Uygulama SDK'sı, Şirket Portalı uygulaması yüklü olmadığında "çevrimdışı" modda çalışır. Dosya kimliği etiketleme çevrimdışı moda duyarlıdır:
Şirket Portalı yüklü değilse, dosyalar kimlikle etiketlenemez. MAMFileProtectionManager.protectForOID 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.protectForOID 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.protectForOID
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 protectForOID
yapmak da güvenlidir.
Şifrelemenin bildirim sırasında devre dışı bırakılacağı garanti edilir ve işleyicideki çağrı protectForOID
veri arabelleklerini şifrelemez.
Uyarı
Uygulama işleminin erken aşamalarında şifreleme işlemlerinden kaçınılmalıdır. SDK, uygulama başlangıcından sonra mümkün olan en erken zamanda şifreleme başlatma işlemini zaman uyumsuz olarak gerçekleştirir. Ancak, uygulama başlatma sırasında bir uygulama şifreleme isteğinde bulunursa, şifreleme başlatma tamamlanana kadar engellenebilir.
Not
Intune Uygulama SDK'sı şifreleme API'sinin yalnızca verileri Intune ilkesine göre şifrelemek için kullanılması gerekir. Şifreleme ilkesi etkinken hedeflenmemiş hesaplara koruma uygulanmaz, bu nedenle genel amaçlı şifreleme kitaplığı olarak kullanılamaz.
İç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 ContentProvider
paylaşılan verileri de korumalıdır.
Uygulamanızın içerik döndürmeden önce statik MAMContentProvider yöntemini isProvideContentAllowedForOid(provider, oid)
ç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ı isProvideContentAllowedForOid
ContentProvider
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ı, yönetilen kimlikle ilişkilendirilmiş tüm dosyaları silerek seçmeli silme işlemlerini otomatik olarak işler. 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 MAMDataProtectionManager
korunan 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_DATA
desteklemeyi 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_DATA
WIPE_USER_AUXILIARY_DATA
iç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.protectForOID 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 bir Entra olmayan 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 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.protectForOID
veya WIPE_USER_DATA
iç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.protectForOID - 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.protectForOID - 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.