Delen via


Intune App SDK voor iOS - Webweergavefuncties

Webinhoud weergeven in een toepassing

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

Omdat er webweergaven in de app bestaan, worden deze blootgesteld aan mogelijke gegevenslekken. Als een gebruiker naar willekeurige externe webpagina's binnen een app kan navigeren (hetzij door opzettelijk app-ontwerp of door slim te manoeuvreren via blootgestelde koppelingen in de html-inhoud van de weergegeven 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 niet-beheerde inhoud wordt weergegeven via webweergaven in een app. Deze API's hoeven alleen te worden aangeroepen als er een beheerde gebruiker is aangemeld bij de app. Raadpleeg de onderstaande tabel als een beknopte handleiding over welke API van toepassing is op welk scenario.

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

Webweergavescenario 1: alleen webpagina's waarop gebruikers- of organisatie-inhoud wordt weergegeven

Als een app alleen webweergaven gebruikt als een manier om gebruikers- of organisatie-inhoud weer te geven en er geen risico is dat de webweergave naar willekeurige externe webpagina's navigeert, hoeft u geen van de API's of instellingen te gebruiken. Standaard behandelt de SDK elke webweergave die in de app wordt weergegeven als inhoud die hoort bij de huidige id van het UI-beleid.

Als een beheerde gebruiker een webweergave binnen een app opent, worden alle knip-/kopieergegevens uit de webweergave beschouwd als beheerde inhoud. Plakken in de webweergave wordt behandeld volgens het beleid van het beheerde account.

Als een niet-beheerde gebruiker een webweergave binnen een app opent, worden alle gegevens die uit de webweergave worden geknipt/gekopieerd, behandeld als onbeheerde inhoud. Plakken in de webweergave wordt behandeld als gedaan door het onbeheerde account en er worden geen extra beperkingen opgelegd.

Webweergavescenario 2: alleen webpagina's waarop geen gebruikers- of organisatie-inhoud wordt weergegeven

Als een app weet dat er nooit gebruikers- of organisatie-inhoud wordt weergegeven in een webweergave, kan deze worden ingesteld TreatAllWebViewsAsUnmanaged op YES in de app Info.plist. Hiermee worden alle knip-, kopieer- en plakbewerkingen die door een gebruiker in een webweergave worden uitgevoerd, behandeld als niet-beheerd. Ongeacht de beheerstatus van het account dat wordt gebruikt om de acties uit te voeren, wordt de actie behandeld als uitgevoerd door een niet-beheerde gebruiker.

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

Wanneer TreatAllWebViewsAsUnmanaged is ingesteld, kan alle inhoud die in de webweergaven wordt weergegeven, worden gekopieerd en geplakt naar andere niet-beheerde apps, omdat de webweergaven zelf als onbeheerd worden beschouwd.

Webweergavescenario 3: een combinatie van inhoud van gebruiker/organisatie en niet-gebruiker/niet-organisatie

Complexere apps kunnen gebruikmaken van een combinatie van webweergaven van gebruiker/organisatie en niet-gebruiker/niet-organisatie. Een app kan webweergaven gebruiken om privacykennisgevingen weer te geven, maar ook webweergaven gebruiken om gebruikersinhoud weer te geven. In dit geval kan de IntuneMAMPolicyManagersetWebViewPolicy:forWebViewer: API worden gebruikt. Met deze API kan een app afzonderlijke webweergaven markeren als niet-beheerd of het effect van TreatAllWebViewsAsUnmanaged voor afzonderlijke webweergaven ongedaan maken.

De API gebruikt twee argumenten. De eerste is een opsommingswaarde van het 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 rechtstreeks als tweede argument worden doorgegeven.

Als de WKWebView een onderliggend element is van de UIView of UIViewController die is doorgegeven als het tweede argument, hoeft deze niet te bestaan in de weergavehiërarchie op het moment dat deze API wordt aangeroepen. Voor 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 volgens 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 worden uitgevoerd door een onbeheerde identiteit. Met dit beleid wordt de TreatAllWebViewsAsUnmanaged vlag overschreven.
  • 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 gebruikersinterfacebeleidsidentiteit. Met dit beleid wordt de TreatAllWebViewsAsUnmanaged vlag overschreven.

Meerderheid niet-gebruikers- en niet-organisatiegegevens

Als een meerderheid van de webweergaven binnen een app onbeheerde inhoud weergeeft, TreatAllWebViewsAsUnmanaged kan worden ingesteld in de app en Info.plistsetWebViewPolicy:forWebViewer: met IntuneMAMWebViewPolicyCurrentIdentity kan worden aangeroepen op de webweergaven van gebruikers- of organisatie-inhoud.

Meerderheid van gebruikers- en organisatiegegevens

Als een meerderheid van de webweergaven in een app gebruikers- of organisatie-inhoud weergeeft, hoeft alleen setWebViewPolicy:forWebViewer: met IntuneMAMWebViewPolicyUnmanaged te worden aangeroepen in de niet-beheerde webweergaven, omdat alle webweergaven standaard worden behandeld als beheerd.

Webweergavescenario 4: gebruikers- of organisatie-inhoud, maar met het risico van willekeurige webpagina's

Als een webweergave wordt gebruikt om gebruikers- of organisatie-inhoud weer te geven, maar het risico loopt te navigeren naar willekeurige externe URL's, kan een extra API worden gebruikt in combinatie met TreatAllWebViewsAsUnmanaged en setWebViewPolicy:forWebViewer:. Voorbeelden hiervan zijn webpagina's met een functie of feedback die directe of indirecte koppelingen naar een zoekmachine bevatten.

IntuneMAMWebViewPolicyDelegatekan worden geïmplementeerd en ingesteld op een webweergave met behulp van IntuneMAMPolicyManagersetWebViewPolicyDelegate: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 navigeert, wordt de isExternalURL: gedelegeerde methode aangeroepen. Toepassingen moeten bepalen of de URL die wordt doorgegeven aan de gedelegeerde methode een interne website vertegenwoordigt waar gebruikers- of organisatiegegevens kunnen worden geplakt of een externe website die organisatiegegevens kan lekken. Als u terugkeert NO , wordt aan de SDK aangegeven dat de website die wordt geladen, een organisatielocatie is waar gebruikers- of organisatiegegevens kunnen worden gedeeld. Als u terugkeert YES , opent de SDK de URL in een beheerde browser 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 webweergave-API's

Een app is gebouwd met vijf webweergaven (A, B, C, D en E). In 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. Webweergave E geeft de documenten van de gebruiker weer die koppelingen kunnen bevatten.

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

Omdat webweergaven D en E gebruikersinhoud en alle webweergaven nu standaard niet worden beheerd, moeten we ze taggen met setWebViewPolicy:forWebViewer: behulp van IntuneMAMWebViewPolicyCurrentIdentity.

Omdat webweergave E koppelingen bevat waarop de gebruiker kan klikken en kan gebruiken om naar willekeurige URL's te navigeren, moeten we ook de IntuneMAMWebViewPolicyDelegate implementeren en instellen op webweergave E met behulp van setWebViewPolicyDelegate:forWebViewer:. In onze isExternalURL: implementatie kunnen we binnenkomende URL's controleren en 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 retourneren YES. Als ze overeenkomen, weten we dat het een interne URL is en kunnen we retourneren NO.

Het implementeren en aanroepen van deze API's betekent 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 waarnaar de gebruiker 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.

SwiftUI-ondersteuning

Een zojuist gemaakte SwiftUI-app ondersteunt UIScenes, maar er is standaard geen UISceneDelegate geïmplementeerd. Als uw app UIScenes wil ondersteunen en de Intune App SDK gebruikt, moet u een UISceneDelegate implementeren. Als uiscenes niet wordt ondersteund, moet de UIApplicationSceneManifest instelling (ook wel 'Manifest toepassingsscène' genoemd) in de Info.plist van de app worden verwijderd.