Intune App SDK pro iOS – funkce Web-View

Zobrazení webového obsahu v aplikaci

V iOS se dají webová zobrazení použít 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í napříč různými platformami.

Vzhledem k tomu, že webová zobrazení existují v aplikaci, 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ď prostřednictvím záměrného návrhu aplikace, nebo chytrým manévrováním přes vystavené odkazy v obsahu HTML vykreslené webové stránky), pak může být uživatel schopen nevracet spravovaná data z aplikace.

Sada Intune MAM SDK poskytuje několik rozhraní API pro zpracování různých scénářů, ve kterých se spravovaný i nespravovaný obsah zobrazí 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. V tabulce níže najdete stručného průvodce, které rozhraní API se použije pro který scénář.

Scénář Rozhraní API
Pouze uživatelský a organizační obsah bez rizika libovolných webových stránek Nejsou potřeba žádná rozhraní API.
Jenom neuživatelský obsah a obsah netýkající se organizace Nastavit TreatAllWebViewsAsUnmanaged v části Info.plist
Kombinace uživatelského/organizačního a neuživatelského/neorganizačního obsahu (většinou neuživatelského/neorganizačního) Nastavit TreatAllWebViewsAsUnmanaged ve webových zobrazeních obsahujících data o uživatelích Info.plistsetWebViewPolicy:forWebViewer: nebo organizaci a používat s IntuneMAMWebViewPolicyCurrentIdentity nimi
Kombinace uživatelského/organizačního a neuživatelského/neorganizačního obsahu (většinový uživatelský/organizační) Používejte setWebViewPolicy:forWebViewer: jenom ve IntuneMAMWebViewPolicyUnmanaged webových zobrazeních, která neobsahují data uživatelů nebo 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:také implementujte IntuneMAMWebViewPolicyDelegate pro webová zobrazení, která by mohla vést na libovolné webové stránky

Webové zobrazení – scénář 1: Pouze webové stránky zobrazující obsah uživatele nebo organizace

Pokud aplikace používá webová zobrazení jenom jako způsob vykreslování obsahu uživatele nebo organizace a nehrozí, že by webové zobrazení přecházelo na libovolné externí webové stránky, není potřeba používat žádná rozhraní API ani nastavení. Ve výchozím nastavení bude sada SDK zacházet s veškerým webovým zobrazením, které se zobrazí v aplikaci, jako s obsahem patřícím do aktuální identity zásad uživatelského rozhraní.

Pokud spravovaný uživatel otevře webové zobrazení v aplikaci, budou všechna vyjmutá nebo zkopírovaná data z webového zobrazení považována za spravovaný obsah. S vkládáním do webového zobrazení se bude zacházet podle zásad spravovaného účtu.

Pokud nespravovaný uživatel otevře webové zobrazení v aplikaci, budou veškerá data vyjmutí nebo zkopírování z webového zobrazení považována za nespravovaný obsah. S vkládáním do webového zobrazení se bude zacházet, jako by to prováděl nespravovaný účet, a nebudou se uplatňovat žádná další omezení.

Webové zobrazení – scénář 2: Pouze webové stránky, které nezobrazují obsah uživatele nebo organizace

Pokud aplikace ví, že ve webovém zobrazení nikdy nebude zobrazovat obsah uživatele nebo organizace, může TreatAllWebViewsAsUnmanaged to YES nastavit v nastavení Info.plist. To bude považovat všechny akce vyjmutí, kopírování a vložení provedené libovolným uživatelem ve webovém zobrazení za nespravované. Bez ohledu na stav správy účtu použitého k provedení akcí se bude akce považovat za akci prováděnou nespravovaným uživatelem.

Tím zajistíte, že obsah spravované aplikace nedojde k úniku obsahu mimo aplikaci prostřednictvím webového zobrazení. Nastavení tohoto příznaku by bylo vhodné, pokud aplikace používá webová zobrazení pouze k zobrazení oznámení o ochraně osobních údajů, smluv EULA nebo jiného statického obsahu stránky, který nevyžaduje, aby si ji uživatel zobrazil.

Pokud TreatAllWebViewsAsUnmanaged je nastavená, veškerý obsah zobrazený ve webových zobrazeních může být zkopírován a vložen do jiných nespravovaných aplikací, protože samotná webová zobrazení jsou považována za nespravovaná.

Zobrazení webu – scénář 3: Kombinace uživatelského/organizačního a neuživatelského/neorganizačního obsahu

Složitější aplikace můžou používat kombinaci zobrazení uživatelského/organizačního a neuživatelského/neorganizačního webového zobrazení. Aplikace může používat webová zobrazení k zobrazení oznámení o ochraně osobních údajů, ale také je používat k zobrazení uživatelského obsahu. V takovém případě IntuneMAMPolicyManagerlze použít rozhraní API společnosti setWebViewPolicy:forWebViewer: . Toto rozhraní API umožňuje aplikaci označit jednotlivá webová zobrazení jako nespravovaná nebo vrátit zpět účinek TreatAllWebViewsAsUnmanaged jednotlivých webových zobrazení.

Rozhraní API používá dva argumenty. První je hodnota výčtu typu IntuneMAMWebViewPolicy . Druhý může být buď UIView nebo UIViewController , který může obsahovat WKWebView v hierarchii podřízených zobrazení. Samotný WKWebView může být také předán přímo jako druhý argument.

Pokud WKWebView je podřízeným objektem UIView nebo UIViewController předaný jako druhý argument, nemusí existovat v hierarchii zobrazení v době, kdy je toto rozhraní API voláno. Všechny podřízené WKWebViews předané v UIView nebo UIViewController budou mít při jejich 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í nebo vložení provedené uživatelem ve webovém zobrazení označeném touto zásadou budou zpracovány, jako by je prováděla nespravovaná identita. Tato zásada příznak TreatAllWebViewsAsUnmanaged přepíše.
  • IntuneMAMWebViewPolicyCurrentIdentity - Všechny akce vyjmutí/kopírování/vložení provedené uživatelem ve webovém zobrazení označeném touto zásadou budou zpracovány, jako by je prováděla aktuální identita zásad uživatelského rozhraní. Tato zásada příznak TreatAllWebViewsAsUnmanaged přepíše.

Většina neuživatelských a neorganizačních dat

Pokud většina webových zobrazení v rámci aplikace zobrazuje nespravovaný obsah, pak TreatAllWebViewsAsUnmanaged ho lze nastavit ve webových zobrazeních Info.plist uživatele nebo setWebViewPolicy:forWebViewer: obsahu IntuneMAMWebViewPolicyCurrentIdentity organizace a pomocí něj volat.

Údaje o většinových uživatelích a organizaci

Pokud většina webových zobrazení v rámci aplikace zobrazuje uživatelský nebo organizační obsah, pak je třeba volat pouze setWebViewPolicy:forWebViewer: v IntuneMAMWebViewPolicyUnmanaged nespravovaných webových zobrazeních, protože všechna webová zobrazení jsou ve výchozím nastavení považována za spravovaná.

Webové zobrazení Scénář 4: Obsah uživatele nebo organizace, ale s rizikem vytváření libovolných webových stránek

Pokud se webové zobrazení používá k zobrazení obsahu uživatele nebo organizace, ale existuje riziko přechodu na libovolné externí adresy URL, pak lze použít další rozhraní API v kombinaci s TreatAllWebViewsAsUnmanaged a setWebViewPolicy:forWebViewer:. Příkladem jsou webové stránky s návrhy funkcí nebo zpětnou vazbou, které mají přímé nebo nepřímé odkazy na vyhledávací web.

IntuneMAMWebViewPolicyDelegateLze implementovat a nastavit na webové zobrazení pomocí IntuneMAMPolicyManagerrozhraní .setWebViewPolicyDelegate:forWebViewer:IntuneMAMWebViewPolicyDelegate jednu požadovanou metodu, isExternalURL:.

Metoda setWebViewPolicyDelegate:forWebViewer: musí být volána přímo WKWebView nebo SFSafariViewController .

Pokaždé, když webové zobrazení přejde na novou stránku, bude zavolána metoda delegáta isExternalURL: . 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, ze kterého by mohlo dojít k úniku dat organizace. Vrácení NO sdělí sadě SDK, že načítaný web je umístění organizace, kde je možné sdílet data uživatelů nebo organizace. Vrácení YES způsobí, že sada SDK otevře adresu URL v Microsoft Edgi místo WKWebView nebo SFSafariViewController, pokud to aktuální nastavení zásad vyžaduje. Tím zajistíte, že na externí web nemůžou uniknout žádná data uživatele ani organizace z aplikace.

Příklad rozhraní API pro webové zobrazení

Aplikace je vytvořená s pěti webovými zobrazeními (A, B, C, D a E). Webová zobrazení A, B a C nezobrazují údaje o uživatelích ani o organizaci. Webové zobrazení D zobrazuje stránku organizace, která je dostupná všem uživatelům společnosti. Webové zobrazení E vykresluje dokumenty uživatele, které mohou obsahovat odkazy.

Protože většina zobrazení webu je nespravovaná (A, B a C), můžeme nastavit TreatAllWebViewsAsUnmanaged snížení počtu volání.setWebViewPolicy:forWebViewer:

Vzhledem k tomu, že webová zobrazení D a E zobrazují uživatelský obsah a všechna webová zobrazení jsou nyní 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 které by mohl použít k navigaci na libovolné adresy URL, musíme také implementovat IntuneMAMWebViewPolicyDelegate a nastavit na webové zobrazení E pomocí setWebViewPolicyDelegate:forWebViewer:. V naší isExternalURL: implementaci bychom mohli zkontrolovat příchozí adresy URL a zjistit, zda jsou stejné jako adresa URL dokumentu. Pokud se neshodují, pak 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 ji vrátit NO.

Implementace a volání těchto rozhraní API znamená, že spravovaný uživatelský nebo organizační obsah nemůže uniknout do webových zobrazení A, B a C. Znamená to také, ž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 tím, že zabrání úniku dat z webových zobrazení D a E mimo aplikaci.