sada Intune App SDK pro iOS – funkce zobrazení webu
Zobrazení webového obsahu v rámci aplikace
V iOSu je možné použít webová zobrazení k zobrazení široké škály webového obsahu, aniž byste museli opustit kontext aplikace. Některé aplikace můžou také používat webová zobrazení jako způsob sdílení funkcí a uživatelského rozhraní na různých platformách.
Vzhledem k tomu, že v aplikaci existují webová zobrazení, vystavují ji potenciálnímu úniku dat. Pokud je uživatel schopen přejít na libovolné externí webové stránky v rámci aplikace (buď záměrným návrhem aplikace, nebo chytrým manévrováním přes vystavené odkazy v obsahu HTML vykreslené webové stránky), může být uživatel schopen z aplikace prozrazovat spravovaná data.
Sada Intune MAM SDK poskytuje několik rozhraní API pro zpracování různých scénářů, kdy se spravovaný i nespravovaný obsah zobrazuje prostřednictvím webových zobrazení v rámci aplikace. Tato rozhraní API je potřeba volat jenom v případě, že je k aplikaci přihlášený spravovaný uživatel. Projděte si následující tabulku jako stručnou příručku, která rozhraní API se vztahuje na konkrétní scénář.
Scénář | Rozhraní api |
---|---|
Pouze uživatelský a organizační obsah bez rizika libovolných webových stránek | Nepotřebujete žádná rozhraní API. |
Pouze obsah mimo uživatele a obsah mimo organizaci | Nastavit TreatAllWebViewsAsUnmanaged v Info.plist |
Kombinace uživatelského/organizačního a neuživatelského/jiného obsahu než obsahu organizace (většina mimo uživatele nebo mimo organizaci) | Nastavení TreatAllWebViewsAsUnmanaged v a Info.plist použití setWebViewPolicy:forWebViewer: s webovými zobrazeními IntuneMAMWebViewPolicyCurrentIdentity , která obsahují uživatelská data nebo data organizace |
Kombinace uživatelského/organizačního a neuživatelského obsahu/obsahu mimo organizaci (většina uživatelů/organizace) | Používejte setWebViewPolicy:forWebViewer: jenom s webovými zobrazeními IntuneMAMWebViewPolicyUnmanaged , která neobsahují uživatelská data nebo data organizace. |
Uživatelský nebo organizační obsah, ale s rizikem libovolných webových stránek | Po vhodném TreatAllWebViewsAsUnmanaged použití a setWebViewPolicy:forWebViewer: implementujte IntuneMAMWebViewPolicyDelegate také pro webová zobrazení, která by mohla přejít na libovolné webové stránky. |
Scénář webového zobrazení 1: Pouze webové stránky, které zobrazují obsah uživatele nebo organizace
Pokud aplikace používá jenom webová zobrazení jako způsob vykreslování uživatelského obsahu nebo obsahu organizace a neexistuje riziko přechodu webového zobrazení na libovolné externí webové stránky, pak není nutné používat žádná rozhraní API ani nastavení. Ve výchozím nastavení bude sada SDK zacházet se všemi webovými zobrazeními v aplikaci jako s obsahem, který patří k aktuální identitě zásad uživatelského rozhraní.
Pokud spravovaný uživatel otevře webové zobrazení v aplikaci, všechna vyjmutí nebo kopírování dat z webového zobrazení se budou považovat za spravovaný obsah. Vložení do webového zobrazení se bude zpracovávat podle zásad spravovaného účtu.
Pokud nespravovaný uživatel otevře webové zobrazení v aplikaci, veškerá vyjmutí nebo kopírování dat z webového zobrazení se budou považovat za nespravovaný obsah. Vložení do webového zobrazení bude považováno za nespravovaný účet a nebudou zavedena žádná další omezení.
Scénář webového zobrazení 2: Pouze webové stránky, které nezobrazují uživatelský nebo organizační obsah
Pokud aplikace ví, že ve webovém zobrazení nikdy nebude zobrazovat uživatelský nebo organizační obsah, může v aplikaci Info.plist
nastavit TreatAllWebViewsAsUnmanaged
na YES
hodnotu . Tím se všechny akce vyjmutí, kopírování a vložení provedené libovolným uživatelem ve webovém zobrazení budou považovat za nespravované. Bez ohledu na stav správy účtu použitého k provedení akcí se akce bude považovat za provedenou nespravovaným uživatelem.
Tím zajistíte, že obsah spravované aplikace nebude unikat mimo aplikaci prostřednictvím webového zobrazení. Nastavení tohoto příznaku by bylo vhodné, pokud aplikace používá jenom webová zobrazení k zobrazení oznámení o ochraně osobních údajů, euladů nebo jiného statického obsahu stránky, který nevyžaduje, aby je uživatel zobrazil.
Když TreatAllWebViewsAsUnmanaged
je tato možnost nastavená, veškerý obsah zobrazený ve webových zobrazeních se dá kopírovat a vkládat do jiných nespravovaných aplikací, protože samotná webová zobrazení se považují za nespravovaná.
Scénář webového zobrazení 3: Kombinace uživatelského/organizačního a neuživatelského/jiného obsahu než obsahu organizace
Složitější aplikace můžou používat kombinaci uživatelských/organizačních a neuživatelského/jiného webového zobrazení. Aplikace může používat webová zobrazení k zobrazení oznámení o ochraně osobních údajů, ale také k zobrazení uživatelského obsahu pomocí webových zobrazení. V tomto případě IntuneMAMPolicyManager
setWebViewPolicy:forWebViewer:
je možné použít rozhraní API. Toto rozhraní API umožňuje aplikaci označit jednotlivá webová zobrazení jako nespravovaná nebo vrátit zpět účinek u jednotlivých webových TreatAllWebViewsAsUnmanaged
zobrazení.
Rozhraní API používá dva argumenty. První je hodnota výčtu IntuneMAMWebViewPolicy
typu. Druhý může být uiView nebo UIViewController, který může obsahovat WKWebView v podřízené hierarchii zobrazení. Samotný WKWebView lze také předat přímo jako druhý argument.
Pokud je WKWebView podřízeným objektem UIView nebo UIViewController předaným jako druhý argument, nemusí v hierarchii zobrazení existovat v době volání tohoto rozhraní API. Všechny podřízené objekty WKWebView předané v UIView nebo UIViewController budou mít při přidání použity správné zásady.
-
IntuneMAMWebViewPolicyUnset
– Toto je výchozí zásada pro všechny WKWebViews. Webová zobrazení se budou zpracovávat pouze podle příznakuTreatAllWebViewsAsUnmanaged
. -
IntuneMAMWebViewPolicyUnmanaged
– Všechny akce vyjmutí, kopírování a vložení provedené uživatelem ve webovém zobrazení označeném touto zásadou budou považovány za provedené nespravovanou identitou. Tato zásada přepíšeTreatAllWebViewsAsUnmanaged
příznak. -
IntuneMAMWebViewPolicyCurrentIdentity
– Všechny akce vyjmutí, kopírování a vložení provedené uživatelem ve webovém zobrazení označeném touto zásadou budou považovány za provedené aktuální identitou zásad uživatelského rozhraní. Tato zásada přepíšeTreatAllWebViewsAsUnmanaged
příznak.
Většina dat mimo uživatele a data mimo organizaci
Pokud většina webových zobrazení v rámci aplikace zobrazuje nespravovaný obsah, TreatAllWebViewsAsUnmanaged
je možné je nastavit v aplikacích Info.plist
a setWebViewPolicy:forWebViewer:
ve webovém IntuneMAMWebViewPolicyCurrentIdentity
zobrazení obsahu uživatele nebo organizace volat.
Většina uživatelských a organizačních dat
Pokud většina webových zobrazení v rámci aplikace zobrazuje uživatelský obsah nebo obsah organizace, je potřeba v nespravovaných webových zobrazeních volat jenom setWebViewPolicy:forWebViewer:
s IntuneMAMWebViewPolicyUnmanaged
, protože všechna webová zobrazení se ve výchozím nastavení považují za spravovaná.
Scénář webového zobrazení 4: Uživatelský nebo organizační obsah, ale s rizikem libovolných webových stránek
Pokud se k zobrazení uživatelského nebo organizačního obsahu používá webové zobrazení, ale existuje riziko přechodu na libovolné externí adresy URL, je možné v kombinaci s TreatAllWebViewsAsUnmanaged
a setWebViewPolicy:forWebViewer:
použít další rozhraní API. Příkladem jsou webové stránky Navrhnout funkci nebo Zpětná vazba, které mají přímé nebo nepřímé odkazy na vyhledávací web.
IntuneMAMWebViewPolicyDelegate
lze implementovat a nastavit do webového zobrazení pomocí IntuneMAMPolicyManager
setWebViewPolicyDelegate:forWebViewer:
. Má IntuneMAMWebViewPolicyDelegate
jednu požadovanou metodu, isExternalURL:
.
Metoda setWebViewPolicyDelegate:forWebViewer:
musí být volána přímo na WKWebView nebo SFSafariViewController.
Pokaždé, když webové zobrazení přejde na novou stránku, isExternalURL:
bude volána metoda delegáta. Aplikace by měly určit, jestli adresa URL předaná metodě delegáta představuje interní web, na který se dají vložit data uživatelů nebo organizace, nebo externí web, který může prozrazovat data organizace.
NO
Když se vrátíte, sada SDK oznámí, že načítaný web je organizačním umístěním, ve kterém se dají sdílet uživatelská nebo organizační data.
YES
Vrácení způsobí, že sada SDK otevře adresu URL ve spravovaném prohlížeči místo WKWebView nebo SFSafariViewController, pokud to aktuální nastavení zásad vyžaduje. Tím se zajistí, že na externí web nebudou moct unikat žádná uživatelská ani organizační data z aplikace.
Příklad rozhraní API webového zobrazení
Aplikace je sestavená s pěti webovými zobrazeními (A, B, C, D a E). Webová zobrazení A, B a C nezobrazují data uživatelů ani organizace. Webové zobrazení D zobrazí stránku organizace, která je dostupná všem uživatelům společnosti. Webové zobrazení E vykreslí dokumenty uživatele, které mohou obsahovat odkazy.
Vzhledem k tomu, že většina webových zobrazení není nespravovaná (A, B a C), můžeme nastavit TreatAllWebViewsAsUnmanaged
, abychom snížili počet potřebných volání setWebViewPolicy:forWebViewer:
.
Vzhledem k tomu, že webová zobrazení D a E zobrazují uživatelský obsah a všechna webová zobrazení jsou ve výchozím nastavení nespravovaná, musíme je setWebViewPolicy:forWebViewer:
označit pomocí .IntuneMAMWebViewPolicyCurrentIdentity
Vzhledem k tomu, že webové zobrazení E obsahuje odkazy, na které může uživatel kliknout a pomocí kterého by mohl přejít na libovolné adresy URL, musíme také implementovat a nastavit ho IntuneMAMWebViewPolicyDelegate
na webové zobrazení E pomocí setWebViewPolicyDelegate:forWebViewer:
. V naší isExternalURL:
implementaci bychom mohli zkontrolovat příchozí adresy URL a zjistit, jestli jsou stejné jako adresa URL dokumentu. Pokud se neshodují, víme, že se jedná o externí adresu URL a můžeme vrátit YES
. Pokud se shodují, víme, že se jedná o interní adresu URL a můžeme vrátit NO
.
Implementace a volání těchto rozhraní API znamená, že spravovaný obsah uživatele nebo organizace nemůže uniknout do webových zobrazení A, B a C. Také to znamená, že spravovaný obsah nemůže uniknout na žádné externí adresy URL, na které by uživatel mohl přejít v E kliknutím na odkazy v dokumentech. Spravovaný obsah bude také chráněný tak, že zabrání úniku dat z webových zobrazení D a E mimo aplikaci.
Podpora SwiftUI
Nově vytvořená aplikace SwiftUI podporuje UIScenes, ale ve výchozím nastavení nemá implementovanou funkci UISceneDelegate. Pokud má vaše aplikace v úmyslu podporovat UIScenes a používat sadu Intune App SDK, je potřeba implementovat UISceneDelegate. Pokud nemá v úmyslu podporovat UIScenes, UIApplicationSceneManifest
musí být nastavení (označované také jako "Manifest scény aplikace") v souboru Info.plist aplikace odebráno.