Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Отображение веб-содержимого в приложении
В iOS с помощью веб-представлений можно открывать широкий спектр веб-содержимого, не выходя из контекста приложения. Некоторые приложения могут также использовать веб-представления для совместного использования функций и пользовательского интерфейса на нескольких платформах.
Поскольку веб-представления существуют в приложении, они делают его уязвимым для потенциальных утечек данных. Если пользователь может переходить на произвольные внешние веб-страницы в приложении (либо с помощью преднамеренного дизайна приложения, либо путем ловкого маневрирования по открытым ссылкам в HTML-содержимом отрисованной веб-страницы), то он может иметь возможность утечки управляемых данных из приложения.
Пакет SDK Intune MAM предоставляет несколько API для обработки различных сценариев, в которых управляемое и неуправляемое содержимое отображается через веб-представления в приложении. Эти API требуется вызывать только в том случае, если в приложение вошел управляемый пользователь. В таблице ниже приведены краткие сведения о том, какой API применяется к тому или иному сценарию.
| Сценарий | Интерфейсы API |
|---|---|
| Только пользовательский и организационный контент без риска появления произвольных веб-страниц | API не требуются |
| Только содержимое, не относящееся к пользователям и организациям | Место действия в TreatAllWebViewsAsUnmanagedInfo.plist |
| Сочетание содержимого пользователей и организаций и других пользователей (большинство пользователей, не являющихся пользователями и не относящихся к организации) | Задайте TreatAllWebViewsAsUnmanaged в Info.plist и используйте setWebViewPolicy:forWebViewer: с IntuneMAMWebViewPolicyCurrentIdentity в веб-представлениях, содержащих данные пользователей или организации |
| Сочетание содержимого пользователей/организации и других пользователей (большинство пользователей/организации) | Использование setWebViewPolicy:forWebViewer: только в IntuneMAMWebViewPolicyUnmanaged веб-представлениях, которые не содержат данных пользователя или организации |
| Пользовательский или организационный контент, но с риском появления произвольных веб-страниц | Следуя подходящему TreatAllWebViewsAsUnmanaged использованию и setWebViewPolicy:forWebViewer:, также реализуйте веб-представления, IntuneMAMWebViewPolicyDelegate которые могут переходить на произвольные веб-страницы |
Веб-представление Сценарий 1. Только веб-страницы, на которых отображается контент пользователя или организации
Если приложение использует веб-представления только как способ отображения пользовательского или организационного содержимого и нет риска перехода веб-представления на произвольные внешние веб-страницы, то нет необходимости использовать какие-либо API или параметры. По умолчанию пакет SDK будет рассматривать любое веб-представление в приложении как содержимое, принадлежащее текущему удостоверению политики пользовательского интерфейса.
Если управляемый пользователь открывает веб-представление в приложении, все вырезанные/скопированные данные из веб-представления будут рассматриваться как управляемое содержимое. Вставка в веб-представление будет обрабатываться в соответствии с политикой управляемой учетной записи.
Если неуправляемый пользователь открывает веб-представление в приложении, все вырезанные/скопированные данные из веб-представления будут рассматриваться как неуправляемый контент. Вставка в веб-представление будет рассматриваться так, как если бы она выполнялась неуправляемой учетной записью, и никаких дополнительных ограничений не налагается.
Сценарий веб-представления 2. Только веб-страницы, на которых не отображается контент пользователя или организации
Если приложение знает, что оно никогда не будет отображать пользовательский или организационный контент в веб-представлении, оно может установить TreatAllWebViewsAsUnmanaged значение YES в .Info.plist Все действия вырезания, копирования и вставки, выполняемые любым пользователем в веб-представлении, будут рассматриваться как неуправляемые. Независимо от состояния управления учетной записи, используемой для выполнения действий, действие будет рассматриваться как выполненное неуправляемым пользователем.
Это обеспечит отсутствие утечки содержимого управляемого приложения за пределы приложения через веб-представление. Установка этого флажка имеет смысл в том случае, если приложение использует веб-представления только для отображения уведомлений о конфиденциальности, лицензионных соглашений или другого статического содержимого страницы, не требующего просмотра пользователем.
Если TreatAllWebViewsAsUnmanaged этот параметр установлен, все содержимое, отображаемое в веб-представлениях, можно копировать и вставлять в другие неуправляемые приложения, поскольку сами веб-представления считаются неуправляемыми.
Сценарий 3 веб-представления. Смесь содержимого пользователей и организаций, а также материалов, не относящихся к пользователям и не относящихся к организации
Более сложные приложения могут использовать сочетание пользовательских/организационных веб-представлений, а также веб-представлений, не связанных с пользователями/другими организациями. Приложение может использовать веб-представления для отображения уведомлений о конфиденциальности, а также веб-представления для отображения пользовательского содержимого. В этом случае IntuneMAMPolicyManagerможно использовать API '.setWebViewPolicy:forWebViewer: Этот API позволяет приложению помечать отдельные веб-представления как неуправляемые или отменять их действие TreatAllWebViewsAsUnmanaged для отдельных веб-представлений.
API принимает два аргумента. Первое — это значение перечисления IntuneMAMWebViewPolicy типа. Второй может быть либо UIView, либо UIViewController, который может содержать WKWebView в своей иерархии дочерних представлений. Сам WKWebView также может быть передан непосредственно в качестве второго аргумента.
Если WKWebView является дочерним по отношению к UIView или UIViewController, передаваемому в качестве второго аргумента, он не обязательно должен существовать в иерархии представления во время вызова этого API. К любым дочерним элементам WKWebViews переданных в UIView или UIViewController будет применена соответствующая политика при добавлении.
-
IntuneMAMWebViewPolicyUnset- Это политика по умолчанию для всех WKWebViews. Веб-представления будут обрабатываться только в соответствии с флагомTreatAllWebViewsAsUnmanaged. -
IntuneMAMWebViewPolicyUnmanaged- Любые действия вырезания, копирования и вставки, выполняемые пользователем в веб-представлении с тегами этой политики, будут рассматриваться как выполненные неуправляемым лицом. Эта политика перезаписывает флаг.TreatAllWebViewsAsUnmanaged -
IntuneMAMWebViewPolicyCurrentIdentity- Любые действия вырезания, копирования и вставки, выполняемые пользователем в веб-представлении с тегом этой политики, будут обрабатываться как выполненные текущим идентификатором политики пользовательского интерфейса. Эта политика перезаписывает флаг.TreatAllWebViewsAsUnmanaged
Большинство данных, не являющихся пользовательскими и неорганизационными
Если большинство представлений веб-страниц в приложении отображают неуправляемое содержимое, его TreatAllWebViewsAsUnmanaged можно настроить в представлении приложения Info.plist и setWebViewPolicy:forWebViewer:IntuneMAMWebViewPolicyCurrentIdentity с помощью которого можно вызвать веб-представления содержимого пользователя или организации.
Большинство данных пользователей и организации
Если большинство веб-представлений в приложении отображает пользовательский или организационный контент, то неуправляемые представления необходимо вызывать только setWebViewPolicy:forWebViewer: с IntuneMAMWebViewPolicyUnmanaged помощью, так как все веб-представления рассматриваются как управляемые по умолчанию.
Веб-представление Сценарий 4. Пользовательский или организационный контент, но с риском появления произвольных веб-страниц
Если веб-представление используется для отображения содержимого пользователя или организации, но существует риск перехода на произвольные внешние URL-адреса, можно использовать дополнительный API в сочетании с TreatAllWebViewsAsUnmanaged и setWebViewPolicy:forWebViewer:. В качестве примера можно привести веб-страницы "Предложить функцию" или "Отзыв", которые содержат прямые или косвенные ссылки на поисковую систему.
IntuneMAMWebViewPolicyDelegate может быть реализован и установлен в веб-представлении с помощью IntuneMAMPolicyManagerкоманды setWebViewPolicyDelegate:forWebViewer:'. Имеет IntuneMAMWebViewPolicyDelegate один обязательный метод, isExternalURL:.
Метод setWebViewPolicyDelegate:forWebViewer: должен вызываться непосредственно в WKWebView или SFSafariViewController.
Каждый раз, когда веб-представление переходит на новую страницу, вызывается метод делегирования isExternalURL: . Приложения должны определить, представляет ли URL-адрес, передаваемый методу делегата, внутренний веб-сайт, куда можно вставить данные пользователя или организации, или внешний веб-сайт, на котором возможна утечка данных организации. При возврате NO пакет SDK будет сообщить, что загружаемый веб-сайт является расположением организации, где можно обмениваться данными пользователя или организации. Возврат приведет к тому YES , что пакет SDK откроет URL-адрес в Microsoft Edge, а не в WKWebView или SFSafariViewController, если этого требуют текущие параметры политики. Это гарантирует, что данные пользователей или организации из приложения не смогут попасть на внешний веб-сайт.
Пример API веб-представления
Приложение создается с пятью веб-представлениями (A, B, C, D и E). В веб-представлениях A, B и C данные пользователей или организации не отображаются. В веб-представлении D отображается страница организации, доступная всем пользователям организации. Веб-представление E отображает документы пользователя, которые могут содержать ссылки.
Поскольку большинство веб-представлений являются неуправляемыми (A, B и C), мы можем уменьшить TreatAllWebViewsAsUnmanaged количество вызовов setWebViewPolicy:forWebViewer:.
Поскольку веб-представления D и E отображают пользовательский контент, и все веб-представления теперь не управляются по умолчанию, необходимо пометить их с setWebViewPolicy:forWebViewer: помощью IntuneMAMWebViewPolicyCurrentIdentity.
Поскольку веб-представление E содержит ссылки, на которые пользователь может щелкнуть и использовать для перехода по произвольным URL-адресам, нам также необходимо реализовать и IntuneMAMWebViewPolicyDelegate настроить его на веб-представление E с помощью setWebViewPolicyDelegate:forWebViewer:. В нашей isExternalURL: реализации мы могли бы проверка входящие URL-адреса и посмотреть, совпадают ли они с URL-адресом документа. Если они не совпадают, мы знаем, что это внешний URL-адрес, и мы можем вернуть YES Если они совпадают, мы знаем, что это внутренний URL-адрес, и он может возвращать NO
Реализация и вызов этих API означает, что содержимое управляемого пользователя или организации не может попадать в веб-представления A, B и C. Это также означает, что управляемое содержимое не может просочиться во внешние URL-адреса, на которые пользователь может перейти в E, щелкнув ссылки в документах. Управляемое содержимое также будет защищено за счет предотвращения утечки данных из веб-представлений D и E за пределы приложения.