Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wyświetlanie zawartości internetowej w aplikacji
W systemie iOS widoki internetowe mogą być używane do wyświetlania różnorodnej zawartości internetowej bez konieczności opuszczania kontekstu aplikacji. Niektóre aplikacje mogą również używać widoków sieci Web do udostępniania funkcji i interfejsu użytkownika na różnych platformach.
Ponieważ widoki sieci Web istnieją w aplikacji, narażają ją na potencjalny wyciek danych. Jeśli użytkownik jest w stanie nawigować do dowolnych zewnętrznych stron internetowych w aplikacji (poprzez celowy projekt aplikacji lub sprytne manewrowanie przez ujawnione linki w zawartości html renderowanej strony internetowej), użytkownik może być w stanie ujawnić zarządzane dane z aplikacji.
Zestaw SDK zarządzania aplikacjami mobilnymi usługi Intune udostępnia kilka interfejsów API do obsługi różnych scenariuszy, w których zarówno zarządzana, jak i niezarządzana zawartość jest wyświetlana za pośrednictwem widoków sieci Web w aplikacji. Te interfejsy API muszą być wywoływane tylko wtedy, gdy do aplikacji jest zalogowany użytkownik zarządzany. W poniższej tabeli znajdziesz krótki przewodnik po tym, który interfejs API ma zastosowanie w danym scenariuszu.
| Scenariusz | Interfejsy API |
|---|---|
| Tylko zawartość użytkowników i organizacji bez ryzyka dowolnych stron internetowych | Nie są potrzebne żadne interfejsy API |
| Tylko zawartość niezwiązana z użytkownikami i nienależąca do organizacji | Ustaw TreatAllWebViewsAsUnmanaged w Info.plist |
| Zawartość stanowiąca połączenie zawartości użytkownika/organizacji i zawartości niezwiązanej z użytkownikami/osobami nienależącymi do organizacji (w większości niezwiązana z użytkownikami/nienależąca do organizacji) | Ustawianie TreatAllWebViewsAsUnmanaged widoków Info.plist sieci Web zawierających dane użytkowników lub organizacji i używanie setWebViewPolicy:forWebViewer: ich z IntuneMAMWebViewPolicyCurrentIdentity |
| Zawartość stanowiąca połączenie zawartości użytkownika/organizacji i zawartości nieprzeznaczonej dla użytkowników/organizacji (większość użytkowników/organizacji) | Używaj setWebViewPolicy:forWebViewer: tylko w widokach IntuneMAMWebViewPolicyUnmanaged sieci Web, które nie zawierają danych użytkowników ani organizacji |
| Zawartość użytkownika lub organizacji, ale z ryzykiem dowolnych stron internetowych | Po odpowiednim użyciu i TreatAllWebViewsAsUnmanagedsetWebViewPolicy:forWebViewer:, zaimplementuj również widoki IntuneMAMWebViewPolicyDelegate sieci Web, które mogą przechodzić do dowolnych stron internetowych |
Widok sieci Web — scenariusz 1: Tylko strony sieci Web wyświetlające zawartość użytkowników lub organizacji
Jeśli aplikacja używa tylko widoków sieci Web jako sposobu renderowania zawartości użytkownika lub organizacji i nie ma ryzyka, że widok sieci Web przechodzi do dowolnych zewnętrznych stron sieci Web, nie ma potrzeby używania żadnych interfejsów API ani ustawień. Domyślnie zestaw SDK będzie traktować każdy widok sieci Web wyświetlany w aplikacji jako zawartość należącą do bieżącej tożsamości zasad interfejsu użytkownika.
Jeśli zarządzany użytkownik otworzy widok sieci Web w aplikacji, wszelkie wycięte/skopiowane dane z widoku sieci Web będą traktowane jako zawartość zarządzana. Wklejanie do widoku sieci Web będzie odbywać się zgodnie z zasadami zarządzanego konta.
Jeśli użytkownik niezarządzany otworzy widok sieci Web w aplikacji, wszelkie wycięte/skopiowane dane z widoku sieci Web będą traktowane jako zawartość niezarządzana. Wklejanie do widoku sieci Web będzie traktowane tak, jakby było wykonywane przez konto niezarządzane i nie zostaną nałożone żadne dodatkowe ograniczenia.
Widok sieci Web — scenariusz 2: Tylko strony sieci Web, które nie wyświetlają zawartości użytkowników lub organizacji
Jeśli aplikacja wie, że nigdy nie wyświetli zawartości użytkowników ani organizacji w widoku sieci Web, może ustawić TreatAllWebViewsAsUnmanaged tę wartość YES w obszarze Info.plist. Dzięki temu wszystkie akcje wycinania, kopiowania i wklejania wykonywane przez dowolnego użytkownika w widoku sieci Web będą traktowane jako niezarządzane. Niezależnie od stanu zarządzania kontem użytym do wykonania akcji, ta czynność będzie traktowana jako wykonana przez użytkownika niezarządzanego.
Dzięki temu zawartość zarządzanej aplikacji nie wycieknie poza aplikację za pośrednictwem widoku sieci Web. Ustawienie tej flagi byłoby dobrym pomysłem, jeśli aplikacja używa widoków sieci Web tylko do wyświetlania oświadczeń o ochronie prywatności, umów EULA lub innej statycznej zawartości strony, która nie wymaga wyświetlania przez użytkownika.
Po TreatAllWebViewsAsUnmanaged ustawieniu ta opcja cała zawartość wyświetlana w widokach sieci Web może być kopiowana i wklejana do innych aplikacji niezarządzanych, ponieważ same widoki sieci Web są uważane za niezarządzane.
Widok sieci Web — scenariusz 3: połączenie zawartości użytkowników/organizacji i zawartości niezwiązanej z użytkownikami/osobami nienależącymi do organizacji
Bardziej złożone aplikacje mogą korzystać z kombinacji widoków sieci Web użytkowników/organizacji i nienależących do użytkowników/nienależących do organizacji. Aplikacja może używać widoków sieci Web do wyświetlania informacji o ochronie prywatności, ale mogą również używać widoków sieci Web do prezentowania zawartości użytkowników. W takim przypadku IntuneMAMPolicyManagermożna użyć interfejsu API '.setWebViewPolicy:forWebViewer: Ten interfejs API umożliwia aplikacji oznaczanie poszczególnych widoków sieci Web jako niezarządzanych lub cofanie ich efektu TreatAllWebViewsAsUnmanaged dla poszczególnych widoków sieci Web.
Interfejs API przyjmuje dwa argumenty. Pierwsza z nich jest wartością wyliczeniową IntuneMAMWebViewPolicy typu. Drugi może być UIView lub UIViewController, który może zawierać WKWebView w hierarchii widoku podrzędnego. Sam WKWebView może być również przekazany bezpośrednio jako drugi argument.
Jeśli WKWebView jest elementem podrzędnym UIView lub UIViewController przekazanym jako drugi argument, nie musi on istnieć w hierarchii widoków w momencie wywołania tego interfejsu API. Każdy element podrzędny WKWebViews przekazany w UIView lub UIViewController będzie miał zastosowane odpowiednie zasady po ich dodaniu.
-
IntuneMAMWebViewPolicyUnset- Jest to domyślna polityka dla wszystkich widoków WKWebView. Wyświetlenia sieci Web będą traktowane tylko według flagiTreatAllWebViewsAsUnmanaged. -
IntuneMAMWebViewPolicyUnmanaged- Wszelkie akcje wycinania/kopiowania/wklejania wykonywane przez użytkownika w widoku sieci Web oznaczonym za pomocą tych zasad będą traktowane tak, jakby były wykonywane przez tożsamość niezarządzaną. Te zasady zastąpią flagęTreatAllWebViewsAsUnmanaged. -
IntuneMAMWebViewPolicyCurrentIdentity- Wszelkie akcje wycinania/kopiowania/wklejania wykonywane przez użytkownika w widoku sieci Web oznaczonym tymi zasadami będą traktowane tak, jakby były wykonywane przez bieżącą tożsamość zasad interfejsu użytkownika. Te zasady zastąpią flagęTreatAllWebViewsAsUnmanaged.
Większość danych nienależących do użytkowników i nienależących do organizacji
Jeśli w większości widoków sieci Web w aplikacji jest wyświetlana zawartość niezarządzana, można TreatAllWebViewsAsUnmanaged je ustawić w widoku sieci Web zawartości użytkownika lub organizacji, a następnie IntuneMAMWebViewPolicyCurrentIdentity można je ustawić w widokach Info.plistsetWebViewPolicy:forWebViewer: sieci Web zawartości użytkownika lub organizacji.
Większość danych użytkowników i organizacji
Jeśli większość widoków sieci Web w aplikacji wyświetla zawartość użytkowników lub organizacji, to należy wywołać tylko setWebViewPolicy:forWebViewer: te IntuneMAMWebViewPolicyUnmanaged widoki w niezarządzanych widokach sieci Web, ponieważ wszystkie widoki sieci Web są domyślnie traktowane jako zarządzane.
Widok sieci Web — scenariusz 4: zawartość użytkownika lub organizacji, ale z ryzykiem dowolnych stron sieci Web
Jeśli widok sieci Web jest używany do wyświetlania zawartości użytkownika lub organizacji, ale istnieje ryzyko przejścia do dowolnych zewnętrznych adresów URL, można użyć dodatkowego interfejsu API w połączeniu z TreatAllWebViewsAsUnmanaged i setWebViewPolicy:forWebViewer:. Przykładami tego są strony z proponowaniem funkcji lub opiniami, które mają bezpośrednie lub pośrednie linki do wyszukiwarki.
IntuneMAMWebViewPolicyDelegatemożna zaimplementować i ustawić na widok sieci Web za pomocą IntuneMAMPolicyManager.setWebViewPolicyDelegate:forWebViewer: Ma IntuneMAMWebViewPolicyDelegate jedną wymaganą metodę, isExternalURL:.
Metodę setWebViewPolicyDelegate:forWebViewer: należy wywołać bezpośrednio na WKWebView lub SFSafariViewController.
Za każdym razem, gdy widok sieci Web przejdzie do nowej strony, zostanie wywołana isExternalURL: metoda delegate. Aplikacje powinny określić, czy adres URL przekazany do metody delegowania reprezentuje wewnętrzną witrynę internetową, do której można wkleić dane użytkownika lub organizacji, czy zewnętrzną witrynę internetową, z której mogą nastąpić wycieki danych organizacji. Zwrócenie NO spowoduje poinformowanie zestawu SDK, że ładowana witryna internetowa jest lokalizacją organizacyjną, w której można udostępniać dane użytkowników lub organizacji. Powrót YES spowoduje, że zestaw SDK otworzy adres URL w przeglądarce Microsoft Edge, a nie w WKWebView lub SFSafariViewController, jeśli wymagają tego bieżące ustawienia zasad. Gwarantuje to, że żadne dane użytkowników ani organizacji z poziomu aplikacji nie mogą wyciekać do zewnętrznej witryny internetowej.
Przykład interfejsów API widoku sieci Web
Aplikacja składa się z pięciu widoków sieci Web (A, B, C, D i E). W widokach sieci Web A, B i C nie są wyświetlane dane użytkowników ani organizacji. Widok sieci Web D wyświetla stronę organizacji dostępną dla wszystkich użytkowników firmy. Widok sieci Web E renderuje dokumenty użytkownika, które mogą zawierać linki.
Ponieważ większość widoków internetowych jest niezarządzana (A, B i C), możemy ustawić TreatAllWebViewsAsUnmanaged zmniejszenie liczby wywołań setWebViewPolicy:forWebViewer:.
Ponieważ widoki D i E wyświetlają treści użytkowników, a wszystkie widoki sieci Web są teraz domyślnie niezarządzane, musimy je oznaczyć za pomocą setWebViewPolicy:forWebViewer: .IntuneMAMWebViewPolicyCurrentIdentity
Ponieważ widok internetowy E zawiera linki, które użytkownik może kliknąć i których może użyć do nawigowania do dowolnych adresów URL, musimy również zaimplementować i IntuneMAMWebViewPolicyDelegate ustawić go na widok internetowy E za pomocą setWebViewPolicyDelegate:forWebViewer:. W naszej isExternalURL: implementacji mogliśmy sprawdzić przychodzące adresy URL i zobaczyć, czy są takie same jak adres URL dokumentu. Jeśli nie są zgodne, wiemy, że jest to zewnętrzny adres URL i możemy zwrócić YES. Jeśli są zgodne, wiemy, że jest to wewnętrzny adres URL i możemy zwrócić NO.
Zaimplementowanie i wywołanie tych interfejsów API oznacza, że zarządzana zawartość użytkownika lub organizacji nie może przeciekać do widoków sieci Web A, B i C. Oznacza to również, że zarządzana zawartość nie może wyciekać do żadnych zewnętrznych adresów URL, do których użytkownik może przejść w E, klikając linki w dokumentach. Zarządzana zawartość będzie również chroniona, zapobiegając wyciekowi danych z widoków internetowych D i E poza aplikację.