Freigeben über


Intune App SDK für iOS– Webansichtsfeatures

Anzeigen von Webinhalten in einer Anwendung

In iOS können Webansichten verwendet werden, um eine Vielzahl von Webinhalten anzuzeigen, ohne den Kontext der App verlassen zu müssen. Einige Anwendungen können auch Webansichten verwenden, um Features und Benutzeroberfläche plattformübergreifend zu teilen.

Da Webansichten innerhalb der App vorhanden sind, machen sie potenziellen Datenlecks aus. Wenn ein Benutzer in der Lage ist, zu beliebigen externen Webseiten innerhalb einer App zu navigieren (entweder durch absichtliches App-Design oder durch geschicktes Manövrieren durch verfügbar gemachte Links im HTML-Inhalt der gerenderten Webseite), kann der Benutzer verwaltete Daten aus der App kompromittieren.

Das Intune MAM SDK bietet mehrere APIs für die Behandlung verschiedener Szenarien, in denen sowohl verwaltete als auch nicht verwaltete Inhalte über Webansichten innerhalb einer App angezeigt werden. Diese APIs müssen nur aufgerufen werden, wenn ein verwalteter Benutzer bei der App angemeldet ist. In der folgenden Tabelle finden Sie eine Kurze Anleitung dazu, welche API für welches Szenario gilt.

Szenario APIs
Nur Benutzer- und Organisationsinhalte ohne Risiko beliebiger Webseiten Keine APIs erforderlich
Nur Nicht-Benutzer- und Nicht-Organisationsinhalte Legen Sie TreatAllWebViewsAsUnmanaged in der Info.plist
Eine Mischung aus Benutzer-/Organisationsinhalten und Nicht-Benutzer-/Nicht-Organisationsinhalten (Mehrheit nicht-Benutzer/Nicht-Organisation) Legen Sie TreatAllWebViewsAsUnmanaged in fest Info.plist , und verwenden Sie setWebViewPolicy:forWebViewer: mit IntuneMAMWebViewPolicyCurrentIdentity In-Webansichten, die Benutzer- oder Organisationsdaten enthalten.
Eine Mischung aus Benutzer-/Organisationsinhalten und Nicht-Benutzer-/Nicht-Organisationsinhalten (Mehrheitsbenutzer/Organisation) Nur mit setWebViewPolicy:forWebViewer:IntuneMAMWebViewPolicyUnmanaged In-Webansichten verwenden, die keine Benutzer- oder Organisationsdaten enthalten
Benutzer- oder Organisationsinhalte, aber mit dem Risiko beliebiger Webseiten Implementieren Sie nach einer geeigneten Verwendung von TreatAllWebViewsAsUnmanaged und setWebViewPolicy:forWebViewer:auch die IntuneMAMWebViewPolicyDelegate für Webansichten, die zu beliebigen Webseiten navigieren können.

Webansichtsszenario 1: Nur Webseiten, die Benutzer- oder Organisationsinhalte anzeigen

Wenn eine App nur Webansichten zum Rendern von Benutzer- oder Organisationsinhalten verwendet und es kein Risiko besteht, dass die Webansicht zu beliebigen externen Webseiten navigiert, ist es nicht erforderlich, die APIs oder Einstellungen zu verwenden. Standardmäßig behandelt das SDK jede Webansicht, die in der App angezeigt wird, als Inhalt, der zur aktuellen Identität der Benutzeroberflächenrichtlinie gehört.

Wenn ein verwalteter Benutzer eine Webansicht innerhalb einer App öffnet, werden alle Ausschneiden/Kopieren von Daten aus der Webansicht als verwalteter Inhalt behandelt. Das Einfügen in die Webansicht wird gemäß den Richtlinien des verwalteten Kontos behandelt.

Wenn ein nicht verwalteter Benutzer eine Webansicht innerhalb einer App öffnet, werden alle Ausschneiden/Kopieren von Daten aus der Webansicht als nicht verwalteter Inhalt behandelt. Das Einfügen in die Webansicht wird wie vom nicht verwalteten Konto behandelt, und es werden keine zusätzlichen Einschränkungen auferlegt.

Webansichtsszenario 2: Nur Webseiten, die keine Benutzer- oder Organisationsinhalte anzeigen

Wenn eine App weiß, dass sie niemals Benutzer- oder Organisationsinhalte in einer Webansicht anzeigt, kann sie im der App Info.plistauf YES festlegenTreatAllWebViewsAsUnmanaged. Dadurch werden alle Ausschneid-, Kopier- und Einfügeaktionen, die von benutzern in einer Webansicht ausgeführt werden, als nicht verwaltet behandelt. Unabhängig von der Verwaltung status des Kontos, das zum Ausführen der Aktionen verwendet wird, wird die Aktion so behandelt, als ob sie von einem nicht verwalteten Benutzer ausgeführt würde.

Dadurch wird sichergestellt, dass verwaltete App-Inhalte nicht außerhalb der App über die Webansicht kompromittiert werden. Das Festlegen dieses Flags wäre eine gute Idee, wenn eine App nur Webansichten verwendet, um Datenschutzhinweise, EULAs oder andere statische Seiteninhalte anzuzeigen, für die kein Benutzer erforderlich ist.

Wenn TreatAllWebViewsAsUnmanaged festgelegt ist, können alle in den Webansichten angezeigten Inhalte kopiert und in andere nicht verwaltete Apps eingefügt werden, da die Webansichten selbst als nicht verwaltet gelten.

Webansichtsszenario 3: Eine Mischung aus Benutzer-/Organisationsinhalten und Nicht-Benutzer-/Nicht-Organisationsinhalten

Komplexere Apps können eine Kombination aus Benutzer-/Organisations- und Nicht-Benutzer-/Nicht-Organisations-Webansichten verwenden. Eine App kann Webansichten verwenden, um Datenschutzhinweise anzuzeigen, aber auch Webansichten, um Benutzerinhalte anzuzeigen. In diesem Fall kann die API von IntuneMAMPolicyManagersetWebViewPolicy:forWebViewer: verwendet werden. Diese API ermöglicht es einer App, einzelne Webansichten als nicht verwaltet zu markieren oder die Auswirkung von TreatAllWebViewsAsUnmanaged für einzelne Webansichten rückgängig zu machen.

Die API akzeptiert zwei Argumente. Die erste ist ein Enumerationswert vom IntuneMAMWebViewPolicy Typ. Die zweite kann entweder eine UIView oder ein UIViewController sein, der eine WKWebView in der untergeordneten Ansichtshierarchie enthalten kann. Eine WKWebView selbst kann auch direkt als zweites Argument übergeben werden.

Wenn die WKWebView ein untergeordnetes Element der UIView oder uiViewController ist, die als zweites Argument übergeben wird, muss sie zum Zeitpunkt des Aufrufs dieser API nicht in der Ansichtshierarchie vorhanden sein. Für alle untergeordneten WKWebViews des übergebenen UIView- oder UIViewController-Elements wird die richtige Richtlinie angewendet, wenn sie hinzugefügt werden.

  • IntuneMAMWebViewPolicyUnset – Dies ist die Standardrichtlinie für alle WKWebViews. Webansichten werden nur entsprechend dem TreatAllWebViewsAsUnmanaged Flag behandelt.
  • IntuneMAMWebViewPolicyUnmanaged - Alle Ausschneiden/Kopieren/Einfügen-Aktionen, die von einem Benutzer in einer Webansicht ausgeführt werden, die mit dieser Richtlinie gekennzeichnet ist, werden so behandelt, als ob sie von einer nicht verwalteten Identität ausgeführt würden. Diese Richtlinie überschreibt das TreatAllWebViewsAsUnmanaged Flag.
  • IntuneMAMWebViewPolicyCurrentIdentity - Alle Ausschneiden/Kopieren/Einfügen-Aktionen, die von einem Benutzer in einer Webansicht ausgeführt werden, die mit dieser Richtlinie gekennzeichnet ist, werden so behandelt, als ob sie von der aktuellen Benutzeroberflächenrichtlinienidentität ausgeführt würden. Diese Richtlinie überschreibt das TreatAllWebViewsAsUnmanaged Flag.

Mehrheits- und Nicht-Organisationsdaten

Wenn ein Großteil der Webansichten innerhalb einer App nicht verwaltete Inhalte anzeigt, kann in der App Info.plist festgelegt werden, und setWebViewPolicy:forWebViewer: mit IntuneMAMWebViewPolicyCurrentIdentity kann für die Webansichten von Benutzer- oder Organisationsinhalten TreatAllWebViewsAsUnmanaged aufgerufen werden.

Mehrheitsbenutzer- und Organisationsdaten

Wenn ein Großteil der Webansichten innerhalb einer App Benutzer- oder Organisationsinhalte anzeigt, muss nur setWebViewPolicy:forWebViewer: mit IntuneMAMWebViewPolicyUnmanaged für die nicht verwalteten Webansichten aufgerufen werden, da alle Webansichten standardmäßig als verwaltet behandelt werden.

Webansichtsszenario 4: Benutzer- oder Organisationsinhalte, aber mit dem Risiko beliebiger Webseiten

Wenn eine Webansicht zum Anzeigen von Benutzer- oder Organisationsinhalten verwendet wird, aber das Risiko besteht, zu beliebigen externen URLs zu navigieren, kann eine zusätzliche API in Kombination mit TreatAllWebViewsAsUnmanaged und setWebViewPolicy:forWebViewer:verwendet werden. Beispiele hierfür sind Webseiten zum Vorschlagen eines Features oder Feedbacks, die entweder direkte oder indirekte Links zu einer Suchmaschine enthalten.

IntuneMAMWebViewPolicyDelegatekann mithilfe von IntuneMAMPolicyManagersetWebViewPolicyDelegate:forWebViewer:implementiert und auf eine Webansicht festgelegt werden. Verfügt IntuneMAMWebViewPolicyDelegate über eine erforderliche Methode, isExternalURL:.

Die setWebViewPolicyDelegate:forWebViewer: -Methode muss direkt auf einem WKWebView oder SFSafariViewController aufgerufen werden.

Jedes Mal, wenn die Webansicht zu einer neuen Seite navigiert, wird die isExternalURL: Delegatmethode aufgerufen. Anwendungen sollten bestimmen, ob die an die Delegatmethode übergebene URL eine interne Website darstellt, auf der Benutzer- oder Organisationsdaten eingefügt werden können, oder eine externe Website, die Organisationsdaten weitergeben könnte. Die NO Rückgabe teilt dem SDK mit, dass es sich bei der geladenen Website um einen Organisationsstandort handelt, an dem Benutzer- oder Organisationsdaten freigegeben werden können. Die YES Rückgabe bewirkt, dass das SDK die URL in einem verwalteten Browser öffnet und nicht in WKWebView oder SFSafariViewController, wenn dies für die aktuellen Richtlinieneinstellungen erforderlich ist. Dadurch wird sichergestellt, dass keine Benutzer- oder Organisationsdaten aus der App an die externe Website weitergegeben werden können.

Beispiel für Webansicht-APIs

Eine App wird mit fünf Webansichten (A, B, C, D und E) erstellt. Webansichten A, B und C zeigen keine Benutzer- oder Organisationsdaten an. Webansicht D zeigt eine organization Seite an, die für alle Benutzer des Unternehmens verfügbar ist. Webansicht E rendert die Dokumente des Benutzers, die Möglicherweise Links enthalten.

Da die meisten Webansichten nicht verwaltet werden (A, B und C), können wir festlegen TreatAllWebViewsAsUnmanaged , um die Anzahl der Aufrufe zu setWebViewPolicy:forWebViewer:reduzieren.

Da die Webansichten D und E Benutzerinhalte anzeigen und alle Webansichten jetzt standardmäßig nicht verwaltet sind, müssen wir sie mit setWebViewPolicy:forWebViewer: kennzeichnen IntuneMAMWebViewPolicyCurrentIdentity.

Da die Webansicht E Links enthält, auf die der Benutzer möglicherweise klickt und mit denen zu beliebigen URLs navigiert werden kann, müssen wir auch implementieren IntuneMAMWebViewPolicyDelegate und mit setWebViewPolicyDelegate:forWebViewer:auf Webansicht E festlegen. In unserer isExternalURL: Implementierung könnten wir eingehende URLs überprüfen und überprüfen, ob sie mit der URL für das Dokument identisch sind. Wenn sie nicht übereinstimmen, wissen wir, dass es sich um eine externe URL handelt und zurückgeben YESkann. Wenn sie übereinstimmen, wissen wir, dass es sich um eine interne URL handelt und zurückgeben NOkann.

Das Implementieren und Aufrufen dieser APIs bedeutet, dass verwaltete Benutzer- oder Organisationsinhalte nicht an die Webansichten A, B und C weitergegeben werden können. Dies bedeutet auch, dass verwaltete Inhalte nicht an externe URLs weitergegeben werden können, zu denen der Benutzer in E navigieren könnte, indem er auf Links in Dokumenten klickt. Verwaltete Inhalte werden auch geschützt, indem verhindert wird, dass die Daten aus den Webansichten D und E außerhalb der App kompromittiert werden.

SwiftUI-Unterstützung

Eine neu erstellte SwiftUI-App unterstützt UIScenes, verfügt aber nicht standardmäßig über eine IMPLEMENTIERUNG von UISceneDelegate. Wenn Ihre App UIScenes unterstützen und das Intune App SDK verwenden möchte, muss uiSceneDelegate implementiert werden. Wenn uiScenes nicht unterstützt werden sollen, muss die UIApplicationSceneManifest Einstellung (auch als "Anwendungsszenemanifest" bezeichnet) in der App-Liste "Info.plist" entfernt werden.