Intune App SDK voor iOS - Web-View functies

Webinhoud weergeven in een toepassing

In iOS kunnen webweergaven worden gebruikt om een grote verscheidenheid aan webinhoud weer te geven zonder de context van de app te verlaten. Sommige toepassingen kunnen ook webweergaven gebruiken om functies en gebruikersinterface op meerdere platforms te delen.

Omdat er webweergaven in de app bestaan, worden deze blootgesteld aan mogelijke datalekken. Als een gebruiker in staat is om naar willekeurige externe webpagina's binnen een app te navigeren (door opzettelijk app-ontwerp of door slim manoeuvreren door blootgestelde koppelingen in de gegenereerde HTML-inhoud van de webpagina), kan de gebruiker mogelijk beheerde gegevens uit de app lekken.

De Intune MAM SDK biedt verschillende API's voor het verwerken van verschillende scenario's waarbij zowel beheerde als onbeheerde inhoud beschikbaar is via webweergaven in een app. Deze API's hoeven alleen te worden aangeroepen als een beheerde gebruiker is aangemeld bij de app. Zie de onderstaande tabel als een korte handleiding over welke API van toepassing is op welk scenario.

Scenario API‘s
Alleen gebruikers- en organisatie-inhoud zonder risico op willekeurige webpagina's Geen API's nodig
Alleen niet-gebruikers- en niet-organisatie-inhoud Ingesteld TreatAllWebViewsAsUnmanaged in de sectie Info.plist
Een mix van inhoud van gebruiker/organisatie en niet-gebruiker/niet-organisatie (meerderheid niet-gebruiker/niet-organisatie) Ingesteld TreatAllWebViewsAsUnmanaged in de Info.plist en gebruiken setWebViewPolicy:forWebViewer: met IntuneMAMWebViewPolicyCurrentIdentity webweergaven die gebruikers- of organisatiegegevens bevatten
Een combinatie van gebruikers-/organisatie-inhoud en niet-gebruiker/niet-organisatie-inhoud (meerderheidsgebruiker/organisatie-inhoud) Alleen te gebruiken setWebViewPolicy:forWebViewer: met IntuneMAMWebViewPolicyUnmanaged webweergaven die geen gebruikers- of organisatiegegevens bevatten
Gebruikers- of organisatie-inhoud, maar met een risico op willekeurige webpagina's Na het juiste gebruik van TreatAllWebViewsAsUnmanaged en setWebViewPolicy:forWebViewer:, implementeer ook de IntuneMAMWebViewPolicyDelegate voor webweergaven die naar willekeurige webpagina's kunnen navigeren

Webweergave Scenario 1: Alleen webpagina's die gebruikers- of organisatie-inhoud weergeven

Als een app alleen webweergaven gebruikt om gebruikers- of organisatie-inhoud weer te geven en er geen risico is dat de webweergave naar willekeurige externe webpagina's navigeert, is er geen noodzaak om een van de API's of instellingen te gebruiken. Standaard behandelt de SDK elke webweergave die wordt weergegeven in de app als inhoud die behoort tot de huidige UI-beleidsidentiteit.

Als een beheerde gebruiker een webweergave opent in een app, worden geknipte/gekopieerde gegevens uit de webweergave behandeld als beheerde inhoud. Plakken in de webweergave gebeurt volgens het beleid van het beheerde account.

Als een onbeheerde gebruiker een webweergave opent in een app, worden geknipte/gekopieerde gegevens uit de webweergave behandeld als onbeheerde inhoud. Plakken in de webweergave wordt behandeld alsof het door het onbeheerde account is gedaan en er worden geen aanvullende beperkingen opgelegd.

Webweergave Scenario 2: Alleen webpagina's die geen gebruikers- of organisatie-inhoud weergeven

Als een app weet dat er nooit gebruikers- of organisatie-inhoud in een webweergave zal worden weergegeven, kan dit worden ingesteld TreatAllWebViewsAsUnmanaged in YES de app.Info.plist Hierdoor worden alle knip-, kopieer- en plakacties die door een gebruiker in een webweergave worden uitgevoerd, als onbeheerd beschouwd. Ongeacht de beheerstatus van het account waarmee de acties worden uitgevoerd, wordt de actie behandeld alsof deze is uitgevoerd door een onbeheerde gebruiker.

Als u dit doet, zorgt u ervoor dat beheerde app-inhoud niet via de webweergave buiten de app wordt gelekt. Het instellen van deze vlag is een goed idee als een app alleen webweergaven gebruikt om privacymededelingen, EULA's of andere statische pagina-inhoud weer te geven waarvoor een gebruiker deze niet hoeft te bekijken.

Wanneer TreatAllWebViewsAsUnmanaged dit is ingesteld, kan alle inhoud die wordt weergegeven in de webweergaven worden gekopieerd en geplakt in andere onbeheerde apps, aangezien de webweergaven zelf als onbeheerd worden beschouwd.

Webweergave Scenario 3: een combinatie van gebruikers-/organisatie-en niet-gebruiker-/niet-organisatie-inhoud

Complexere apps kunnen gebruikmaken van een combinatie van gebruikers-/organisatieweergaven en niet-gebruiker/niet-organisatie. Een app kan webweergaven gebruiken om privacymededelingen weer te geven, maar ook webweergaven gebruiken om gebruikersinhoud weer te geven. In dit geval kan de IntuneMAMPolicyManager's setWebViewPolicy:forWebViewer: API worden gebruikt. Met deze API kan een app afzonderlijke webweergaven markeren als onbeheerd of het effect van TreatAllWebViewsAsUnmanaged afzonderlijke webweergaven ongedaan maken.

De API gebruikt twee argumenten. De eerste is een opsommingswaarde van IntuneMAMWebViewPolicy type. De tweede kan een UIView of UIViewController zijn die een WKWebView in de onderliggende weergavehiërarchie kan bevatten. Een WKWebView zelf kan ook direct als tweede argument worden doorgegeven.

Als de WKWebView een onderliggende instantie is van de UIView of UIViewController die als tweede argument is doorgegeven, hoeft deze niet binnen de weergavehiërarchie te bestaan op het moment dat deze API wordt aangeroepen. Voor alle onderliggende WKWebViews van de doorgegeven in UIView of UIViewController wordt het juiste beleid toegepast wanneer ze worden toegevoegd.

  • IntuneMAMWebViewPolicyUnset - Dit is het standaardbeleid voor alle WKWebViews. Webweergaven worden alleen behandeld op basis van de TreatAllWebViewsAsUnmanaged vlag.
  • IntuneMAMWebViewPolicyUnmanaged - Alle knip-/kopieer-/plakacties die door een gebruiker worden uitgevoerd in een webweergave die is getagd met dit beleid, worden behandeld alsof ze zijn uitgevoerd door een onbeheerde identiteit. Dit beleid overschrijft de TreatAllWebViewsAsUnmanaged vlag.
  • IntuneMAMWebViewPolicyCurrentIdentity - Alle knip-/kopieer-/plakacties die door een gebruiker worden uitgevoerd in een webweergave die is getagd met dit beleid, worden behandeld alsof ze worden uitgevoerd door de huidige UI-beleidsidentiteit. Dit beleid overschrijft de TreatAllWebViewsAsUnmanaged vlag.

Meeste niet-gebruikers- en niet-organisatiegegevens

Als het merendeel van de webweergaven in een app onbeheerde inhoud bevat, TreatAllWebViewsAsUnmanaged kan dit worden ingesteld in de app's Info.plist en setWebViewPolicy:forWebViewer: kan IntuneMAMWebViewPolicyCurrentIdentity worden aangeroepen in de webweergaven voor gebruikers- of organisatie-inhoud.

De meeste gebruikers- en organisatiegegevens

Als een meerderheid van de webweergaven binnen een app gebruikers- of organisatie-inhoud bevat, hoeft alleen setWebViewPolicy:forWebViewer: met IntuneMAMWebViewPolicyUnmanaged te worden aangeroepen op de onbeheerde webweergaven, aangezien alle webweergaven standaard als beheerd worden beschouwd.

Webweergave Scenario 4: Gebruikers- of organisatie-inhoud, maar met een risico op willekeurige webpagina's

Als een webweergave wordt gebruikt om gebruikers- of organisatie-inhoud weer te geven, maar het risico bestaat dat er naar willekeurige externe URL's wordt genavigeerd, kan een extra API worden gebruikt in combinatie met TreatAllWebViewsAsUnmanaged en setWebViewPolicy:forWebViewer:. Voorbeelden hiervan zijn Functie voorstellen of Feedback-webpagina's met directe of indirecte links naar een zoekmachine.

IntuneMAMWebViewPolicyDelegate kan worden geïmplementeerd en ingesteld op een webweergave met behulp van IntuneMAMPolicyManager's setWebViewPolicyDelegate:forWebViewer:. De IntuneMAMWebViewPolicyDelegate heeft één vereiste methode, isExternalURL:.

De setWebViewPolicyDelegate:forWebViewer: methode moet rechtstreeks worden aangeroepen op een WKWebView of SFSafariViewController.

Telkens wanneer de webweergave naar een nieuwe pagina gaat, wordt de isExternalURL: methode voor delegeren aangeroepen. Toepassingen moeten bepalen of de URL die wordt doorgegeven aan de methode voor gedelegeerden, een interne website vertegenwoordigt waarin gebruikers- of organisatiegegevens kunnen worden geplakt of een externe website die organisatiegegevens kan lekken. Als u een bericht retourneert NO , wordt aan de SDK doorgegeven dat de website die wordt geladen een organisatielocatie is waar gebruikers- of organisatiegegevens kunnen worden gedeeld. Als u de URL retourneert YES , opent de SDK de URL in Microsoft Edge in plaats van de WKWebView of SFSafariViewController als de huidige beleidsinstellingen dit vereisen. Dit zorgt ervoor dat er geen gebruikers- of organisatiegegevens vanuit de app kunnen worden gelekt naar de externe website.

Voorbeeld van API's voor webweergave

Er wordt een app gebouwd met vijf webweergaven (A, B, C, D en E). In de webweergaven A, B en C worden geen gebruikers- of organisatiegegevens weergegeven. Webweergave D geeft een organisatiepagina weer die beschikbaar is voor alle gebruikers van het bedrijf. In webweergave E worden de documenten van de gebruiker weergegeven die koppelingen kunnen bevatten.

Aangezien de meeste webweergaven onbeheerd zijn (A, B en C), kunnen we instellen TreatAllWebViewsAsUnmanaged dat het aantal keren dat we moeten bellen setWebViewPolicy:forWebViewer:.

Aangezien webweergaven D en E gebruikersinhoud weergeven en alle webweergaven nu standaard niet worden beheerd, moeten we ze taggen met setWebViewPolicy:forWebViewer: het gebruik van IntuneMAMWebViewPolicyCurrentIdentity.

Omdat webweergave E koppelingen bevat waarop de gebruiker kan klikken en die kan worden gebruikt om naar willekeurige URL's te navigeren, moeten we deze ook implementeren IntuneMAMWebViewPolicyDelegate en instellen op webweergave E met behulp van setWebViewPolicyDelegate:forWebViewer:. In de isExternalURL: implementatie konden we binnenkomende URL's controleren om te zien of ze hetzelfde zijn als de URL voor het document. Als ze niet overeenkomen, weten we dat het een externe URL is en kunnen we .YES Als ze wel overeenkomen, weten we dat het een interne URL is en kunnen we .NO

Als u deze API's implementeert en aanroept, betekent dit dat beheerde gebruikers- of organisatie-inhoud niet kan lekken naar webweergaven A, B en C. Dit betekent ook dat beheerde inhoud niet kan lekken naar externe URL's waar de gebruiker naar in E kan navigeren door op koppelingen in documenten te klikken. Beheerde inhoud wordt ook beveiligd door te voorkomen dat de gegevens uit webweergaven D en E buiten de app lekken.