Sdílet prostřednictvím


Intune App SDK pro Android – Více identit

Sada Microsoft Intune App SDK pro Android umožňuje začlenit zásady ochrany aplikací Intune (označované také jako zásady APP nebo MAM) do nativní aplikace Java/Kotlin pro Android. Aplikace spravovaná v Intune je aplikace integrovaná se sadou Intune App SDK. Správci Intune můžou zásady ochrany aplikací snadno nasadit do aplikace spravované v Intune, když Intune aplikaci aktivně spravuje.

Poznámka

Tato příručka je rozdělená do několika různých fází. Začněte tím, že si projděte fázi 1: Plánování integrace.

Fáze 5: Více identit

Goals fáze

  • Zjistěte, jestli vaše aplikace potřebuje podporu více identit.
  • Seznamte se s tím, jak intune App SDK vnímá identity.
  • Refaktorujte aplikaci pro rozpoznávání identity.
  • Přidejte kód, který informuje sadu SDK o aktivních a měnících se identitách v rámci vaší aplikace.
  • Důkladně otestujte vynucování zásad ochrany aplikací pro spravované i nespravované identity.

Terminologie identit

Termíny "uživatel", "účet" a "identita" se často používají zaměnitelně. Tato příručka se pokouší odlišit následujícím způsobem:

  • Uživatel: člověk používající softwarový produkt. Dále se liší od koncového uživatele, člověka používajícího aplikaci pro Androida / uživatele / správce s it správcem, it specialistu / , člověka používajícího centrum pro správu Microsoft Intune.
  • Účet: softwarový záznam patřící organizaci, která jedinečně identifikuje entitu uživatele. Lidský uživatel může mít více účtů.
  • Identita: sada dat, kterou sada Intune App SDK používá k jedinečné identifikaci účtu.

Pozadí

Intune App SDK ve výchozím nastavení aplikuje zásady na celou vaši aplikaci. Po registraci účtu s cílovými zásadami ochrany aplikací sada SDK přidruží každý soubor a každou aktivitu k identitě daného účtu a obecně použije cílové zásady daného účtu.

Pro mnoho vývojářů se jedná o požadované chování ochrany aplikací pro jejich aplikaci. Tyto aplikace se považují za jednu identitu. Po dokončení předchozích fází se vaše aplikace úspěšně integrovala jako jedna identita a může vynutit všechny základní zásady. Aplikace, které mají zůstat v rámci jedné identity, můžou tuto část přeskočit a pokračovat fází 6: App Configuration.

Intune App SDK může volitelně vynucovat zásady na úrovni jednotlivých identit. Pokud už vaše aplikace podporuje více účtů přihlášených současně a chcete zachovat podporu více účtů se zásadami ochrany aplikací, vaše aplikace se považuje za více identit.

Tip

Pokud nevíte, jestli by aplikace měla podporovat ochranu s jednou nebo více identitami, přečtěte si znovu : Je moje aplikace s jednou nebo více identitami?

Upozornění

Podpora více identit je výrazně složitější než jiné funkce ochrany aplikací. Nesprávná integrace více identit může vést k úniku dat a dalším problémům se zabezpečením. Pečlivě si projděte tuto část a naplánujte si dostatek času na testování, než budete pokračovat k další fázi.

Identita k sadě SDK

Když aplikace integrovaná se sadou SDK zaregistruje účet pomocí registerAccountForMAM, sada SDK uloží jako identitu všechny zadané parametry (upn, aadId, tenantId a autorita). Většina rozhraní API pro identity sady SDK ale používá zadaný řetězec upn pouze jako zkratku pro identitu. Tato rozhraní API vrátí jako identitu pouze řetězec upn a pro identitu budou vyžadovat pouze parametr řetězce upn.

U identit se nerozlišují malá a velká písmena. Požadavky na sadu SDK pro identitu nemusí vrátit stejná velikost malých a

Tip

V budoucnu mohou rozhraní API sady SDK představovat komplexnější strukturu identit, která zahrnuje všechna pole poskytnutá při registraci účtu, nejen upn. Při integraci podpory více identit se ujistěte, že vaše aplikace má také přístup k aadId, tenantId a autoritě při nastavování identity pomocí aktuálních rozhraní API.

Spravované a nespravované identity

Jak je popsáno v tématu Registrace k zásadám ochrany aplikací, vaše aplikace zodpovídá za informování sady SDK, když se uživatel přihlásí. V okamžiku přihlášení může nebo nemusí být účet uživatele cílem zásad ochrany aplikací. Pokud je účet cílený zásadami ochrany aplikací, sada SDK ho považuje za spravovaný. jinak je nespravovaný.

Sada SDK vynucuje zásady pro identity, které považuje za spravované. Sada SDK nebude vynucovat zásady pro identity, které považuje za nespravované.

Sada Intune App SDK v současné době podporuje jenom jednu spravovanou identitu pro každé zařízení. Jakmile jakákoli aplikace integrovaná se sadou SDK zaregistruje spravovanou identitu, budou všechny následně registrované identity, i když jsou aktuálně cílem zásad ochrany aplikací, považovány za nespravované.

Pokud už je spravovaná identita v zařízení zaregistrovaná a vaše aplikace zaregistruje jinou identitu, na kterou se také zaměřují zásady ochrany aplikací, sada SDK se vrátí MAMEnrollmentManager.Result.WRONG_USER a vyzve koncového uživatele k možnosti nápravy. Další podrobnosti najdete v tématu Registrace oznámení ze sady SDK .

Poznámka

Účet, na který se při registraci necílily zásady ochrany aplikací, se bude považovat za nespravovaný. I když účet není licencovaný pro zásady ochrany aplikací nebo na ně cílí, sada SDK bude pravidelně kontrolovat, jestli se tento účet později stane licencovaným a cíleným. Pokud není zaregistrovaná žádná jiná spravovaná identita, začne sada SDK tuto identitu považovat za spravovanou, jakmile je cílem zásad. Aby uživatel provedl tuto změnu, nemusí se odhlásit a znovu se přihlásit k tomuto účtu.

Aktivní identita

Vaše aplikace musí vždy informovat sadu SDK o identitě, která se právě používá. Označuje se také jako aktivní identita. Pokud je aktivní identita spravovaná, sada SDK použije ochranu. Pokud aktivní identita není spravovaná, sada SDK ochranu nepoužije.

Vzhledem k tomu, že sada SDK nemá žádné znalosti specifické pro aplikaci, musí důvěřovat tomu, aby aplikace sdílela správnou aktivní identitu.

  • Pokud aplikace nesprávně řekne sadě SDK, že nespravovaná identita je aktivní, když se spravovaná identita skutečně používá, sada SDK ochranu nepoužije. To může způsobit únik dat, který ohrožuje data uživatelů.

  • Pokud aplikace nesprávně oznámí sadě SDK, že spravovaná identita je aktivní, když se nespravovaná identita skutečně používá, sada SDK použije nesprávně ochranu. Nejedná se o únik dat, ale může to zbytečně omezit nespravované uživatele a riskovat odstranění nespravovaných dat uživatelů.

Pokud vaše aplikace zobrazuje data uživatele, musí zobrazovat jenom data, která patří do aktivní identity. Pokud vaše aplikace v současné době neví o tom, kdo je vlastníkem zobrazených dat, možná budete muset aplikaci refaktorovat kvůli lepšímu povědomí o identitě, než začnete integrovat podporu více identit.

Uspořádání dat aplikací podle identity

Kdykoli vaše aplikace zapíše nový soubor, sada SDK přidruží k danému souboru identitu (označovanou také jako značky) na základě aktuálně aktivního vlákna a identity procesu. Případně může vaše aplikace přímo volat sadu SDK a ručně označit soubor konkrétní identitou (podrobnosti najdete v tématu Zápis chráněných souborů ). Sada SDK používá tuto identitu označeného souboru k šifrování souborů i k selektivnímu vymazání.

Pokud je spravovaná identita cílená zásadami šifrování, budou šifrovány jenom soubory označené spravovanou identitou.

Pokud se akce správce nebo nakonfigurované požadavky zásad na vymazání spravovaných dat odstraní, odstraní se jenom soubory označené spravovanou identitou.

Sada SDK nemůže přidružit více identit k jednomu souboru. Pokud vaše aplikace ukládá data patřící více uživatelům do stejného souboru, výchozí chování sady SDK bude mít za následek podchycenou nebo nadměrnou ochranu těchto dat. Důrazně doporučujeme uspořádat data aplikace podle identity.

Pokud vaše aplikace absolutně musí ukládat data patřící různým identitám do stejného souboru, sada SDK poskytuje funkce pro podmnožinu dat v souboru pro označování identit. Podrobnosti najdete v tématu Ochrana vyrovnávací paměti dat .

Implementace více identit

Pokud chcete deklarovat podporu více identit pro vaši aplikaci, začněte umístěním následujících metadat do AndroidManifest.xml.

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

Nastavení aktivní identity

Vaše aplikace může nastavit aktivní identitu na následujících úrovních v sestupné prioritě:

  1. Úroveň vlákna
  2. Context (obecně Activity) Úrovni
  3. Úroveň procesu

Identita nastavená na úrovni vlákna nahrazuje identitu nastavenou na Context úrovni, která nahrazuje identitu nastavenou na úrovni procesu.

Identita nastavená na objektu se Context používá pouze ve vhodných přidružených scénářích. Například operace vstupně-výstupních operací se soubory nemají přidružené Context. Nejčastěji aplikace nastaví Context identitu na Activity. Zvažte nastavení Context identity v Activity.onCreate. Aplikace nesmí zobrazovat data pro identitu, pokud není identita Activity nastavená na stejnou identitu.

Obecně platí, že identita na úrovni procesu je užitečná jenom v případě, že aplikace pracuje pouze s jednou identitou najednou ve všech vláknech. Toto chování není typické pro aplikace, které podporují více účtů. Důrazně doporučujeme oddělit data účtu a nastavit aktivní identitu na vlákně nebo Context úrovních.

Pokud vaše aplikace používá Application kontext k získání systémových služeb, ujistěte se, že je nastavená identita vlákna nebo procesu nebo že jste nastavili identitu uživatelského rozhraní v kontextu aplikace Application .

Pokud vaše aplikace používá Service kontext ke spuštění záměrů, používá překladače obsahu nebo využívá jiné systémové služby, nezapomeňte nastavit identitu v Service kontextu. Podobně pokud vaše aplikace k provedení těchto akcí používá JobService kontext, nezapomeňte nastavit identitu v JobService kontextu nebo vlákně podle požadavků vaší JobService implementace. Pokud například zpracováváte JobService úlohy pro jednu identitu, zvažte nastavení identity v JobService kontextu. Pokud vaše JobService procesy úlohy pro více identit, zvažte nastavení identity na úrovni vlákna.

Upozornění

Aplikace, které používají WorkManager , by měly při nastavování identity věnovat zvláštní pozornost. Konkrétně by se tyto aplikace měly vyhnout nastavení identity na Context předané v konstruktoru Worker . Tato Context instance může být sdílena mezi více Worker instancemi současně. Aby se zabránilo nedefinovaným chováním, měly by aplikace místo toho nastavit identitu vlákna v Worker.doWork() tak, jak to Worker vyžaduje implementace.

Poznámka

Vzhledem k tomu, že se CLIPBOARD_SERVICE používá pro operace uživatelského rozhraní, používá sada SDK pro operace identitu uživatelského rozhraní aktivity ClipboardManager popředí.

Následující metody v MAMPolicyManager lze použít k nastavení aktivní identity a načtení hodnot identit, které byly dříve nastaveny.

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);

Pro usnadnění můžete také nastavit identitu aktivity přímo prostřednictvím metody v MAMActivity místo volání MAMPolicyManager.setUIPolicyIdentity. Použijte k tomu následující metodu:

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

Poznámka

Pokud vaše aplikace v manifestu deklarovala podporu více identit, voláním těchto metod k nastavení identity se neprovede žádná akce, a pokud vrátí MAMIdentitySwitchResult, vždy vrátí FAILED.

Běžné nástrahy přepínače identit

  • V případě volání startActivitysady Intune App SDK předpokládá, že aktivní identita na Context úrovni je přidružená k zadanému Intent parametru. Důrazně doporučujeme nastavit Context identitu úrovně pomocí Activitykontextu, nikoli Applicationkontextu .

  • Doporučuje se nastavit Context identitu během metody aktivity onCreate . Nezapomeňte však také pokrýt další vstupní body, jako je onNewIntent. V opačném případě, když se stejná aktivita znovu použije k zobrazení dat pro spravované i nespravované identity, můžou být zásady nesprávně použity, což vede k nechráceným podnikovým datům nebo k nesprávnému omezení osobních dat.

Výsledky přepínače identit

Všechny metody použité k nastavení identity hlásí zpět výsledné hodnoty prostřednictvím MAMIdentitySwitchResult. K dispozici jsou čtyři hodnoty, které lze vrátit:

Vrácená hodnota Scénář
SUCCEEDED Změna identity proběhla úspěšně.
NOT_ALLOWED Změna identity není povolená. K tomu dochází, pokud se pokusíte nastavit identitu uživatelského rozhraní (Context), pokud je v aktuálním vlákně nastavena jiná identita.
CANCELLED Uživatel zrušil změnu identity, obvykle stisknutím tlačítka Zpět na výzvě k zadání KÓDU PIN nebo ověření.
FAILED Změna identity se z neznámého důvodu nezdařila.

Aplikace by měla před zobrazením nebo použitím dat spravovaného účtu ověřit, že mamIdentitySwitchResult je SUCCEEDED .

Většina metod nastavení aktivní identity vrací MAMIdentitySwitchResult synchronně. V případě nastavení Context identity prostřednictvím setUIPolicyIdentity se výsledek hlásí asynchronně. Aplikace může implementovat MAMSetUIIdentityCallback , aby získala tento výsledek, nebo může předat hodnotu null pro objekt zpětného volání. Pokud je volání provedeno na setUIPolicyIdentity , zatímco výsledek z předchozího volání setUIPolicyIdentityve stejném kontextu ještě nebyl doručen, nové zpětné volání nahradí staré a původní zpětné volání nikdy neobdrží výsledek.

Upozornění

Context Pokud parametr setUIPolicyIdentity je , Activitysada SDK neví, jestli změna identity proběhla úspěšně, dokud neprovede správcem nakonfigurované podmíněné kontroly spuštění. To může vyžadovat, aby uživatel zadal PIN nebo firemní přihlašovací údaje.

V současné době budou přepínače identit procesů a vláken vždy úspěšné pro aplikaci s podporou více identit. Sada SDK si vyhrazuje právo v budoucnu přidat podmínky selhání.

Přepínač identity uživatelského rozhraní může selhat u neplatných argumentů, pokud by došlo ke konfliktu s identitou vlákna nebo pokud uživatel zruší požadavky na podmíněné spuštění (například stiskne tlačítko Zpět na obrazovce PIN kódu).

Výchozím chováním pro neúspěšný přepínač identity uživatelského rozhraní u aktivity je dokončení aktivity. Pokud chcete toto chování změnit a dostávat oznámení o pokusech o změnu identity pro aktivitu, můžete přepsat metodu v MAMActivity.

    public void onSwitchMAMIdentityComplete(final MAMIdentitySwitchResult result);

Pokud přepíšete onSwitchMAMIdentityComplete (nebo zavoláte metodu super ), musíte zajistit, aby se po neúspěšném přepnutí identity nezobrazovat data spravovaného účtu.

Poznámka

Přepnutí identity může vyžadovat opětovné vytvoření aktivity. V tomto případě onSwitchMAMIdentityComplete se zpětné volání doručí do nové instance aktivity.

Identita, záměry a IdentitySwitchMožnosti

Kromě automatického označování nových souborů aktivní identitou sdk také označuje záměry aktivní identitou. Ve výchozím nastavení sada SDK zkontroluje identitu příchozího záměru a porovná ji s aktivní identitou. Pokud se tyto identity neshodují, sada SDK obvykle (*) požádá o přepnutí identity (další podrobnosti najdete v části Implicitní změny identity níže).

Sada SDK také ukládá tuto identitu příchozího záměru pro pozdější použití. Když aplikace explicitně změní identitu uživatelského rozhraní, sada SDK porovná identitu, na které se aplikace pokouší přepnout, s nejnovější identitou příchozího záměru. Pokud se tyto identity neshodují, sada SDK obvykle (*) selže při přepnutí identity.

Sada SDK tuto kontrolu provede, protože předpokládá, že aplikace stále zobrazuje obsah ze záměru, který patří do identity označené v záměru. Tento předpoklad chrání před tím, aby aplikace neúmyslně vypnula ochranu při zobrazení spravovaných dat. Tento předpoklad však nemusí být správný vzhledem ke skutečnému chování aplikace.

Volitelné výčty IdentitySwitchOption lze předat rozhraním API setUIPolicyIdentity a switchMAMIdentity , aby se změnilo výchozí chování sady SDK.

  • IGNORE_INTENT: Při žádosti o přepnutí identity ve vrstvě uživatelského rozhraní tato možnost informuje sadu SDK, aby vynechala porovnání požadovaného parametru identity s naposledy uloženou identitou záměru. To je užitečné, když už vaše aplikace nezobrazuje obsah patřící této identitě a sada SDK by neměla tento přepínač identity blokovat. Příklady:

    1. Vaše aplikace je prohlížeč dokumentů. Dokáže vykreslit dokumenty předané z jiných aplikací. Obsahuje také funkci, která umožňuje uživatelům přepínat účty. Kdykoli uživatel použije tuto funkci přepínání účtů, aplikace přejde na cílovou stránku konkrétního účtu s nedávnými dokumenty tohoto účtu.
    2. Vaše aplikace obdrží záměr zobrazit dokument. Tento záměr je označen spravovanou identitou.
    3. Vaše aplikace se přepne na spravovanou identitu a zobrazí tento dokument s správně použitou ochranou.
    4. Uživatel pomocí přepínače účtů přejde na svůj osobní účet.

    Aplikace musí změnit identitu uživatelského rozhraní v kroku 4. Protože v tomto případě se aplikace chová tak, že se vzdálila od dat spravovaného účtu (dokument v záměru), měla by se použít IGNORE_INTENT při volání přepínače identity. Tím se vyhnete nevhodnému selhání tohoto volání sady SDK.

  • DATA_FROM_INTENT: Při žádosti o přepnutí identity ve vrstvě uživatelského rozhraní tato možnost informuje sadu SDK o tom, že data z naposledy uložené identity záměru se budou dál zobrazovat i po úspěšném přepnutí identity. V důsledku toho sada SDK plně vyhodnotí zásady příjmu oproti předchozí identitě záměru a určí, jestli je možné ji zobrazit. Příklady:

    1. Vaše aplikace je prohlížeč dokumentů. Dokáže vykreslit dokumenty předané z jiných aplikací. Obsahuje také funkci, která umožňuje uživatelům přepínat účty. Na rozdíl od předchozího příkladu pokaždé, když uživatel použije tuto funkci přepínání účtů, aplikace přejde na sdílenou stránku, na které se zobrazují poslední dokumenty pro všechny účty.
    2. Vaše aplikace obdrží záměr zobrazit dokument. Tento záměr je označen spravovanou identitou.
    3. Vaše aplikace se přepne na spravovanou identitu a zobrazí tento dokument s správně použitou ochranou.
    4. Uživatel pomocí přepínače účtů přejde na svůj osobní účet.

    Aplikace musí změnit identitu uživatelského rozhraní v kroku 4. Protože se aplikace chová tak, aby dál zobrazovala data spravované identity (náhled dokumentu v záměru), měla by se použít DATA_FROM_INTENT při volání přepínače identity. To informuje sadu SDK, aby zkontrolovala nakonfigurované zásady ochrany aplikací a určila, jestli jsou vhodné pro to, aby se data dál zobrazovala.

(*) Výchozí chování sady SDK zahrnuje speciální použití malých a malých a malých velikostí, které přeskočí tuto kontrolu příchozího přenosu dat, pokud například záměr pochází ze stejné aplikace nebo ze spouštěče systému.

Vymazání aktivní identity

Vaše aplikace může obsahovat scénáře, které jsou nezávislé na účtech. Vaše aplikace může mít také scénáře pro místní nespravované scénáře, které nevyžadují žádné přihlášení. V obou těchto případech vaše aplikace nemusí chtít, aby sada SDK vynucuje zásady spravované identity, ale nemusíte mít explicitní identitu, na kterou byste mohli přejít.

Aktivní identitu můžete vymazat voláním libovolné metody sady identit s parametrem identity nastaveným na null. Vymazání identity na jedné úrovni způsobí, že sada SDK vyhledá aktivní identitu na jiných úrovních v závislosti na pořadí priorit.

Alternativně můžete jako parametr identity předat prázdný řetězec, který nastaví identitu na speciální prázdnou hodnotu, která se považuje za nespravovanou identitu. Nastavení aktivní identity na prázdný řetězec říká sadě SDK, že nemá vynucovat žádné zásady ochrany aplikací.

Implicitní změny identity

Výše uvedená část popisuje různé způsoby, jak může vaše aplikace explicitně nastavit aktivní identitu na úrovni vlákna, kontextu a procesu. Aktivní identita ve vaší aplikaci se ale může změnit i bez toho, aby aplikace volala některou z těchto metod. Tato část popisuje, jak vaše aplikace může naslouchat těmto implicitními změnám identity a reagovat na ně.

Naslouchání těmto implicitním změnám identity je volitelné, ale doporučuje se. Sada SDK nikdy nezmění aktivní identitu bez poskytnutí těchto implicitních oznámení o změnách identity.

Upozornění

Pokud se vaše aplikace rozhodne nenaslouchat změnám implicitní identity, buďte velmi opatrní, abyste nepředpokládali aktivní identitu. V případě pochybností getCurrentThreadIdentitypoužijte metody , getUIPolicyIdentitya getProcessIdentity k potvrzení aktivní identity.

Zdroje implicitních změn identity

  • Příchozí přenos dat z jiných aplikací spravovaných službou Intune může změnit aktivní identitu na úrovni vlákna a kontextu.

    • Pokud se aktivita spustí z Intent jiné aplikace MAM, nastaví se identita aktivity na základě aktivní identity v druhé aplikaci v okamžiku Intent odeslání.

      • Například aktivita zobrazení Word dokumentu se spustí ze záměru z aplikace Microsoft Outlook, když uživatel vybere přílohu dokumentu. Identita aktivity prohlížeče dokumentů Office se na tuto identitu přepne z Outlooku.
    • U služeb se identita vlákna nastaví podobně po dobu volání onStart nebo onBind . Volání do vráceného Binder z onBind také dočasně nastaví identitu vlákna.

    • Volání do ContentProvider podobně nastaví identitu vlákna na dobu jejich trvání.

  • Interakce uživatele s aktivitou může změnit aktivní identitu na úrovni kontextu. Příklady:

    • Pokud uživatel zruší výzvu k autorizaci během Resume , bude mít za následek implicitní přepnutí na prázdnou identitu.

Zpracování implicitních změn identity

Vaše aplikace může volitelně naslouchat těmto implicitními změnám identity a reagovat na ně. Vaše aplikace může například vyžadovat více kroků, než bude možné použít přidaný účet, jako je nastavení nové doručené pošty v e-mailové aplikaci. Když se zobrazí pokus o přepnutí identity na identitu tohoto neúplného účtu, může obslužná rutina vaší aplikace uživatele před přijetím přepínače identity přesměrovat na aktivitu nastavení účtu. Případně může obslužná rutina vaší aplikace zobrazit dialogové okno s chybou a blokovat přepínač identity.

Vaše aplikace může implementovat rozhraní MAMIdentityRequirementListener na ServiceContextProvider nebo pro změny identity, které se vztahují na toto vlákno. Implementace musí přepsat:

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

Vaše aplikace může implementovat rozhraní MAMActivityIdentityRequirementListener pro Activity změny identity, které se vztahují na tuto aktivitu. Implementace musí přepsat:

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

Parametr AppIdentitySwitchReason výčtu popisuje zdroj implicitního přepínače identity.

Výčtová hodnota Výchozí chování sady SDK Popis
CREATE Povolte přepínač identity. K přepnutí identity dochází kvůli vytvoření aktivity.
NEW_INTENT Povolte přepínač identity. K přepnutí identity dochází, protože se k aktivitě přiřazuje nový záměr.
RESUME_CANCELLED Zablokujte přepínač identity. K přepnutí identity dochází, protože byl zrušen životopis. Nejčastěji se to děje, když koncový uživatel stiskne tlačítko Zpět v uživatelském rozhraní PIN, ověřování nebo dodržování předpisů.

Parametr AppIdentitySwitchResultCallback umožňuje vývojářům přepsat výchozí chování přepínače identity:

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

onMAMIdentitySwitchRequired je volána pro všechny implicitní změny identity s výjimkou těch, které byly provedeny prostřednictvím binderu vráceného z MAMService.onMAMBind. Výchozí implementace okamžitého onMAMIdentitySwitchRequired volání:

  • callback.reportIdentitySwitchResult(FAILURE) pokud je RESUME_CANCELLEDdůvod .

  • callback.reportIdentitySwitchResult(SUCCESS) ve všech ostatních případech.

Neočekává se, že většina aplikací bude muset blokovat nebo zpozdit přepnutí identity jiným způsobem, ale pokud to aplikace potřebuje, je potřeba vzít v úvahu následující body:

  • Pokud je přepínač identity zablokovaný, chování koncového uživatele je stejné, jako kdyby nastavení ochrany aplikací sady SDK "přijímat data z jiných aplikací" zakázalo příchozí přenos dat.

  • Pokud je služba spuštěna v hlavním vlákně, reportIdentitySwitchResultmusí být volána synchronně, jinak vlákno uživatelského rozhraní přestane reagovat.

  • Pro Activity vytvoření se bude volat onMAMIdentitySwitchRequired před onMAMCreate. Pokud aplikace musí zobrazit uživatelské rozhraní, aby bylo možné určit, jestli se má povolit přepnutí identity, musí se toto uživatelské rozhraní zobrazit pomocí jiné aktivity.

  • V případě Activitypožadavku na přepnutí na prázdnou identitu s důvodem jako RESUME_CANCELLEDje , musí aplikace upravit obnovenou aktivitu tak, aby zobrazovala data konzistentní s tímto přepínačem identity. Pokud to není možné, měla by aplikace přepnutí odmítnout a uživatel bude znovu požádán, aby dodržoval zásady pro obnovení identity (například zobrazením obrazovky pro zadání PIN kódu aplikace).

Upozornění

Aplikace s více identitou může přijímat příchozí data ze spravovaných i nespravovaných aplikací. Je zodpovědností aplikace zpracovávat data ze spravovaných identit spravovaným způsobem.

Pokud je požadovaná identita spravovaná (ke kontrole použijte MAMPolicyManager.getIsIdentityManaged ), ale aplikace nemůže tento účet použít (například proto, že v aplikaci musí být nejdřív nastavené účty, například e-mailové účty), mělo by se přepnutí identity odmítnout.

K výchozímu chování pro MAMActivity.onMAMIdentitySwitchRequired lze přistupovat voláním statické metody MAMActivity.defaultOnMAMIdentitySwitchRequired(activity, identity, reason, callback).

Podobně pokud potřebujete přepsat MAMActivity.onSwitchMAMIdentityComplete, můžete implementovat MAMActivityIdentitySwitchListener bez explicitního dědění z MAMActivity.

Omezení přepínačů identit a snímků obrazovky

Intune App SDK pomocí příznaku WindowFLAG_SECURE vynucuje zásady snímků obrazovky. Některé aplikace se také můžou nastavit FLAG_SECURE pro vlastní účely. Pokud zásady ochrany aplikací neomezují snímky obrazovky, sada SDK nezmění FLAG_SECURE.

Při přepnutí identity z identity, jejíž zásady vyžadují zakázání snímků obrazovky, na identitu, jejíž zásady ne, sada SDK vymaže FLAG_SECURE. V důsledku toho by se vaše aplikace neměla spoléhat na FLAG_SECURE zbývající nastavení po přepnutí identity.

Zachování identity v asynchronních operacích

Aplikace často odesílají úlohy na pozadí z vlákna uživatelského rozhraní, aby zvládly operace v jiných vláknech. Aplikace s více identitami musí zajistit, aby tyto úlohy na pozadí fungovaly s příslušnou identitou, což je často stejná identita, kterou používá aktivita, která je odeslala.

Intune App SDK poskytuje funkce MAMAsyncTask a MAMIdentityExecutors jako pohodlí, které pomáhají zachovat identitu v asynchronních operacích. Vaše aplikace musí buď používat tyto funkce (nebo explicitně nastavit identitu vlákna v úlohách), pokud její asynchronní operace mohou:

  • Zápis dat patřících spravované identitě do souboru
  • Komunikace s jinými aplikacemi

MAMAsyncTask

Pokud chcete použít MAMAsyncTask, jednoduše dědit z něj místo AsyncTask a nahradit přepsání doInBackground a onPreExecute s doInBackgroundMAM a onPreExecuteMAM v uvedeném pořadí. Konstruktor MAMAsyncTask přebírá kontext aktivity. Příklady:

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 bude předpokládat aktivní identitu na základě normálního pořadí priorit.

MAMIdentityExecutors

MAMIdentityExecutorsumožňuje zabalit existující Executor instanci nebo ExecutorService instanci jako zachování ExecutorExecutorService/identity pomocí wrapExecutor metod a .wrapExecutorService Příklad:

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

MAMIdentityExecutors bude předpokládat aktivní identitu na základě normálního pořadí priorit.

Ochrana souborů

Zápis chráněných souborů

Jak je uvedeno výše v tématu Uspořádání dat aplikací podle identity , sada Intune App SDK přidruží aktivní identitu (na úrovni vlákna nebo procesu) k souborům, které se zapisují. Je důležité mít správnou identitu nastavenou při vytváření souboru, aby se zajistila správná funkce šifrování a selektivního vymazání.

Vaše aplikace se může dotazovat nebo změnit identitu souboru pomocí třídy MAMFileProtectionManager , konkrétně MAMFileProtectionManager.getProtectionInfo pro dotazování a MAMFileProtectionManager.protect změnu.

Metodu protect lze také použít k ochraně adresářů. Ochrana adresáře se rekurzivně vztahuje na všechny soubory a podadresáře obsažené v adresáři. Když je adresář chráněný, všechny nové soubory vytvořené v adresáři budou mít automaticky stejnou ochranu. Vzhledem k tomu, že se ochrana adresářů používá rekurzivně, protect může dokončení volání u velkých adresářů nějakou dobu trvat. Z tohoto důvodu aplikace, které používají ochranu na adresář, který obsahuje velký počet souborů, můžou chtít běžet protect asynchronně na vlákně na pozadí.

Volání protect s prázdným řetězcem pro parametr identity označí soubor nebo adresář nespravovanou identitou. Tato operace odebere šifrování ze souboru nebo adresáře, pokud bylo dříve zašifrováno. Při vydání příkazu selektivního vymazání se soubor nebo adresář neodstraní.

Zobrazení obsahu chráněného souboru

Stejně důležité je mít správnou identitu nastavenou při zobrazení obsahu souboru, aby se zabránilo neoprávněným uživatelům v zobrazení spravovaných dat. Sada SDK nemůže automaticky odvodit vztah mezi přečtenými soubory a daty zobrazenými v objektu Activity. Aplikace musí před zobrazením spravovaných dat správně nastavit identitu uživatelského rozhraní. To zahrnuje data načtená ze souborů.

Pokud soubor pochází mimo aplikaci (buď z ContentProvider veřejně zapisovatelného umístění, nebo z veřejně zapisovatelného umístění), musí se aplikace před zobrazením informací přečtených ze souboru pokusit zjistit identitu souboru (pomocí správného přetížení MAMFileProtectionManager.getProtectionInfo pro zdroj dat).

Pokud getProtectionInfo hlásí nenulovou, neprázdnou identitu, musí aplikace nastavit identitu uživatelského rozhraní tak, aby odpovídala této identitě pomocí MAMActivity.switchMAMIdentity nebo MAMPolicyManager.setUIPolicyIdentity. Pokud přepínač identity selže, data ze souboru se nesmí zobrazit.

Při čtení z identifikátoru URI obsahu může být nutné nejprve přečíst identitu (prostřednictvím getProtectionInfo přetížení a Uri), a pak odpovídajícím způsobem nastavit identitu kontextu nebo vlákna. To je nutné provést před otevřením popisovače souboru nebo vstupního datového proudu na ContentResolver, jinak může operace selhat.

Příklad toku může vypadat nějak takto:

  • Uživatel vybere dokument, který se má otevřít v aplikaci.

  • Během otevřeného toku aplikace před čtením dat z disku potvrdí identitu, která se má použít k zobrazení obsahu:

    MAMFileProtectionInfo info = MAMFileProtectionManager.getProtectionInfo(docPath)
    if (info != null)
        MAMPolicyManager.setUIPolicyIdentity(activity, info.getIdentity(), callback, EnumSet.noneOf<IdentitySwitchOption.class>)
    
  • Aplikace počká, až se nahlásí výsledek zpětného volání.

  • Pokud je nahlášeným výsledkem selhání, aplikace dokument nezobrazí.

  • Aplikace se otevře a vykreslí soubor.

Pokud aplikace ke stahování souborů používá Android DownloadManager , sada SDK se pokusí tyto soubory chránit automaticky pomocí priority identity popsané výše. Pokud je identita vlákna nenasazená, použije se kontext použitý k načtení objektu DownloadManager . Pokud stažené soubory obsahují podniková data, je na aplikaci, aby volala ochranu, pokud se soubory po stažení přesunou nebo znovu vytvoří.

přechod Single-Identity na více identit

Pokud aplikace, která byla dříve vydána s integrací Intune s jednou identitou, později integruje více identit, u dříve nainstalovaných aplikací dojde k přechodu. Tento přechod není uživateli viditelný.

Aplikace není nutná ke zpracování tohoto přechodu. Všechny soubory vytvořené před přechodem se budou dál považovat za spravované (takže zůstanou zašifrované, pokud jsou zásady šifrování zapnuté).

Pokud nechcete, aby byla všechna předchozí data aplikace přidružená ke spravované identitě, můžete tento přechod rozpoznat a explicitně odebrat ochranu.

  • Zjistěte upgrade porovnáním verze vaší aplikace se známou verzí, ve které byla přidána podpora více identit.
  • Volání protect s prázdným řetězcem pro parametr identity u souborů nebo adresářů, které nechcete přidružit ke spravované identitě.

Offline scénáře

Intune App SDK běží v offline režimu, když není nainstalovaná aplikace Portál společnosti. Označování identit souborů je citlivé na offline režim:

  • Pokud Portál společnosti není nainstalovaný, soubory se nedají označit identitou. Volání SOUBORU MAMFileProtectionManager.protect v offline režimu je bezpečné, ale nebude mít žádný vliv.

  • Pokud je Portál společnosti nainstalovaný, ale aplikace nemá zásady ochrany aplikací, soubory nelze spolehlivě označit identitou.

  • Jakmile bude označování identity souborů dostupné, všechny dříve vytvořené soubory se považují za osobní nebo nespravované (patří do identity s prázdným řetězcem), s výjimkou případů, kdy byla aplikace dříve nainstalována jako spravovaná aplikace s jednou identitou, jak je popsáno v tématu Přechod jedné identity na více identit.

Aby se těmto případům zabránilo, neměly by aplikace vytvářet soubory obsahující data účtu, dokud se registrace účtu úspěšně neskončí. Pokud vaše aplikace musí vytvářet soubory v offline režimu, může použít MAMFileProtectionManager.protect a opravit přidruženou identitu souboru, jakmile bude sada SDK online.

Ochrana vyrovnávací paměti dat

Upozornění

Zápis dat patřících do několika účtů v jednom souboru se nedoporučuje. Pokud je to možné, uspořádejte soubory aplikace podle identity.

MamDataProtectionManager sady SDK poskytuje metody pro kontrolu a změnu označené identity u konkrétních vyrovnávacích pamětí dat ve byte[] formátu nebo InputStream .

MAMDataProtectionManager.protect umožňuje aplikaci přidružit data k identitě, a pokud je identita aktuálně cílená zásadami šifrování, šifrovat data. Tato šifrovaná data jsou vhodná pro ukládání na disk v souboru.

MAMDataProtectionManager umožňuje také dotazovat se na data přidružená k identitě a zrušit jejich šifrování.

Aplikace, které ho MAMDataProtectionManager využívají, by měly pro MANAGEMENT_REMOVED oznámení implementovat příjemce. Další podrobnosti najdete v tématu Registrace oznámení ze sady SDK .

Po dokončení tohoto oznámení již nebudou vyrovnávací paměti chráněné touto třídou čitelné (pokud bylo šifrování souborů povoleno, když byly vyrovnávací paměti chráněné). Aplikace může zabránit tomu, aby se tyto vyrovnávací paměti staly nečitelnými, a to zavoláním MAMDataProtectionManager.unprotect všech vyrovnávacích pamětí při zpracování MANAGEMENT_REMOVED oznámení. Během tohoto oznámení můžete také bezpečně volat protect , pokud chcete zachovat informace o identitě. Šifrování je během oznámení zakázané a volání protect v obslužné rutině nebude šifrovat vyrovnávací paměti dat.

Poskytovatelé obsahu

Aplikace s více identitou musí také chránit data sdílená prostřednictvím ContentProviders, aby se zabránilo nevhodnému sdílení spravovaného obsahu.

Vaše aplikace musí před vrácením obsahu volat statickou metodu isProvideContentAllowed(provider, contentIdentity)MAMContentProvider. Pokud tato funkce vrátí hodnotu false, obsah nesmí být vrácen volajícímu.

Volání isProvideContentAllowed se nevyžaduje, pokud vracíte ContentProviderParcelFileDescriptor. Popisovače souborů vrácené prostřednictvím zprostředkovatele obsahu se zpracovávají automaticky na základě identity souboru.

Selektivní vymazání

Sada Intune App SDK ve výchozím nastavení automaticky zpracuje selektivní vymazání a odstraní všechny soubory přidružené ke spravované identitě. Potom sada SDK aplikaci elegantně zavře, dokončí aktivity a ukončí proces aplikace.

Sada SDK poskytuje vaší aplikaci volitelnou možnost buď doplnit (doporučeno) nebo přepsat výchozí chování při vymazání.

Výchozí obslužná rutina vymazání sady SDK nezpracovává vyrovnávací paměti dat chráněné nástrojem MAMDataProtectionManager. Pokud vaše aplikace tuto funkci používala, musí doplnit nebo přepsat výchozí obslužnou rutinu vymazání, aby se tato data odebrala.

Poznámka

Doplnění a přepsání výchozího chování při vymazání vyžaduje zpracování konkrétních oznámení sady SDK. Další podrobnosti o implementaci obslužných rutin oznámení najdete v tématu Registrace oznámení ze sady SDK .

Doplnění výchozího chování při vymazání

Pokud chcete doplnit výchozí chování při vymazání sady SDK, může se vaše aplikace zaregistrovat pro WIPE_USER_AUXILIARY_DATAMAMNotificationType.

Toto oznámení odešle sada SDK před provedením výchozího selektivního vymazání. Sada SDK počká na dokončení obslužné rutiny oznámení vaší aplikace, než odstraní data a ukončí aplikaci. Aplikace by měla data vymazat synchronně a vrátit se, dokud se nedokončí veškeré vyčištění.

Aplikace by měly důrazně zvážit doplnění výchozího chování vymazání o WIPE_USER_AUXILIARY_DATA, protože čištění specifické pro aplikaci je běžné u aplikací s více identitami.

Přepsání výchozího chování při vymazání

Pokud chcete přepsat výchozí chování při vymazání sady SDK, může se vaše aplikace zaregistrovat pro WIPE_USER_DATAMAMNotificationType.

Upozornění

Aplikace se nikdy nesmí zaregistrovat pro oba a WIPE_USER_DATAWIPE_USER_AUXILIARY_DATA.

Přepsání výchozího chování při vymazání sady SDK je pro vaši aplikaci značné riziko. Vaše aplikace bude plně zodpovědná za odebrání všech dat přidružených ke spravované identitě, včetně všech souborů a datových vyrovnávacích pamětí, které byly pro tuto identitu označené.

  • Pokud byla spravovaná identita chráněná šifrováním a vlastní obslužná rutina vymazání vaší aplikace úplně neodebere všechna spravovaná data, všechny zbývající spravované soubory zůstanou zašifrované. Tato data budou nepřístupná a vaše aplikace nemusí řádně zpracovat pokusy o čtení šifrovaných dat.
  • Obslužná rutina vymazání vaší aplikace může způsobit ztrátu dat nespravovaných uživatelů, pokud odebere soubory, které nejsou označené spravovanou identitou.

Pokud vlastní obslužná rutina vymazání vaší aplikace odebere spravovaná data ze souboru, ale chce v něm ponechat jiná data, musí změnit identitu souboru (prostřednictvím MAMFileProtectionManager.protect) na nespravovanou identitu nebo prázdný řetězec.

Přepsaná obslužná rutina vymazání by měla data synchronně vymazat a vrátit se, dokud se nedokončí veškeré vyčištění.

Po dokončení kroků vlastní obslužné rutiny vymazání zvažte ruční zavření aplikace, abyste zabránili uživateli v přístupu k datům v paměti po vymazání.

Kritéria ukončení

Naplánujte si vyhradit významný čas na ověření integrace více identit ve vaší aplikaci. Než začnete s testováním:

  • Vytvořte a přiřaďte k účtu zásady ochrany aplikací. To bude váš testovací spravovaný účet.
  • Vytvořte jiný účet, ale nepřiřazujte k nim zásady ochrany aplikací. Bude to váš testovací nespravovaný účet. Případně pokud vaše aplikace podporuje více typů účtů nad rámec účtů Microsoft Entra, můžete jako nespravovaný testovací účet použít existující účet bez AAD.
  • Refamiliarizujte se s tím, jak se zásady vynucují ve vaší aplikaci. Testování s více identitami vyžaduje, abyste snadno rozlišily, kdy vaše aplikace funguje a kdy nefunguje s vynucenými zásadami. Nastavení zásad ochrany aplikací pro blokování snímků obrazovky je efektivní při rychlém testování vynucování zásad.
  • Vezměte v úvahu celou sadu uživatelského rozhraní, které vaše aplikace nabízí. Zobrazte výčet obrazovek, na kterých se zobrazují data účtu. Prezentuje vaše aplikace někdy jenom data jednoho účtu najednou, nebo může prezentovat data patřící více účtům najednou?
  • Vezměte v úvahu celou sadu souborů, které vaše aplikace vytvoří. Zadejte výčet, které z těchto souborů obsahují data patřící k účtu, nikoli data na úrovni systému.
    • Určete, jak u každého z těchto souborů ověříte šifrování.
  • Zvažte celou sadu způsobů, jak může vaše aplikace komunikovat s jinými aplikacemi. Zobrazí výčet všech bodů příchozího a výchozího přenosu dat. Jaké typy dat může vaše aplikace ingestovat? Jaké záměry vysílá? Jaké poskytovatele obsahu implementuje?
    • Určete, jak budete provádět jednotlivé funkce sdílení dat.
    • Připravte testovací zařízení se spravovanými i nespravovanými aplikacemi, které můžou s vaší aplikací pracovat.
  • Zvažte, jak vaše aplikace umožňuje koncovému uživateli pracovat se všemi přihlášenými účty. Musí uživatel před zobrazením dat účtu ručně přepnout na účet?

Po důkladném posouzení aktuálního chování aplikace ověřte integraci s více identitou provedením následující sady testů. Upozorňujeme, že se nejedná o úplný seznam a nezaručuje, že implementace více identit vaší aplikace bude bez chyb.

Scénáře ověřování přihlášení a odhlášení

Aplikace s více identitmi podporuje až 1 spravovaný účet a několik nespravovaných účtů. Tyto testy pomáhají zajistit, aby integrace s více identitami nesprávně nezměnila ochranu při přihlášení nebo odhlášení uživatelů.

Pro tyto testy nainstalujte aplikaci a Portál společnosti Intune. Před spuštěním testu se nepřihlašujte.

Scénář Kroky
Nejprve se přihlaste. – Nejprve se přihlaste pomocí spravovaného účtu a ověřte, že jsou data účtu spravovaná.
– Přihlaste se pomocí nespravovaného účtu a ověřte, že data účtu nejsou spravovaná.
Nejprve se přihlaste nespravované – Nejprve se přihlaste pomocí nespravovaného účtu a ověřte, že data účtu nejsou spravovaná.
– Přihlaste se pomocí spravovaného účtu a ověřte, že jsou data účtu spravovaná.
Přihlášení více spravovaných – Nejprve se přihlaste pomocí spravovaného účtu a ověřte, že jsou data účtu spravovaná.
– Přihlaste se pomocí druhého spravovaného účtu a ověřte, že se uživateli zablokovalo přihlášení, aniž byste nejprve odebrali původní spravovaný účet.
Odhlásit se spravované – Přihlaste se k aplikaci pomocí spravovaného nespravovaného účtu.
– Odhlaste se ze spravovaného účtu.
– Ověřte, že se spravovaný účet odebral z vaší aplikace a že se odebrala všechna data daného účtu.
– Ověřte, že je nespravovaný účet stále přihlášený, žádná data nespravovaného účtu nebyla odebrána a zásady se stále nepoužívají.
Odhlásit se nespravované – Přihlaste se k aplikaci pomocí spravovaného nespravovaného účtu.
- Odhlaste se z nespravovaného účtu.
– Ověřte, že se z aplikace odebral nespravovaný účet a že se odebrala všechna data daného účtu.
– Ověřte, že je spravovaný účet stále přihlášený, žádná data nespravovaného účtu nebyla odebrána a zásady se stále používají.

Ověřování aktivní identity a životního cyklu aplikace

Vaše aplikace s více identitami může zobrazit zobrazení s daty jednoho účtu a umožnit uživateli explicitně změnit aktuální účet, který se používá. Může také zobrazit zobrazení s daty více účtů najednou. Tyto testy pomáhají zajistit, aby integrace s více identitami poskytovala správnou ochranu aktivní identity na každé stránce během celého životního cyklu aplikace.

Pro tyto testy nainstalujte aplikaci a Portál společnosti Intune. Před spuštěním testu se přihlaste pomocí spravovaného i nespravovaného účtu.

Scénář Kroky
Zobrazení s jedním účtem, spravované – Přepněte na spravovaný účet.
– Přejděte na všechny stránky v aplikaci, které představují data jednoho účtu.
– Ověřte, že se zásady používají na každé stránce.
Zobrazení s jedním účtem, nespravované - Přepněte na nespravovaný účet.
– Přejděte na všechny stránky v aplikaci, které představují data jednoho účtu.
– Ověřte, že se zásady nepoužívají na žádné stránce.
Zobrazení s více účty – Přejděte na všechny stránky v aplikaci, které současně prezentuje data více účtů.
– Ověřte, že se zásady používají na každé stránce.
Spravované pozastavení – Na obrazovce se zobrazenými spravovanými daty a aktivními zásadami pozastavte aplikaci tak, že přejdete na domovskou obrazovku zařízení nebo na jinou aplikaci.
– Pokračujte v aplikaci.
– Ověřte, že se zásady stále používají.
Nespravované pozastavení – Na obrazovce se zobrazenými nespravovanými daty a bez aktivních zásad pozastavte aplikaci tak, že přejdete na domovskou obrazovku zařízení nebo na jinou aplikaci.
– Pokračujte v aplikaci.
– Ověřte, že se zásady nepoužívají.
Spravované ukončení – Na obrazovce se zobrazenými spravovanými daty a aktivními zásadami vynuťte ukončení aplikace.
– Restartujte aplikaci.
– Ověřte, že pokud se aplikace obnoví na obrazovce s daty spravovaného účtu (očekávaná), zásady se stále použijí. Pokud se aplikace obnoví na obrazovce s daty nespravovaného účtu, ověřte, že se zásady nepoužívají.
Nespravované zabití – Na obrazovce se zobrazenými nespravovanými daty a aktivními zásadami vynuťte ukončení aplikace.
– Restartujte aplikaci.
– Ověřte, že pokud se aplikace obnoví na obrazovce s daty nespravovaného účtu (očekávané), zásady se nepoužijí. Pokud se aplikace obnoví na obrazovce s daty spravovaného účtu, ověřte, že se zásady stále používají.
Přepnutí identity ad hoc - Experimentujte s přepínáním mezi účty a pozastavením, obnovením, ukončením nebo restartováním aplikace.
– Ověřte, že data spravovaného účtu jsou vždy chráněná a data nespravovaného účtu nikdy chráněná nejsou.

Ověřování scénářů sdílení dat

Vaše aplikace s více identitou může odesílat data do jiných aplikací a přijímat data z jiných aplikací. Zásady ochrany aplikací Intune mají nastavení, která toto chování určují. Tyto testy pomáhají zajistit, aby integrace s více identitami dodržovala tato nastavení sdílení dat.

Pro tyto testy nainstalujte aplikaci a Portál společnosti Intune. Před spuštěním testu se přihlaste pomocí spravovaného i nespravovaného účtu. Kromě toho:

  • Nastavte zásady spravovaného účtu takto:
    • "Odeslat data organizace do jiných aplikací" na "Aplikace spravované zásadami".
    • "Příjem dat z jiných aplikací" na "Aplikace spravované zásadami".
  • Nainstalujte na testovací zařízení další aplikace:
    • Spravovaná aplikace, na kterou cílí stejné zásady jako vaše aplikace, která může odesílat a přijímat data (například Microsoft Outlook).
    • Libovolná nespravovaná aplikace, která může odesílat a přijímat data.
  • Přihlaste se k druhé spravované aplikaci pomocí spravovaného testovacího účtu. I když má druhá spravovaná aplikace více identit, přihlaste se jenom pomocí spravovaného účtu.

Pokud má vaše aplikace možnost posílat data do jiných aplikací, jako je microsoft Outlook, který odesílá přílohu dokumentu do Microsoft Office:

Scénář Kroky
Odeslání spravované identity do nespravované aplikace – Přepněte na spravovaný účet.
– Přejděte na místo, kam může vaše aplikace odesílat data.
– Pokuste se odeslat data do nespravované aplikace.
– Měli byste mít zablokované odesílání dat do nespravované aplikace.
Odeslání spravované identity do spravované aplikace – Přepněte na spravovaný účet.
– Přejděte na místo, kam může vaše aplikace odesílat data.
– Pokuste se odeslat data do druhé spravované aplikace s přihlášeným spravovaným účtem.
– Měli byste mít možnost odesílat data do spravované aplikace.
Odeslání nespravované identity do spravované aplikace - Přepněte na nespravovaný účet.
– Přejděte na místo, kam může vaše aplikace odesílat data.
– Pokuste se odeslat data do druhé spravované aplikace s přihlášeným spravovaným účtem.
– Měli byste mít zablokované odesílání dat do jiné spravované aplikace.
Odeslání nespravované identity do nespravované aplikace - Přepněte na nespravovaný účet.
– Přejděte na místo, kam může vaše aplikace odesílat data.
– Pokuste se odeslat data do nespravované aplikace.
– Do nespravované aplikace byste měli mít vždy povolené odesílat data nespravovaného účtu.

Vaše aplikace může aktivně importovat data z jiných aplikací, jako je Microsoft Outlook, který připojuje soubor z Microsoft OneDrivu. Vaše aplikace může také pasivně přijímat data z jiných aplikací, jako je microsoft Office, který otevírá dokument z přílohy Microsoft Outlooku. Nastavení zásad ochrany aplikací pro příjem se vztahuje na oba scénáře.

Pokud má vaše aplikace možnost aktivně importovat data z jiných aplikací:

Scénář Kroky
Import spravované identity z nespravované aplikace – Přepněte na spravovaný účet.
– Přejděte na místo, kam může vaše aplikace importovat data z jiných aplikací.
– Pokuste se importovat data z nespravované aplikace.
– Měli byste mít blokovaný import dat z nespravovaných aplikací.
Import spravované identity ze spravované aplikace – Přepněte na spravovaný účet.
– Přejděte na místo, kam může vaše aplikace importovat data z jiných aplikací.
– Pokuste se importovat data z druhé spravované aplikace s přihlášeným spravovaným účtem.
– Měli byste mít možnost importovat data z jiné spravované aplikace.
Import nespravované identity ze spravované aplikace - Přepněte na nespravovaný účet.
– Přejděte na místo, kam může vaše aplikace importovat data z jiných aplikací.
– Pokuste se importovat data z druhé spravované aplikace s přihlášeným spravovaným účtem.
- Měli byste mít blokovaný import dat z druhé spravované aplikace.
Import nespravované identity z nespravované aplikace - Přepněte na nespravovaný účet.
– Přejděte na místo, kam může vaše aplikace importovat data z jiných aplikací.
– Pokuste se importovat data z nespravované aplikace.
– Vždy byste měli mít možnost importovat data z nespravované aplikace pro nespravovaný účet.

Pokud má vaše aplikace schopnost pasivně přijímat data z jiných aplikací:

Scénář Kroky
Příjem spravované identity z nespravované aplikace – Přepněte na spravovaný účet.
- Přepněte na nespravovanou aplikaci.
– Přejděte na místo, kam může odesílat data.
– Pokuste se do aplikace odeslat data z nespravované aplikace.
– Spravovaný účet vaší aplikace by neměl být schopen přijímat data z nespravované aplikace.
Příjem spravované identity ze spravované aplikace – Přepněte na spravovaný účet.
– Přejděte na jinou spravovanou aplikaci s přihlášeným spravovaným účtem.
– Přejděte na místo, kam může odesílat data.
– Pokuste se do aplikace odeslat data ze spravované aplikace.
– Spravovaný účet vaší aplikace by měl mít možnost přijímat data z druhé spravované aplikace.
Příjem nespravované identity ze spravované aplikace - Přepněte na nespravovaný účet.
– Přejděte na jinou spravovanou aplikaci s přihlášeným spravovaným účtem.
– Přejděte na místo, kam může odesílat data.
– Pokuste se do aplikace odeslat data ze spravované aplikace.
– Nespravovaný účet vaší aplikace by neměl být schopen přijímat data ze spravované aplikace.
Příjem nespravované identity z nespravované aplikace - Přepněte na nespravovaný účet.
- Přepněte na nespravovanou aplikaci.
– Přejděte na místo, kam může odesílat data.
– Pokuste se do aplikace odeslat data z nespravované aplikace.
– Nespravovaný účet vaší aplikace by měl mít vždy povoleno přijímat data z nespravované aplikace.

Selhání v těchto testech můžou znamenat, že vaše aplikace nemá při pokusu o odeslání nebo přijetí dat nastavenou správnou aktivní identitu. Můžete to prozkoumat tak, že využijete rozhraní API pro získání identity sady SDK v okamžiku odesílání a přijímání a ověřte, že je aktivní identita správně nastavená.

Ověřování scénářů selektivního vymazání

Vaše aplikace s více identitou možná doplnila nebo přepsala výchozí chování sady SDK při vymazání. Tyto testy pomáhají zajistit, aby integrace s více identitami správně odebrala spravovaná data při zahájení vymazání, aniž by to mělo vliv na nespravovaná data.

Upozornění

Připomenutí: Pokud vaše aplikace využívá MAMDataProtectionManager.protect, musí implementovat obslužnou rutinu pro nebo WIPE_USER_AUXILIARY_DATAWIPE_USER_DATA.

Pro tyto testy nainstalujte aplikaci a Portál společnosti Intune. Před spuštěním testu se přihlaste pomocí spravovaného i nespravovaného účtu. U obou účtů si procvičte scénáře aplikací, které ukládají data účtu.

Scénář Předpoklady Kroky
Doplňková obslužná rutina vymazání Vaše aplikace implementovala obslužnou rutinu pro WIPE_USER_AUXILIARY_DATA - Vyžádřete selektivní vymazání z Centra pro správu Microsoft Intune.
– Ověřte (obvykle prostřednictvím protokolování), že se obslužná rutina vymazání úspěšně spustila.
– Ověřte, že se spravovaný účet odebral z vaší aplikace a že se odebrala všechna data daného účtu.
– Ověřte, že je nespravovaný účet stále přihlášený, žádná data nespravovaného účtu nebyla odebrána a zásady se stále nepoužívají.
Přepsaná obslužná rutina vymazání Vaše aplikace implementovala obslužnou rutinu pro WIPE_USER_DATA - Vyžádřete selektivní vymazání z Centra pro správu Microsoft Intune.
– Ověřte (obvykle prostřednictvím protokolování), že se obslužná rutina vymazání úspěšně spustila.
– Ověřte, že se spravovaný účet odebral z vaší aplikace a že se odebrala všechna data daného účtu.
– Ověřte, že je nespravovaný účet stále přihlášený, žádná data nespravovaného účtu nebyla odebrána a zásady se stále nepoužívají.
– Ověřte, že se vaše aplikace po dokončení obslužné rutiny vymazání řádně ukončila nebo je stále v dobrém stavu.
Ruční ochrana souborů – Vaše aplikace volá MAMFileProtectionManager.protect
– Vaše aplikace implementovala obslužnou rutinu pro WIPE_USER_DATA
– Ujistěte se, že jste si procvičili scénáře, ve kterých by vaše aplikace ručně chránila alespoň jeden soubor patřící spravovanému účtu.
- Vyžádřete selektivní vymazání z Centra pro správu Microsoft Intune.
– Potvrďte, že jsou soubory odebrány.
Ruční ochrana vyrovnávací paměti dat – Vaše aplikace volá MAMDataProtectionManager.protect
– Vaše aplikace implementovala obslužnou rutinu pro nebo WIPE_USER_AUXILIARY_DATAWIPE_USER_DATA
– Ujistěte se, že jste si procvičili scénáře, ve kterých by vaše aplikace ručně chránila alespoň jednu vyrovnávací paměť dat patřící spravovanému účtu.
- Vyžádřete selektivní vymazání z Centra pro správu Microsoft Intune.
– Ověřte, že jsou datové vyrovnávací paměti odebrány ze souborů, ve kterých byly uložené, a že vaše aplikace stále může číst nespravovaná data z těchto souborů.

Další kroky

Po dokončení všech výše uvedených kritérií ukončení je vaše aplikace úspěšně integrovaná jako více identit a může vynucovat zásady ochrany aplikací na základě jednotlivých identit. Následující části, Fáze 6: App Configuration a Fáze 7: Funkce účasti v aplikaci, můžou nebo nemusí být vyžadovány v závislosti na požadované podpoře zásad ochrany aplikací vaší aplikace. Pokud si nejste jistí, jestli se některá z těchto částí týká vaší aplikace, projděte si klíčová rozhodnutí o integraci sady SDK.