Sdílet prostřednictvím


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.plistnastavit 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ě IntuneMAMPolicyManagersetWebViewPolicy: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říznaku TreatAllWebViewsAsUnmanaged .
  • 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íše TreatAllWebViewsAsUnmanaged 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íše TreatAllWebViewsAsUnmanaged 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.

IntuneMAMWebViewPolicyDelegatelze implementovat a nastavit do webového zobrazení pomocí IntuneMAMPolicyManagersetWebViewPolicyDelegate: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.