iOS-hez készült App SDK Intune – Webnézeti funkciók
Webes tartalom megjelenítése egy alkalmazásban
Az iOS-ben a webes nézetek segítségével sokféle webes tartalom jeleníthető meg anélkül, hogy meg kellene hagynia az alkalmazás kontextusát. Egyes alkalmazások webes nézeteket is használhatnak a funkciók és a felhasználói felület több platformon való megosztásához.
Mivel a webes nézetek az alkalmazásban léteznek, lehetséges adatszivárgásoknak teszik ki őket. Ha a felhasználó képes tetszőleges külső weblapokra navigálni egy alkalmazásban (akár szándékos alkalmazástervezéssel, akár a megjelenített weblap HTML-tartalmának közzétett hivatkozásain keresztüli ügyes manőverezéssel), akkor a felhasználó kiszivárogtathatja a felügyelt adatokat az alkalmazásból.
A Intune MAM SDK számos API-t biztosít a különböző forgatókönyvek kezeléséhez, ahol a felügyelt és a nem felügyelt tartalmak is egy alkalmazás webes nézeteiben jelennek meg. Ezeket az API-kat csak akkor kell meghívni, ha van bejelentkezett felügyelt felhasználó az alkalmazásba. Tekintse meg az alábbi táblázatot, amely gyors útmutatóként szolgál arra, hogy melyik API melyik forgatókönyvre vonatkozik.
Forgatókönyv | Api |
---|---|
Csak olyan felhasználói és szervezeti tartalom, amely nem veszélyezteti a tetszőleges weblapokat | Nincs szükség API-kra |
Csak nem felhasználó és nem szervezeti tartalom | Beállítás TreatAllWebViewsAsUnmanaged a következőben: Info.plist |
Felhasználói/szervezeti és nem felhasználói/nem szervezeti tartalmak keveréke (a legtöbb nem felhasználó/nem szervezeti) | Beállítás TreatAllWebViewsAsUnmanaged a Info.plist és a IntuneMAMWebViewPolicyCurrentIdentity használatával setWebViewPolicy:forWebViewer: olyan webes nézetekben, amelyek felhasználói vagy szervezeti adatokat tartalmaznak |
Felhasználói/szervezeti és nem felhasználói/nem szervezeti tartalmak keveréke (többségi felhasználó/szervezet) | Csak olyan webes nézetekkel IntuneMAMWebViewPolicyUnmanaged használhatósetWebViewPolicy:forWebViewer: , amelyek nem tartalmaznak felhasználói vagy szervezeti adatokat |
Felhasználói vagy szervezeti tartalom, de tetszőleges weblapok kockázata | A és setWebViewPolicy:forWebViewer: a TreatAllWebViewsAsUnmanaged megfelelő használatát követően implementálja a IntuneMAMWebViewPolicyDelegate webes nézeteket is, amelyek tetszőleges weblapokra navigálhatnak |
1. webnézeti forgatókönyv: Csak olyan weblapok, amelyek felhasználói vagy szervezeti tartalmat jelenítenek meg
Ha egy alkalmazás csak webes nézeteket használ a felhasználói vagy szervezeti tartalmak megjelenítéséhez, és nem áll fenn annak kockázata, hogy a webes nézet tetszőleges külső weblapra navigál, akkor nincs szükség semmilyen API-ra vagy beállításra. Alapértelmezés szerint az SDK az alkalmazásban megjelenő webes nézeteket az aktuális felhasználói felület szabályzati identitásához tartozó tartalomként kezeli.
Ha egy felügyelt felhasználó megnyit egy webes nézetet egy alkalmazásban, a webes nézetből származó kivágási/másolási adatok felügyelt tartalomként lesznek kezelve. A webes nézetbe való beillesztés a felügyelt fiók szabályzatainak megfelelően lesz kezelve.
Ha egy nem felügyelt felhasználó megnyit egy webes nézetet egy alkalmazásban, a webes nézetből származó kivágási/másolási adatok nem felügyelt tartalomként lesznek kezelve. A webes nézetbe való beillesztést úgy kezeli a rendszer, mintha a nem felügyelt fiók végezné el, és nem vezet be további korlátozásokat.
2. webnézeti forgatókönyv: Csak olyan weblapok, amelyek nem jelenítik meg a felhasználói vagy szervezeti tartalmakat
Ha egy alkalmazás tudja, hogy soha nem jelenít meg felhasználói vagy szervezeti tartalmakat egy webes nézetben, akkor az értékre YES
állítható TreatAllWebViewsAsUnmanaged
az alkalmazásbanInfo.plist
. Ez a művelet a webes nézetben bármely felhasználó által végzett kivágási, másolási és beillesztési műveletet nem felügyeltként kezeli. A műveletek végrehajtásához használt fiók felügyeleti állapotától függetlenül a rendszer úgy kezeli a műveletet, mintha egy nem felügyelt felhasználó hajtja végre.
Ezzel biztosíthatja, hogy a felügyelt alkalmazás tartalma ne szivároghasson ki az alkalmazáson kívül a webes nézeten keresztül. Ennek a jelzőnek a beállítása jó ötlet, ha egy alkalmazás csak webes nézeteket használ az adatvédelmi nyilatkozatok, EULA-k vagy más statikus laptartalmak megjelenítéséhez, amelyekhez a felhasználónak nem kell megtekintenie.
Ha TreatAllWebViewsAsUnmanaged
be van állítva, a webes nézetekben megjelenített összes tartalom másolható és beilleszthető más nem felügyelt alkalmazásokba, mivel maguk a webes nézetek nem felügyeltnek minősülnek.
3. webnézeti forgatókönyv: Felhasználói/szervezeti és nem felhasználói/nem szervezeti tartalmak keveréke
Az összetettebb alkalmazások felhasználói/szervezeti és nem felhasználói/nem szervezeti webes nézetek kombinációját használhatják. Az alkalmazások webes nézetekkel jeleníthetnek meg adatvédelmi megjegyzéseket, de webes nézeteket is használhatnak a felhasználói tartalmak megjelenítéséhez. Ebben az esetben az IntuneMAMPolicyManager
API setWebViewPolicy:forWebViewer:
használható. Ez az API lehetővé teszi az alkalmazások számára, hogy az egyes webes nézeteket nem felügyeltként jelölik meg, vagy visszavonják az egyes webes nézetek hatását TreatAllWebViewsAsUnmanaged
.
Az API két argumentumot használ. Az első típus enumerálási IntuneMAMWebViewPolicy
értéke. A második lehet egy UIView vagy UIViewController, amely tartalmazhatja a WKWebView nézetet a gyermeknézet-hierarchiájában. Maga a WKWebView közvetlenül is átadható második argumentumként.
Ha a WKWebView a második argumentumként átadott UIView vagy UIViewController gyermeke, nem kell léteznie a nézethierarchiában az API meghívásakor. Az UIView-ban vagy az UIViewControllerben átadott gyermek WKWebView-jai a hozzáadásukkor a megfelelő házirendet alkalmazzák.
-
IntuneMAMWebViewPolicyUnset
– Ez az összes WKWebView alapértelmezett szabályzata. A webes nézeteket a rendszer csak aTreatAllWebViewsAsUnmanaged
jelző alapján kezeli. -
IntuneMAMWebViewPolicyUnmanaged
– A felhasználó által az ezzel a szabályzattal címkézett webes nézetben végrehajtott kivágási/másolási/beillesztési műveletek úgy lesznek kezelve, mintha egy nem felügyelt identitás hajtja végre. Ez a szabályzat felülírja a jelzőtTreatAllWebViewsAsUnmanaged
. -
IntuneMAMWebViewPolicyCurrentIdentity
– A felhasználó által a szabályzattal címkézett webes nézetben végrehajtott kivágási/másolási/beillesztési műveletek úgy lesznek kezelve, mintha az aktuális felhasználói felületi szabályzat identitása hajtja végre. Ez a szabályzat felülírja a jelzőtTreatAllWebViewsAsUnmanaged
.
Nem felhasználói és nem szervezeti adatok többsége
Ha az alkalmazáson belüli webes nézetek többsége nem felügyelt tartalmat jelenít meg, akkor TreatAllWebViewsAsUnmanaged
beállítható az alkalmazás Info.plist
setWebViewPolicy:forWebViewer:
IntuneMAMWebViewPolicyCurrentIdentity
és a használatával a felhasználó vagy a szervezeti tartalom webes nézeteiben.
Felhasználói és szervezeti adatok többsége
Ha az alkalmazáson belüli webes nézetek többsége felhasználói vagy szervezeti tartalmat jelenít meg, akkor csak setWebViewPolicy:forWebViewer:
a IntuneMAMWebViewPolicyUnmanaged
nem felügyelt webes nézeteken kell meghívni őket, mivel a rendszer alapértelmezés szerint az összes webes nézetet kezeli.
4. webnézeti forgatókönyv: Felhasználói vagy szervezeti tartalom, de tetszőleges weblapok kockázata
Ha egy webes nézet felhasználói vagy szervezeti tartalom megjelenítésére szolgál, de fennáll a kockázata, hogy tetszőleges külső URL-címekre lép, akkor egy további API is használható a és setWebViewPolicy:forWebViewer:
a TreatAllWebViewsAsUnmanaged
használatával együtt. Ilyenek például a Javaslatok szolgáltatásra vagy a Visszajelzés weblapokra, amelyek közvetlen vagy közvetett hivatkozásokat tartalmaznak egy keresőmotorra.
IntuneMAMWebViewPolicyDelegate
a webes nézetet IntuneMAMPolicyManager
a használatával implementálhatja és állíthatja setWebViewPolicyDelegate:forWebViewer:
be. A-nek IntuneMAMWebViewPolicyDelegate
van egy kötelező metódusa: isExternalURL:
.
A setWebViewPolicyDelegate:forWebViewer:
metódust közvetlenül a WKWebView vagy az SFSafariViewController elemen kell meghívni.
Minden alkalommal, amikor a webes nézet új lapra lép, a rendszer meghívja a isExternalURL:
delegálási metódust. Az alkalmazásoknak meg kell határozniuk, hogy a delegált metódusnak átadott URL-cím egy belső webhelyet jelöl, ahol a felhasználói vagy szervezeti adatok beilleszthetők- vagy egy külső webhelyre, amely kiszivárogtathatja a szervezeti adatokat. A NO
visszaküldés közli az SDK-val, hogy a betöltött webhely egy olyan szervezeti hely, ahol a felhasználói vagy szervezeti adatok megoszthatóak.
YES
A visszatérés hatására az SDK egy felügyelt böngészőben nyitja meg az URL-címet a WKWebView vagy az SFSafariViewController helyett, ha az aktuális szabályzatbeállítások megkövetelik. Ez biztosítja, hogy az alkalmazáson belüli felhasználói vagy szervezeti adatok ne szivároghassanak ki a külső webhelyre.
Példa webnézeti API-kra
Egy alkalmazás öt webes nézettel (A, B, C, D és E) készült. Az A, B és C webes nézetek nem jelenítik meg a felhasználói vagy szervezeti adatokat. A "D" webes nézet egy szervezeti lapot jelenít meg, amely a vállalat összes felhasználója számára elérhető. Az E webes nézet megjeleníti a felhasználó dokumentumait, amelyek hivatkozásokat tartalmazhatnak.
Mivel a webes nézetek többsége nem felügyelt (A, B és C), beállíthatjuk TreatAllWebViewsAsUnmanaged
, hogy csökkentsük a híváshoz setWebViewPolicy:forWebViewer:
szükséges alkalmak számát.
Mivel a D és E webes nézetek felhasználói tartalmat jelenítenek meg, és az összes webes nézet alapértelmezés szerint nincs kezelve, a használatával IntuneMAMWebViewPolicyCurrentIdentity
kell címkéznünk setWebViewPolicy:forWebViewer:
őket.
Mivel az E webes nézet olyan hivatkozásokat tartalmaz, amelyekre a felhasználó rákattinthat, és amelyek használatával tetszőleges URL-címekre navigálhat, az E webes nézetre is be kell állítani a parancsot a IntuneMAMWebViewPolicyDelegate
használatával setWebViewPolicyDelegate:forWebViewer:
. A megvalósítás során isExternalURL:
ellenőrizhetjük a bejövő URL-címeket, és megállapíthatjuk, hogy megegyeznek-e a dokumentum URL-címével. Ha nem egyeznek, akkor tudjuk, hogy ez egy külső URL-cím, és visszaadhatja a következőt YES
: . Ha egyeznek, akkor tudjuk, hogy ez egy belső URL-cím, és visszaadhatja a következőt NO
: .
Ezeknek az API-knak a megvalósítása és meghívása azt jelenti, hogy a felügyelt felhasználó vagy szervezeti tartalom nem szivároghat ki az A, B és C webes nézetekbe. Ez azt is jelenti, hogy a felügyelt tartalom nem szivároghat ki olyan külső URL-címekre, amelyekre a felhasználó a dokumentumok hivatkozásaira kattintva navigálhat az E-ben. A felügyelt tartalmakat azzal is védi a rendszer, hogy megakadályozza, hogy a D és az E webes nézetekből származó adatok kiszivárognak az alkalmazáson kívül.
SwiftUI-támogatás
Az újonnan létrehozott SwiftUI-alkalmazások támogatják az UIScenes-t, de alapértelmezés szerint nincs implementálva UISceneDelegate. Ha az alkalmazás támogatni szeretné az UIScenes-t, és az Intune App SDK-t szeretné használni, akkor egy UISceneDelegate implementálására van szükség. Ha nem kívánja támogatni az UIScenes-t, el kell távolítani az UIApplicationSceneManifest
alkalmazás Info.plist fájljában lévő (más néven "Alkalmazásjelenet jegyzékfájlja" nevű) beállítást.