Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Sada Microsoft Intune App SDK pro Android umožňuje začlenit zásady ochrany aplikací Intune (označované také jako zásady MAM) do nativní aplikace Java/Kotlin pro Android. Aplikace spravovaná Intune je aplikace, která je integrovaná se sadou Intune App SDK. Správci Intune můžou do vaší Intune spravované aplikace snadno nasadit zásady ochrany aplikací Intune když ji aktivně spravuje.
Poznámka
Tento průvodce je rozdělen do několika odlišných fází. Začněte tím, že si projdete 1. fázi: Plánování integrace.
Fáze 5: Multi-identita
Cíle fází
- Zjistěte, jestli vaše aplikace potřebuje podporu více identit.
- Seznamte se s tím, jak sada SDK aplikací Intune vnímá identity.
- Refaktorujte svou aplikaci pro povědomí o identitě.
- Přidejte kód, který bude sadu SDK informovat o aktivních a měnících se identitách v celé aplikaci.
- Důkladně otestujte vynucování zásad ochrany aplikací pro spravované i nespravované identity.
Terminologie identit
Pojmy "uživatel", "účet" a "identita" se často vzájemně zaměňují. Tato příručka se pokouší rozlišovat následovně:
- Uživatel: člověk používající softwarový produkt. Dále se rozlišují jako koncový uživatel, uživatel používající aplikaci pro Android, auživatel / správce / správce IT / Pro, uživatel používající Centrum pro správu Microsoft Intune.
- Účet: Záznam softwaru patřící organizaci, který jednoznačně identifikuje entitu uživatele. Běžný uživatel může mít několik účtů.
- Identita: Sada dat, která sada SDK pro aplikace Intune používá k jednoznačné identifikaci účtu.
Pozadí
Ve výchozím nastavení sada Intune App SDK použije zásady na celou aplikaci. Po registraci účtu s vybranými zásadami ochrany aplikací sada SDK přidruží každý soubor a každou aktivitu k identitě tohoto účtu a cílené zásady tohoto účtu použije univerzálně.
Pro mnoho vývojářů je to chování ochrany aplikací pro jejich aplikace žádoucí. Tyto aplikace jsou považovány za aplikace s jednou identitou. Dokončením předchozích fází se vaše aplikace úspěšně integrovala jako jedna identita a může vynucovat všechny základní zásady. Aplikace, které mají zůstat jedinou identitou, můžou tuto část přeskočit a pokračovat do 6. fáze: App Configuration.
Sada Intune App SDK může volitelně vynucovat zásady na úrovni jednotlivých identit. Pokud vaše aplikace už podporuje více účtů přihlášených současně a chcete si tuto podporu více účtů se zásadami ochrany aplikací zachovat, považuje se vaše aplikace za více identit.
Tip
Pokud si nejste jisti, jestli má aplikace podporovat ochranu s jednou nebo více identitami, vraťte se k tématu Je moje aplikace s jednou nebo více identitami?
Upozornění
Podpora více identit je výrazně složitější než u jiných funkcí 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ž přistoupíte k další fázi.
"Identita" pro SDK
Když aplikace integrovaná se sadou SDK zaregistruje účet pomocí registerAccountForMAM, sada SDK uloží všechny zadané parametry (upn, aadId, tenantId a autorita) jako identitu. Většina rozhraní API identit sady SDK ale jako identifikátor identity používá poskytnutý identifikátor OID (označovaný také jako Microsoft Entra ID nebo AAD ID). Rozhraní API sady MAM SDK vrátí řetězec OID jako identitu a pro identitu budou vyžadovat řetězcový parametr OID. Některé metody můžou také přijímat nebo vracet řetězec hlavního názvu uživatele. V takovém případě je hlavní název uživatele určen pouze pro informační účely.
V parametrech identity se nerozlišují malá a velká písmena. Požadavky na identitu do sady SDK nemusí vrátit stejná malá písmena, která byla použita při registraci nebo nastavení identity.
Upozornění
U aplikací, které používají zastaralé metody, které přijímají nebo vracejí řetězec hlavního názvu uživatele (UPN), musí aplikace zajistit, aby byl řetězec hlavního názvu uživatele identity předaný různým voláním rozhraní API konzistentní. Předávání nekonzistentních řetězců hlavního názvu uživatele může vést k úniku dat.
Spravované vs. nespravované identity
Jak je popsáno v tématu Registrace zásad 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í se na účet uživatele mohou, ale nemusí vztahovat zásady ochrany aplikací. Pokud na účet cílí zásady ochrany aplikací, sada SDK ho považuje za spravovaný. jinak je nespravovaný.
Sada SDK bude vynucovat zásady pro identity, které považuje za spravované. Sada SDK nebude vynucovat zásady pro identity, které považuje za nespravované.
V současné době sada Intune App SDK podporuje pouze 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ž na ně v současné době cílí zásady ochrany aplikací, považovány za nespravované.
Pokud už je spravovaná identita na zařízení zaregistrovaná a vaše aplikace zaregistruje jinou identitu, na kterou také cílí 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 k odběru oznámení ze sady SDK .
Poznámka
Účet, na který v době registrace necílí zásady ochrany aplikací, bude považován za nespravovaný. I když účet není licencovaný nebo cílený zásadami ochrany aplikací, 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, sada SDK začne tuto identitu považovat za spravovanou, jakmile na ni zacílí zásady. Uživatel se kvůli provedení této změny nemusí odhlašovat a znovu přihlašovat k tomuto účtu.
Aktivní identita
Vaše aplikace musí sadu SDK vždy informovat o identitě, která se právě používá, jinak označované jako aktivní identita. Pokud se aktivní identita spravuje, sada SDK použije ochrany. Pokud se aktivní identita nespravuje, sada SDK nepoužije ochrany.
Vzhledem k tomu, že sada SDK nemá žádné znalosti specifické pro aplikaci, musí důvěřovat aplikaci, aby mohla sdílet správnou aktivní identitu.
Pokud aplikace nesprávně sdělí sadě SDK, že nespravovaná identita je aktivní, když se spravovaná identita ve skutečnosti používá, sada SDK nepoužije ochrany. To by mohlo způsobit únik dat, který by ohrozil data uživatelů.
Pokud aplikace nesprávně sdělí sadě SDK, že spravovaná identita je aktivní, když se ve skutečnosti používá nespravovaná identita, sada SDK nesprávně použije ochrany. Nejedná se o únik dat, ale může to zbytečně omezit nespravované uživatele a vystavit data nespravovaných uživatelů riziku odstranění.
Pokud vaše aplikace zobrazuje data libovolného uživatele, musí zobrazovat pouze data, která patří k aktivní identitě. Pokud vaše aplikace aktuálně neví, kdo vlastní zobrazená data, možná budete muset aplikaci refaktorovat, abyste měli větší povědomí o identitě, než začnete integrovat podporu více identit.
Uspořádání dat aplikací podle identity
Pokaždé, když vaše aplikace zapíše nový soubor, sada SDK k tomuto souboru přidruží identitu (označovanou také jako "značky") na základě aktuální aktivní identity vlákna a procesu. Případně může vaše aplikace přímo volat sadu SDK a ručně označit soubor s konkrétní identitou (podrobnosti najdete v tématu Chráněné Files pro zápis). Sada SDK používá tuto identitu označeného souboru k šifrování souborů i selektivnímu vymazání.
Pokud je spravovaná identita cílená zásadami šifrování, budou šifrovány pouze soubory označené spravovanou identitou.
Pokud akce správce nebo nakonfigurované zásady požadují, aby byla spravovaná data vymazána, 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 nedostatečnou nebo nadměrnou ochranu těchto dat. Důrazně doporučujeme, abyste data aplikace uspořádali podle identity.
Pokud vaše aplikace musí bezpodmínečně ukládat data patřící různým identitám do stejného souboru, sada SDK poskytuje funkce pro označování identity podmnožinami dat v souboru. Podrobnosti viz 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 sestupné priority:
- Úroveň vlákna
-
Context(obecněActivity) úroveň - Úroveň procesu
Identita nastavená na úrovni vlákna nahrazuje identitu nastavenou Context na úrovni, která nahrazuje identitu nastavenou na úrovni procesu.
Sada identit na a Context se používá pouze v příslušných přidružených scénářích.
Například operace V/V souboru nemají přidruženou Contextkartu .
Nejčastěji aplikace nastaví identitu Context na Activity.
Zvažte nastavení Context identity v Activity.onCreate.
Aplikace nesmí zobrazovat data pro identitu, pokud identita Activity není nastavená na stejnou identitu.
Obecně platí, že identita na úrovni procesu je užitečná pouze v případě, že aplikace pracuje pouze s jednou identitou najednou ve všech vláknech.
Nejedná se o typické chování aplikací, které podporují více účtů.
Důrazně doporučujeme, abyste oddělili data účtu a nastavili aktivní identitu na vlákně nebo Context úrovních.
Pokud vaše aplikace používá kontext k získání systémových Application služeb, ujistěte se, že byla nastavena 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 ke spouštění záměrů kontext, používá překladače obsahu nebo využívá jiné systémové služby, nezapomeňte v kontextu nastavit identitu Service .
Podobně, pokud vaše aplikace používá JobService kontext k provedení těchto akcí, nezapomeňte nastavit identitu kontextu nebo vlákna JobService tak, jak to vyžaduje vaše JobService implementace.
Pokud například zpracováváte JobService úlohy pro jednu identitu, zvažte nastavení identity v JobService kontextu.
Pokud zpracováváte JobService ú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 při Context předání v konstruktoru Worker .
Tato Context instance může být sdílena mezi více Worker instancemi současně.
Aby se aplikace vyhnuly nedefinovanému chování, měly by místo toho nastavit identitu vlákna podle Worker.doWork() potřeby Worker implementace.
Poznámka
Vzhledem k tomu, že se CLIPBOARD_SERVICE používá pro operace uživatelského rozhraní, sada SDK používá identitu uživatelského rozhraní aktivity na popředí pro ClipboardManager operace.
Následující metody v MAMPolicyManager lze použít k nastavení aktivní identity a načtení dříve nastavených hodnot identity.
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);
Pro pohodlí můžete také nastavit identitu aktivity přímo prostřednictvím metody v MAMActivity místo volání MAMPolicyManager.setUIPolicyIdentityOID.
K tomu použijte následující metodu:
public final void switchMAMIdentityOID(final String newIdentityOid, final EnumSet<IdentitySwitchOption> options);
Poznámka
Pokud vaše aplikace v manifestu nedeklarovala podporu více identit, volání těchto metod k nastavení identity neprovede žádnou akci, a pokud vrátí , MAMIdentitySwitchResultvždy vrátí FAILEDhodnotu.
Běžná úskalí přepínače identity
V případě volání sady SDK pro
startActivityaplikace Intune App SDK předpokládá, že aktivní identita na úrovni je přidruženáContextk zadanémuIntentparametru. Důrazně doporučujeme nastavit identituContextúrovně s kontextemActivity', ne s kontextemApplication'.Doporučuje se nastavit identitu
ContextonCreateběhem metody Activity. Nezapomeňte však také pokrýt další vstupní body, jako jeonNewIntent. V opačném případě se při opětovném použití stejné aktivity k zobrazení dat pro spravované i nespravované identity můžou zásady nesprávně použít, což vede k nechráněným podnikovým datům nebo k nesprávnému omezení osobních údajů.
Výsledky přepnutí identit
Všechny metody použité k nastavení hodnot vrácených výsledků zprávy identity prostřednictvím MAMIdentitySwitchResult. Mohou být vráceny čtyři hodnoty:
| 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 je proveden pokus o nastavení identity uživatelského rozhraní (Context) v případě, že 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 v PIN kódu nebo výzvě k ověření. |
FAILED |
Změna identity se nezdařila z nespecifikovaného důvodu. |
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 pro nastavení aktivní identity vrací MAMIdentitySwitchResult synchronně.
V případě nastavení Context identity prostřednictvím setUIPolicyIdentityOID je výsledek hlášen asynchronně.
Aplikace může implementovat MAMSetUIIdentityCallback pro přijetí tohoto výsledku nebo může předat hodnotu null pro objekt zpětného volání.
Pokud je hovor uskutečněn v setUIPolicyIdentityOID době, kdy výsledek z předchozího volání ještě ContextsetUIPolicyIdentityOID nebyl doručen, nové zpětné volání nahradí staré volání a původní zpětné volání nikdy neobdrží výsledek.
Upozornění
Context Pokud je Activityk dispozici pro setUIPolicyIdentityOID , sada SDK neví, jestli byla změna identity úspěšná, dokud neprovede kontroly podmíněného spuštění nakonfigurované správcem.
To může vyžadovat zadání PIN kódu nebo přihlašovacích údajů k podnikové síti.
V současné době budou přepínače identit procesů a vláken u aplikace s více identitami vždy úspěšné. Sada SDK si vyhrazuje právo přidat v budoucnu podmínky selhání.
Přepnutí identity uživatelského rozhraní může selhat kvůli neplatným argumentům, pokud by to bylo v konfliktu s identitou vlákna nebo pokud uživatel zruší předplatné kvůli požadavkům na podmíněné spuštění (například stiskne tlačítko zpět na obrazovce s PIN kódem).
Výchozím chováním u selhání přepínače identity uživatelského rozhraní u aktivity je ukončení aktivity.
Chcete-li toto chování změnit a dostávat upozornění na pokusy o změnu identity pro aktivitu, můžete přepsat metodu v MAMActivityrozhraní .
public void onSwitchMAMIdentityComplete(final MAMIdentitySwitchResult result);
Pokud metodu přepíšete onSwitchMAMIdentityComplete (nebo zavoláte super ), musíte zajistit, aby se data spravovaného účtu nezobrazovala po selhání přepnutí identity.
Poznámka
Přepnutí identity může vyžadovat opětovné vytvoření aktivity.
V takovém případě onSwitchMAMIdentityComplete se zpětné volání doručí do nové instance aktivity.
Identity, Intents, and IdentitySwitchOptions
Kromě automatického označování nových souborů pomocí aktivní identity sada SDK také označuje záměry s 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 níže v tématu Implicitní změny identit ).
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 kterou 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í identit.
Sada SDK provádí tuto kontrolu, protože předpokládá, že aplikace stále zobrazuje obsah ze záměru, který patří k identitě označené v záměru. Tento předpoklad chrání před neúmyslným vypnutím ochrany aplikace při zobrazování spravovaných dat; Tento předpoklad však nemusí odpovídat skutečnému chování aplikace.
Volitelné výčty IdentitySwitchOption lze předat rozhraním API setUIPolicyIdentityOID a switchMAMIdentityOID pro úpravu výchozího 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 přeskočila porovnávání požadovaného parametru identity s naposledy uloženou identitou záměru. To je užitečné, když vaše aplikace už nezobrazuje obsah patřící této identitě a sada SDK by neměla tento přepínač identit blokovat. Příklady:- Vaše aplikace je prohlížeč dokumentů. Dokáže vykreslit dokumenty předané z jiných aplikací. Obsahuje také funkci, pomocí které můžou uživatelé přepínat účty. Kdykoli uživatel použije tuto funkci přepnutí účtu, aplikace přejde na cílovou stránku specifickou pro účet s posledními dokumenty tohoto účtu.
- Vaše aplikace obdrží záměr zobrazit dokument. Tento záměr je označený spravovanou identitou.
- Vaše aplikace se přepne na spravovanou identitu a zobrazí tento dokument s řádně použitou ochranou.
- Uživatel použije přepínač účtů ke změně na svůj osobní účet.
Aplikace musí změnit identitu uživatelského rozhraní v kroku 4. V tomto případě, protože chování aplikace je přejít pryč od dat spravovaného účtu (dokumentu v záměru), měla by se použít
IGNORE_INTENTve volání pro přepnutí identity. Tím se vyhnete nevhodnému selhání sady SDK při tomto volání.DATA_FROM_INTENT: Při žádosti o přepnutí identit ve vrstvě uživatelského rozhraní tato možnost informuje sadu SDK, že data z naposledy uložené identity záměru se budou nadále zobrazovat i po úspěšném přepnutí identity. V důsledku toho sada SDK plně vyhodnotí zásady příjmu vůči předchozí identitě záměru a určí, jestli je povoleno ji zobrazit. Příklady:- Vaše aplikace je prohlížeč dokumentů. Dokáže vykreslit dokumenty předané z jiných aplikací. Obsahuje také funkci, pomocí které můžou uživatelé přepínat účty. Na rozdíl od předchozího příkladu, kdykoli uživatel použije tuto funkci přepnutí účtu, aplikace přejde na sdílenou stránku, která zobrazuje poslední dokumenty pro všechny účty.
- Vaše aplikace obdrží záměr zobrazit dokument. Tento záměr je označený spravovanou identitou.
- Vaše aplikace se přepne na spravovanou identitu a zobrazí tento dokument s řádně použitou ochranou.
- Uživatel použije přepínač účtů ke změně na svůj osobní účet.
Aplikace musí změnit identitu uživatelského rozhraní v kroku 4. V tomto případě, protože chování aplikace je pokračovat v zobrazování dat spravované identity (náhled dokumentu v záměru), měla by se použít
DATA_FROM_INTENTve volání pro přepnutí identity. To informuje sadu SDK, aby zkontrolovala nakonfigurované zásady ochrany aplikací a určila, jestli je vhodné, aby se data dál zobrazovala.
(*) Výchozí chování sady SDK zahrnuje speciální malá a velká písmena, 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 mít scénáře, které jsou nezávislé na účtu. 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 vynucovala zásady spravované identity, ale nemusíte mít explicitní identitu, na kterou byste mohli přepnout.
Aktivní identitu můžete vymazat voláním kterékoli ze sad metod identity s parametrem identity OID nastaveným na null.
Vymazání identity na jedné úrovni způsobí, že sada SDK bude hledat aktivní identitu na jiných úrovních na základě pořadí priorit.
Alternativně můžete jako parametr identifikátoru OID identity předat prázdný řetězec, který nastaví identitu na speciální prázdnou hodnotu, která je považována za nespravovanou identitu. Nastavení aktivní identity na prázdný řetězec sděluje sadě SDK, aby nevynucovala žá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 může vaše aplikace naslouchat těmto implicitním změnám identity a reagovat na ně.
Naslouchání těmto implicitním změnám identity je volitelné, ale doporučené. Sada SDK nikdy nezmění aktivní identitu bez poskytnutí těchto implicitních oznámení o změně identity.
Upozornění
Pokud se vaše aplikace rozhodne nenaslouchat implicitním změnám identity, buďte zvlášť opatrní, abyste nepřevzali aktivní identitu.
Pokud máte pochybnosti, můžete getCurrentThreadIdentityOIDaktivní identitu potvrdit pomocí metod , getUIPolicyIdentityOIDa getProcessIdentityOID a .
Zdroje implicitních změn identity
Příchozí přenos dat z jiných aplikací spravovaných přes Intune může změnit aktivní identitu na úrovni vlákna a kontextu.
Pokud je aktivita spuštěna
Intentz jiné aplikace MAM, nastaví se identita aktivity na základě aktivní identity v jiné aplikaci v okamžikuIntentodeslání.- Například aktivita k zobrazení dokumentu aplikace Word se spustí ze záměru aplikace Microsoft Outlook, když uživatel vybere přílohu dokumentu. Identita aktivity prohlížeče dokumentů Office se přepne na identitu z Outlooku.
U služeb bude identita vlákna nastavena podobně po dobu trvání
onStartvolání ORonBind. Volání do vrácenéhoBinderodesílateleonBindtaké dočasně nastaví identitu vlákna.Volání do závěti podobně nastaví identitu vlákna
ContentProviderna dobu jejich trvání.
Interakce uživatele s aktivitou může změnit aktivní identitu na úrovni kontextu. Příklady:
- Pokud uživatel zruší zobrazení výzvy k autorizaci v průběhu
Resumeautorizace, bude to mít za následek implicitní přepnutí na prázdnou identitu.
- Pokud uživatel zruší zobrazení výzvy k autorizaci v průběhu
Zpracování implicitních změn identity
Aplikace může volitelně naslouchat těmto implicitním změnám identity a reagovat na ně. Vaše aplikace může například vyžadovat několik kroků, než bude přidaný účet použitelný, například e-mailová aplikace, která nastavuje novou složku Doručená pošta. Po zobrazení pokusu o přepnutí identity na tuto neúplnou identitu účtu může obslužná rutina aplikace přesměrovat uživatele na aktivitu nastavení účtu, než přijme přepínač identity. Alternativně může obslužná rutina vaší aplikace zobrazit dialogové okno chyby a zablokovat přepínač identity.
Vaše aplikace může implementovat rozhraní MAMIdentityRequirementListener na nebo ContextProvider pro změny identity, které se vztahují na toto vláknoService. Implementace musí přepsat:
public abstract void onMAMIdentitySwitchRequired(String upn, String oid,
AppIdentitySwitchResultCallback callback);
Vaše aplikace může implementovat rozhraní MAMActivityIdentityRequirementListener na Activity pro změny identity, které se vztahují na tuto aktivitu.
Implementace musí přepsat:
public abstract void onMAMIdentitySwitchRequired(String upn, String oid,
AppIdentitySwitchReason reason,
AppIdentitySwitchResultCallback callback);
Parametr AppIdentitySwitchReason výčtu popisuje zdroj implicitního přepínače identity.
| Hodnota výčtu | Výchozí chování sady SDK | Popis |
|---|---|---|
CREATE |
Povolte přepínač identit. | K přepnutí identity dochází kvůli vytvoření nějaké aktivity. |
NEW_INTENT |
Povolte přepínač identit. | Ke změně identity dochází proto, že se aktivitě přiřazuje nový záměr. |
RESUME_CANCELLED |
Zablokujte přepínač identity. | Ke změně identity dochází proto, že došlo ke zrušení životopisu. K tomu dochází nejčastěji, když koncový uživatel stiskne tlačítko Zpět na uživatelském rozhraní pro PIN kód, 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 se volá pro všechny implicitní změny identity s výjimkou těch, které jsou provedeny prostřednictvím Binderu vráceného z MAMService.onMAMBind.
Výchozí implementace okamžitého onMAMIdentitySwitchRequired volání:
callback.reportIdentitySwitchResult(FAILURE)Pokud jeRESUME_CANCELLEDdůvodem .callback.reportIdentitySwitchResult(SUCCESS)ve všech ostatních případech.
Neočekává se, že většina aplikací bude muset blokovat nebo zpožďovat 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č identit zablokovaný, je chování koncového uživatele stejné, jako kdyby nastavení ochrany aplikací pro příjem dat z jiných aplikací sady SDK zakázalo příchozí přenos dat.
Pokud služba běží v hlavním vlákně,
reportIdentitySwitchResultmusí být volána synchronně, jinak vlákno uživatelského rozhraní přestane reagovat.Pro
Activityvytvoření onMAMIdentitySwitchRequired bude voláno předonMAMCreate. Pokud aplikace musí zobrazit uživatelské rozhraní, aby určila, jestli povolit přepínač identit, musí se toto uživatelské rozhraní zobrazit pomocí jiné aktivity.ActivityKdyž je požadován přepnutí na prázdnou identitu s následujícím důvodemRESUME_CANCELLED, 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řepínač odmítnout a uživatel bude znovu požádán, aby dodržoval zásady pro obnovení identity (například tím, že se mu zobrazí obrazovka pro zadání PIN kódu aplikace).
Upozornění
Aplikace s více identitami může přijímat příchozí data ze spravovaných i nespravovaných aplikací. Aplikace zodpovídá za zpracování dat ze spravovaných identit spravovaným způsobem.
Pokud je požadovaná identita spravovaná (ke kontrole použijte MAMPolicyManager.getIsIdentityOIDManage ), ale aplikace nemůže tento účet použít (například proto, že účty, jako jsou e-mailové účty, musí být nejprve nastaveny v aplikaci), měl by být přepínač identity odmítnut.
Výchozí chování pro MAMActivity.onMAMIdentitySwitchRequired lze přistupovat voláním statické metody MAMActivity.defaultOnMAMIdentitySwitchRequired(activity, upn, oid, reason, callback).
Podobně, pokud potřebujete přepsat MAMActivity.onSwitchMAMIdentityComplete, můžete implementovat MAMActivityIdentitySwitchListener bez explicitního dědění z MAMActivity.
Přepínače identit a omezení snímků obrazovky
Sada Intune App SDK používá Window příznak FLAG_SECURE k vynucení zásad pro snímky obrazovky.
Některé aplikace můžou taky nastavit FLAG_SECURE pro své vlastní účely.
Pokud zásady ochrany aplikací snímky obrazovky neomezují, sada SDK se neupraví 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 tuto zásadu nesplňují, se sada SDK vymaže FLAG_SECURE.
V důsledku toho by se vaše aplikace neměla spoléhat na to, že FLAG_SECURE po přepnutí identity zůstane nastavená.
Zachování identity při asynchronních operacích
Aplikace často odesílají úlohy na pozadí z vlákna uživatelského rozhraní, aby zpracovaly operace v jiných vláknech. Aplikace s více identitami musí zajistit, aby tyto úlohy na pozadí fungovaly s odpovídající identitou, což je často stejná identita používaná aktivitou, která je odeslala.
Sada Intune App SDK poskytuje MAMAsyncTask a MAMIdentityExecutors jako pohodlí, které pomáhá zachovat identitu v asynchronních operacích. Vaše aplikace je musí buď používat (nebo explicitně nastavit identitu vlákna pro úlohy), pokud její asynchronní operace mohou:
- Zápis dat patřících spravované identitě do souboru
- Komunikace s jinými aplikacemi
MAMAsyncTask
Chcete-li použít MAMAsyncTask, jednoduše z něj AsyncTask dědit místo a nahradit přepsání doInBackground a onPreExecute s a onPreExecuteMAM v doInBackgroundMAM tomto 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 převezmou aktivní identitu na základě normálního pořadí priorit.
MAMIdentityExecutors
MAMIdentityExecutors Umožňuje zabalit existující Executor instanci or ExecutorService jako metodu zachování Executor/ExecutorService identity pomocí wrapExecutor metod and wrapExecutorService . Například
Executor wrappedExecutor = MAMIdentityExecutors.wrapExecutor(originalExecutor, activity);
ExecutorService wrappedService = MAMIdentityExecutors.wrapExecutorService(originalExecutorService, activity);
MAMIdentityExecutors převezmou aktivní identitu na základě normálního pořadí priorit.
Ochrana souborů
Writing Protected Files
Jak je uvedeno výše v části Uspořádání dat aplikací podle identity, sada Intune App SDK přidružuje aktivní identitu (z úrovně vlákna nebo procesu) k souborům při jejich zápisu. Je důležité, abyste měli při vytváření souboru nastavenou správnou identitu, aby byla zajištěna správná funkce šifrování a selektivního vymazání.
Vaše aplikace se může dotazovat na identitu souboru nebo ji změnit pomocí třídy MAMFileProtectionManager , konkrétně MAMFileProtectionManager.getProtectionInfo pro dotazování a MAMFileProtectionManager.protectForOID změny.
Metodu protectForOID lze také použít k ochraně adresářů.
Ochrana adresářů se vztahuje rekurzivně 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 nastavenou stejnou ochranu.
Vzhledem k tomu, že ochrana adresářů je použita rekurzivně, protectForOID může dokončení volání u velkých adresářů nějakou dobu trvat.
Z tohoto důvodu můžou aplikace, které aplikují ochranu na adresář, který obsahuje velký počet souborů, chtít běžet protectForOID asynchronně ve vlákně na pozadí.
Volání protectForOID s prázdným řetězcem pro parametr identity označí soubor nebo adresář s nespravovanou identitou.
Tato operace odebere šifrování ze souboru nebo adresáře, pokud byly dříve zašifrované.
Když se vydá příkaz k selektivnímu vymazání, soubor nebo adresář se neodstraní.
Upozornění
Je důležité zajistit, aby touto identitou byly chráněny jenom soubory patřící určité identitě. Jinak může při odhlášení vlastnící identity dojít ke ztrátě dat u jiných identit, protože soubory budou vymazány a přístup k šifrovacímu klíči bude ztracen.
Zobrazení chráněného obsahu souboru
Stejně důležité je mít při zobrazení obsahu souboru nastavenou správnou identitu, aby neoprávnění uživatelé nemohli zobrazit spravovaná data.
Sada SDK nemůže automaticky odvodit vztah mezi čtením souborů a zobrazením dat v Activityrozhraní .
Před zobrazením spravovaných dat musí aplikace správně nastavit identitu uživatelského rozhraní.
To zahrnuje data načtená ze souborů.
Pokud soubor pochází z vnějšku aplikace (buď z veřejného zapisovatelného ContentProvider umístění, nebo se čte z veřejného zapisovatelného umístění), musí se aplikace pokusit určit identitu souboru (pomocí správného přetížení MAMFileProtectionManager.getProtectionInfo pro zdroj dat) před zobrazením informací načtených ze souboru.
Pokud getProtectionInfo aplikace hlásí jinou než null neprázdnou identitu, musí aplikace nastavit identitu uživatelského rozhraní tak, aby odpovídala této identitě pomocí MAMActivity.switchMAMIdentityOID nebo MAMPolicyManager.setUIPolicyIdentityOID.
Pokud se přepnutí identity nezdaří, 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í, které přebírá ), a pak odpovídajícím způsobem nastavit identitu kontextu nebo vlákna Uri.
To je nutné provést před otevřením popisovače nebo vstupní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 načtením dat z disku potvrdí identitu, která by se měla použít k zobrazení obsahu:
MAMFileProtectionInfo info = MAMFileProtectionManager.getProtectionInfo(docPath) if (info != null) MAMPolicyManager.setUIPolicyIdentityOID(activity, info.getIdentityOID(), callback, EnumSet.noneOf<IdentitySwitchOption.class>)Aplikace počká, dokud nebude výsledek nahlášen zpětnému volání.
Pokud je ohlášeným výsledkem chyba, aplikace dokument nezobrazí.
Aplikace se otevře a vykreslí soubor.
Pokud aplikace ke stahování souborů používá Android DownloadManager , pokusí se sada SDK tyto soubory chránit automaticky pomocí dříve popsané priority identity.
Kontext použitý k načtení bude použit, pokud identita vlákna DownloadManager není nastavena.
Pokud stažené soubory obsahují firemní data, je zodpovědností aplikace zavolat protectForOID , pokud jsou soubory po stažení přesunuty nebo znovu vytvořeny.
Přechod Single-Identity na více identit
Pokud aplikace, která byla dříve vydaná s integrací Intune s jednou identitou, později integruje více identit, dříve nainstalované aplikace projdou přechodem. Tento přechod uživatel nevidí.
Aplikace není ke zpracování tohoto přechodu nutná . Všechny soubory vytvořené před přechodem se budou dál považovat za spravované (takže při zapnuté zásadě šifrování zůstanou zašifrované).
Pokud nechcete, aby byla všechna předchozí data aplikací přidružená ke spravované identitě, můžete tento přechod rozpoznat a explicitně odebrat ochranu.
- Zjistěte upgrade porovnáním verze aplikace se známou verzí, do které byla přidána podpora více identit.
- Volání
protectForOIDs prázdným řetězcem pro parametr identity u souborů nebo adresářů, které nechcete přidružit ke spravované identitě.
Offline scénáře
Pokud není nainstalovaná aplikace Portál společnosti, spouští se sada Intune App SDK v offline režimu. Označování identity souborů je citlivé na offline režim:
Pokud není nainstalovaný Portál společnosti, nejde soubory označit jako identitu. Volání MAMFileProtectionManager.protectForOID v offline režimu je bezpečné, ale nebude mít žádný vliv.
Pokud je nainstalovaný Portál společnosti, ale aplikace nemá zásady ochrany aplikací, nejde soubory spolehlivě označit identitou.
Když je k dispozici označování identit souborů, všechny dříve vytvořené soubory se považují za osobní/nespravované (patřící k identitě 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 z jedné identity na více identit.
Aby se těmto případům předešlo, neměly by aplikace vytvářet soubory obsahující data účtu, dokud se registrace účtu úspěšně nedokončí. Pokud vaše aplikace musí bezpodmínečně vytvářet soubory v režimu offline, může pomocí MAMFileProtectionManager.protectForOID opravit přidruženou identitu souboru, jakmile bude sada SDK online.
Ochrana datových bufferů
Upozornění
Nedoporučuje se zapisovat data patřící k více účtům do jednoho souboru. Pokud je to možné, uspořádejte soubory aplikace podle identity.
MAMDataProtectionManager sady SDK poskytuje metody pro kontrolu a změnu označené identity v konkrétních datových bufferech ve formátu nebo byte[]InputStream.
MAMDataProtectionManager.protectForOID Umožňuje aplikaci přidružit data k určité identitě, a pokud je identita aktuálně zaměřena zásadami šifrování, data zašifrovat.
Tato šifrovaná data jsou vhodná pro uložení na disk v souboru.
MAMDataProtectionManager Taky umožňuje dotazovat se na data spojená s identitou a zrušit jejich zašifrování.
Aplikace, které oznámení využívají MAMDataProtectionManager , by měly implementovat přijímač oznámení MANAGEMENT_REMOVED . Další podrobnosti najdete v tématu Registrace k odběru oznámení ze sady SDK .
Po dokončení tohoto oznámení už nebudou vyrovnávací paměti chráněné prostřednictvím této třídy čitelné (pokud bylo v době, kdy byly chráněné vyrovnávací paměti, povolené šifrování souborů).
Aplikace může zabránit tomu, aby se tyto vyrovnávací paměti staly nečitelnými, tím, že při zpracování MANAGEMENT_REMOVED oznámení zavolá MAMDataProtectionManager.unprotect všechny vyrovnávací paměti.
Pokud chcete zachovat informace o identitě, je také bezpečné během tohoto oznámení zavolat protectForOID .
Je zaručeno, že šifrování bude během oznámení zakázáno a volání protectForOID obslužné rutiny nešifruje datové vyrovnávací paměti.
Upozornění
Operacím šifrování byste se měli vyhnout v rané fázi procesu aplikace. Sada SDK provede inicializaci šifrování asynchronně co nejdříve po spuštění aplikace. Pokud ale aplikace při spuštění aplikace vytvoří žádost o šifrování, může být zablokovaná, dokud se inicializace šifrování nedokončí.
Poznámka
Rozhraní API pro šifrování sady SDK pro aplikace Intune by se mělo používat jenom k šifrování dat, jak to vyžadují zásady Intune. Na účty, na které nejsou cílené povolené zásady šifrování, se nepoužije žádná ochrana, takže ji nelze použít jako univerzální šifrovací knihovnu.
Poskytovatelé obsahu
Aplikace s více identitami 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 isProvideContentAllowedForOid(provider, oid)MAMContentprovider.
Pokud tato funkce vrátí hodnotu false, obsah nesmí být vrácen volajícímu.
Volání isProvideContentAllowedForOid není vyžadováno, pokud vracíte ContentProvider .ParcelFileDescriptor
Popisovače souborů vrácené poskytovatelem obsahu se zpracovávají automaticky na základě identity souboru.
Selektivní vymazání
Ve výchozím nastavení bude sada Intune App SDK automaticky zpracovávat selektivní vymazání a odstranit všechny soubory, které byly přidruženy ke spravované identitě. Pak sada SDK aplikaci elegantně zavře, dokončí aktivity a ukončí proces aplikace.
Sada SDK poskytuje vaší aplikaci volitelnou možnost doplnit (doporučeno) nebo přepsat výchozí chování vymazání.
Výchozí obslužná rutina vymazání sady SDK nezpracovává datové vyrovnávací paměti chráněné .MAMDataProtectionManager
Pokud vaše aplikace tuto funkci používala, musí doplnit nebo přepsat výchozí obslužnou rutinu vymazání, aby tato data odstranila.
Poznámka
Doplnění a přepsání výchozího chování 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í 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 mazat synchronně a neměla by se vracet, dokud nebude dokončeno veškeré čištění.
Aplikace by měly důkladně zvážit doplnění výchozího chování mazání pomocí , WIPE_USER_AUXILIARY_DATAprotož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 mazání
Pokud chcete přepsat výchozí chování vymazání sady SDK, může se vaše aplikace zaregistrovat pro WIPE_USER_DATAMAMNotificationType.
Upozornění
Aplikace se nikdy nesmí registrovat pro obojí WIPE_USER_DATA a WIPE_USER_AUXILIARY_DATA.
Přepsání výchozího chování vymazání sady SDK představuje pro vaši aplikaci značné riziko. Vaše aplikace bude mít plnou odpovědnost za odstraně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čeny.
- Pokud byla spravovaná identita chráněná šifrováním a vlastní obslužná rutina vymazání vaší aplikace zcela neodebere všechna spravovaná data, zůstanou všechny zbývající spravované soubory zašifrované. Tato data budou nepřístupná a vaše aplikace nemusí zvládnout pokusy o řádné přečtení zašifrovaných dat.
- Obslužná rutina vymazání vaší aplikace může způsobit ztrátu dat pro nespravované uživatele, 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 souboru ponechat jiná data, musí změnit identitu souboru (přes MAMFileProtectionManager.protectForOID) na nespravovanou identitu nebo prázdný řetězec.
Vaše přepsaná obslužná rutina vymazání by měla vymazat data synchronně a neměla by se vracet, dokud nebude veškeré vyčištění dokončeno.
Po dokončení vlastního postupu 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 poté, co dojde k vymazání.
Kritéria pro ukončení
Naplánujte si, že budete muset věnovat značný čas ověření integrace více identit vaší aplikace. Než začnete testovat:
- Vytvořte a přiřaďte účtu zásady ochrany aplikací. Bude to váš testovaný spravovaný účet.
- Vytvořte jiný účet, ale nepřiřaďte mu zásady ochrany aplikací. Bude to váš testovací nespravovaný účet. Pokud vaše aplikace podporuje více typů účtů než účty Microsoft Entra, můžete jako nespravovaný testovací účet použít existující účet, který není účtem Entra.
- Znovu se seznamte s tím, jak se zásady ve vaší aplikaci vynucují. Testování více identit vyžaduje, abyste snadno rozlišili, kdy vaše aplikace funguje a kdy nefunguje s vynucenými zásadami. Nastavení zásad ochrany aplikací pro blokování snímků obrazovky účinně testuje vynucování zásad.
- Zamyslete se nad celou sadou uživatelského rozhraní, které vaše aplikace nabízí. Vytvořte výčet obrazovek, na kterých se zobrazují data účtu. Prezentuje vaše aplikace najednou pouze data jednoho účtu, nebo může prezentovat data patřící více účtům současně?
- Vezměte v úvahu celou sadu souborů, které vaše aplikace vytvoří. Vytvořte výčet, které z těchto souborů obsahují data patřící účtu a které nejsou na úrovni systému.
- Určete, jak budete ověřovat šifrování u každého z těchto souborů.
- Zamyslete se nad všemi způsoby, jak může vaše aplikace spolupracovat s jinými aplikacemi. Vytvořte výčet všech vstupních a výstupních bodů. Jaké typy dat může vaše aplikace ingestovat? Jaké záměry zpráva vysílá? Jaké poskytovatele obsahu implementuje?
- Určete, jak budete každou z těchto funkcí sdílení dat používat.
- 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 ručně přepnout na účet, aby se mu zobrazily údaje o účtu?
Jakmile důkladně vyhodnotíte aktuální chování aplikace, ověřte integraci více identit provedením následující sady testů. Upozorňujeme, že se nejedná o úplný seznam a nezaručuje, že implementace vaší aplikace s více identitami je bez chyb.
Ověřování scénářů přihlášení a odhlášení
Vaše aplikace s více identitami podporuje až 1 spravovaný účet a několik nespravovaných účtů. Tyto testy pomáhají zajistit, aby integrace více identit nesprávně nezměnila ochranu při přihlašování nebo odhlašování uživatelů.
Pro tyto testy nainstalujte aplikaci a Portál společnosti Intune. Před zahájením testu se nepřihlašujte.
| Scénář | Kroky |
|---|---|
| Nejprve se přihlaste, spravujte | - Nejprve se přihlaste pomocí spravovaného účtu a ověřte, zda jsou data tohoto účtu spravována. - Přihlaste se pomocí nespravovaného účtu a ověřte, že data tohoto účtu nejsou spravovaná. |
| Nejdřív se přihlásit nespravovaně | - Nejprve se přihlaste pomocí nespravovaného účtu a ověřte, že data tohoto účtu nejsou spravovaná. - Přihlaste se pomocí spravovaného účtu a ověřte, zda jsou data tohoto účtu spravována. |
| Přihlášení k více spravovaným službám | - Nejprve se přihlaste pomocí spravovaného účtu a ověřte, zda jsou data tohoto účtu spravována. - Přihlaste se pomocí druhého spravovaného účtu a ověřte, že má uživatel zablokované přihlášení, aniž by nejprve odebral původní spravovaný účet. |
| Podařilo se odhlásit | - Přihlaste se k aplikaci pomocí spravovaného i nespravovaného účtu. - Odhlaste se ze spravovaného účtu. - Zkontrolujte, zda byl z aplikace odstraněn spravovaný účet a zda byla odstraněna všechna data tohoto účtu. - Potvrď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žijí. |
| Odhlášení bez správy | - Přihlaste se k aplikaci pomocí spravovaného i nespravovaného účtu. - Odhlaste se z nespravovaného účtu. - Zkontrolujte, zda byl z aplikace odstraněn nespravovaný účet a zda byla odstraněna všechna data tohoto účtu. - Ověřte, že je spravovaný účet stále přihlášený, že žádná data nespravovaného účtu nebyla odebrána a že se zásady stále používají. |
Ověření aktivní identity a životního cyklu aplikace
Vaše aplikace pro více identit může prezentovat zobrazení s daty jednoho účtu a umožnit uživateli explicitně změnit aktuální účet, který se používá. Může také prezentovat zobrazení s daty více účtů současně. Tyto testy pomáhají zajistit, aby integrace více identit poskytovala správnou ochranu pro aktivní identitu na každé stránce v průběhu celého životního cyklu aplikace.
Pro tyto testy nainstalujte aplikaci a Portál společnosti Intune; před zahájením testu se přihlaste pomocí spravovaného i nespravovaného účtu.
| Scénář | Kroky |
|---|---|
| Spravované zobrazení jednoho účtu | - Přepněte na spravovaný účet. - Přejděte na všechny stránky v aplikaci, které prezentují údaje jednoho účtu. - Potvrďte, že se zásady uplatňují na každé stránce. |
| Zobrazení jednoho účtu, nespravované | - Přepněte na nespravovaný účet. - Přejděte na všechny stránky v aplikaci, které prezentují údaje jednoho účtu. - Potvrďte, že zásady nejsou aplikovány na žádnou stránku. |
| Zobrazení více účtů | - Přejděte na všechny stránky aplikace, které prezentují údaje více účtů současně. - Potvrďte, že se zásady uplatňují na každé stránce. |
| Řízená pauza | - Na obrazovce se zobrazenými spravovanými daty a aktivní zásadou pozastavte aplikaci tak, že přejdete na domovskou obrazovku zařízení nebo do jiné aplikace. - Pokračujte v aplikaci. - Potvrďte, že se zásada stále používá. |
| Nespravovaná pauza | - Na obrazovce se zobrazenými nespravovanými daty a bez aktivní zásady pozastavte aplikaci tak, že přejdete na domovskou obrazovku zařízení nebo do jiné aplikace. - Pokračujte v aplikaci. - Ověřte, že se zásada nepoužívá. |
| Řízené zabití | - Na obrazovce se zobrazenými spravovanými daty a aktivní zásadou vynuťte ukončení aplikace. - Restartujte aplikaci. - Ujistěte se, že pokud se aplikace obnoví na obrazovce s daty spravovaného účtu (očekávané), zásady se stále používají. Pokud se aplikace obnoví na obrazovce s daty nespravovaného účtu, ověřte, že se tato zásada nepoužívá. |
| Neřízené zabití | - Na obrazovce se zobrazenými nespravovanými daty a aktivní zásadou vynuťte ukončení aplikace. - Restartujte aplikaci. - Ujistěte se, ž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 jsou zásady stále použité. |
| Změna identity ad hoc | - Experimentujte s přepínáním mezi účty a pozastavením / obnovením / zabitím / restartováním aplikace. - Potvrďte, že data spravovaného účtu jsou vždy chráněná a data nespravovaného účtu nejsou chráněná nikdy. |
Ověřování scénářů sdílení dat
Vaše aplikace s více identitami může odesílat data do jiných aplikací a přijímat je z jiných aplikací. Zásady ochrany aplikací Intune obsahují nastavení, která toto chování diktují. Tyto testy pomáhají zajistit, aby integrace více identit respektovala tato nastavení sdílení dat.
Pro tyto testy nainstalujte aplikaci a Portál společnosti Intune; před zahájením testu se přihlaste pomocí spravovaného i nespravovaného účtu. Kromě toho:
- Nastavte zásady spravovaného účtu takto:
- "Posílat organizační data do jiných aplikací" na "Aplikace spravované podle zásad".
- "Přijímat data z jiných aplikací" na "Aplikace spravované podle zásad".
- Nainstalujte na testovací zařízení další aplikace:
- Spravovaná aplikace, na kterou se zaměřují stejné zásady jako vaše aplikace a která může odesílat a přijímat data (jako třeba Microsoft Outlook).
- Libovolná nespravovaná aplikace, která může odesílat a přijímat data.
- Přihlaste se k jiné spravované aplikaci pomocí spravovaného testovacího účtu. I když má druhá spravovaná aplikace více identit, přihlašujte se pouze pomocí spravovaného účtu.
Pokud má vaše aplikace schopnost posílat data do jiných aplikací, například Microsoft Outlook odesílá přílohu dokumentu do systém Microsoft Office:
| Scénář | Kroky |
|---|---|
| Spravovaná identita odeslána do nespravované aplikace | - Přepněte na spravovaný účet. - Přejděte do umístění, kam může vaše aplikace odesílat data. - Pokuste se odeslat data do nespravované aplikace. - Odesílání dat do nespravované aplikace by se vám mělo zablokovat. |
| Odeslání spravované identity do spravované aplikace | - Přepněte na spravovaný účet. - Přejděte do umístění, kam může vaše aplikace odesílat data. - Pokuste se odeslat data do jiné spravované aplikace s přihlášeným spravovaným účtem. - Měli byste mít oprávnění odesílat data do spravované aplikace. |
| Nespravovaná identita odeslat do spravované aplikace | - Přepněte na nespravovaný účet. - Přejděte do umístění, kam může vaše aplikace odesílat data. - Pokuste se odeslat data do jiné spravované aplikace s přihlášeným spravovaným účtem. - Odesílání dat do jiné spravované aplikace by se vám mělo zablokovat. |
| Odeslání nespravované identity do nespravované aplikace | - Přepněte na nespravovaný účet. - Přejděte do umístění, kam může vaše aplikace odesílat data. - Pokuste se odeslat data do nespravované aplikace. - Vždy byste měli mít možnost odesílat údaje z nespravovaného účtu do nespravované aplikace. |
Vaše aplikace může aktivně importovat data z jiných aplikací, například Microsoft Outlook může připojit soubor z Microsoft OneDrivu. Vaše aplikace může také pasivně přijímat data z jiných aplikací, například z systém Microsoft Office otevírající dokument z přílohy Microsoft Outlooku. Nastavení zásad ochrany aplikací pro příjem pokrývá oba scénáře.
Pokud má vaše aplikace schopnost 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ěl by vám být zablokován 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 jiné 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 jiné spravované aplikace s přihlášeným spravovaným účtem. - Import dat z jiné spravované aplikace by měl být zablokován. |
| 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 odeslat data z nespravované aplikace do vaší 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řepně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 odeslat data ze spravované aplikace do vaší aplikace. - Spravovaný účet vaší aplikace by měl mít možnost přijímat data z jiné spravované aplikace. |
| Příjem nespravované identity ze spravované aplikace | - Přepněte na nespravovaný účet. - Přepně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 odeslat data ze spravované aplikace do vaší 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 odeslat data z nespravované aplikace do vaší aplikace. - Nespravovaný účet vaší aplikace by měl mít vždy možnost přijímat data z nespravované aplikace. |
Selhání v těchto testech může znamenat, že vaše aplikace nemá při pokusech o odesílání nebo příjem dat nastavenou správnou aktivní identitu. Můžete to prozkoumat tak, že v okamžiku odesílání nebo příjmu využijete rozhraní API get identity sady SDK a potvrdíte, že je aktivní identita správně nastavená.
Ověřování scénářů selektivního vymazání
Vaše aplikace pro více identit mohla doplnit nebo přepsat výchozí chování vymazání sady SDK. Tyto testy pomáhají zajistit, aby integrace více identit správně odebrala spravovaná data při zahájení vymazání, aniž by to mělo vliv na nespravovaná data.
Upozornění
Připomínáme, že pokud vaše aplikace využívá , MAMDataProtectionManager.protectForOIDmusí implementovat obslužnou rutinu pro buďWIPE_USER_AUXILIARY_DATA, nebo WIPE_USER_DATA.
Pro tyto testy nainstalujte aplikaci a Portál společnosti Intune; před zahájením testu se přihlaste pomocí spravovaného i nespravovaného účtu. U obou účtů vyzkoušejte scénáře aplikací, které ukládají data účtů.
| Scénář | Předpoklady | Kroky |
|---|---|---|
| Doplňkový ovladač pro utření | Vaše aplikace implementovala obslužnou rutinu pro WIPE_USER_AUXILIARY_DATA |
-
Selektivní vymazání provedete v Centru pro správu služby Microsoft Intune. - Potvrďte (obvykle protokolováním), že se váš obslužný nástroj pro vymazání úspěšně spustil. - Zkontrolujte, zda byl z aplikace odstraněn spravovaný účet a zda byla odstraněna všechna data tohoto účtu. - Potvrď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žijí. |
| Přepsaný ovladač pro vymazání | Vaše aplikace implementovala obslužnou rutinu pro WIPE_USER_DATA |
-
Selektivní vymazání provedete v Centru pro správu služby Microsoft Intune. - Potvrďte (obvykle protokolováním), že se váš obslužný nástroj pro vymazání úspěšně spustil. - Zkontrolujte, zda byl z aplikace odstraněn spravovaný účet a zda byla odstraněna všechna data tohoto účtu. - Potvrď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žijí. - Ujistěte se, že se aplikace po dokončení úpravny mazání buď řádně ukončila, nebo je stále v pořádku. |
| Ruční ochrana souborů | - Vaše aplikace volá MAMFileProtectionManager.protectForOID - Vaše aplikace implementovala obslužnou rutinu pro WIPE_USER_DATA |
- Ujistěte se, že jste provedli scénáře, kdy by vaše aplikace ručně chránila alespoň jeden soubor patřící do spravovaného účtu. - Selektivní vymazání provedete v Centru pro správu služby Microsoft Intune. - Potvrďte, že jsou soubory odebrány. |
| Manuální ochrana datové vyrovnávací paměti | - Vaše aplikace volá MAMDataProtectionManager.protectForOID - Vaše aplikace implementovala obslužnou rutinu pro buď, WIPE_USER_AUXILIARY_DATA nebo. WIPE_USER_DATA |
- Ujistěte se, že jste provedli scénáře, kdy by vaše aplikace ručně chránila alespoň jednu vyrovnávací paměť dat patřící ke spravovanému účtu. - Selektivní vymazání provedete v Centru pro správu služby Microsoft Intune. - Ujistěte se, že datové vyrovnávací paměti jsou odstraněny ze všech souborů, ve kterých byly uloženy, a že vaše aplikace může stále číst nespravovaná data z těchto souborů. |
Další kroky
Po dokončení všech výše uvedených kritérií ukončení je teď vaše aplikace úspěšně integrovaná jako multiidentita a může vynucovat zásady ochrany aplikace pro jednotlivé identity. Následující části, fáze 6: App Configuration a fáze 7: Funkce účasti v aplikaci, mohou, ale nemusí být vyžadovány, v závislosti na požadované podpoře zásad ochrany aplikací vaší aplikací. Pokud si nejste jistí, jestli se některá z těchto částí vztahuje na vaši aplikaci, vraťte se ke klíčovým rozhodnutím o integraci sady SDK.