Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Exibindo conteúdo da Web em um aplicativo
No iOS, os modos de exibição da Web podem ser usados para exibir uma ampla variedade de conteúdo da Web sem precisar sair do contexto do aplicativo. Alguns aplicativos também podem usar exibições da Web como uma forma de compartilhar recursos e interface do usuário em várias plataformas.
Como as exibições da Web existem dentro do aplicativo, elas o expõem a possíveis vazamentos de dados. Se um usuário for capaz de navegar para páginas da Web externas arbitrárias dentro de um aplicativo (seja por meio do design intencional do aplicativo ou por meio de manobras inteligentes por meio de links expostos no conteúdo html da página da Web renderizada), o usuário poderá vazar dados gerenciados do aplicativo.
O SDK do Intune MAM fornece várias APIs para lidar com diferentes cenários em que o conteúdo gerenciado e não gerenciado é exibido por meio de exibições da Web em um aplicativo. Essas APIs só precisarão ser chamadas se houver um usuário gerenciado conectado ao aplicativo. Consulte a tabela abaixo como um guia rápido sobre qual API se aplica a qual cenário.
| Cenário | APIs |
|---|---|
| Somente conteúdo organizacional e de usuário sem risco de páginas da Web arbitrárias | Não são necessárias APIs |
| Somente conteúdo não relacionado ao usuário e não organizacional | Definido TreatAllWebViewsAsUnmanaged no Info.plist |
| Uma combinação de conteúdo usuário/organizacional e não usuário/não organizacional (maioria não usuário/não organizacional) | Definir TreatAllWebViewsAsUnmanaged no Info.plist e usar setWebViewPolicy:forWebViewer: com IntuneMAMWebViewPolicyCurrentIdentity exibições na Web que contêm dados organizacionais ou de usuário |
| Uma combinação de conteúdo de usuário/organizacional e não usuário/não organizacional (majoritariamente usuário/organizacional) | Use setWebViewPolicy:forWebViewer: apenas com IntuneMAMWebViewPolicyUnmanaged modos de exibição da Web que não contenham dados de usuário ou organizacionais |
| Conteúdo do usuário ou da organização, mas com risco de páginas da Web arbitrárias | Após o uso adequado de TreatAllWebViewsAsUnmanaged e , implemente setWebViewPolicy:forWebViewer:também o IntuneMAMWebViewPolicyDelegate para exibições da Web que podem navegar para páginas da Web arbitrárias |
Cenário de Exibição da Web 1: somente páginas da Web que exibem conteúdo organizacional ou de usuário
Se um aplicativo usa apenas modos de exibição da Web como uma forma de renderizar o conteúdo organizacional ou do usuário e não há risco de o modo de exibição da Web navegar para páginas da Web externas arbitrárias, não há necessidade de usar nenhuma das APIs ou configurações. Por padrão, o SDK tratará qualquer modo de exibição da Web apresentado no aplicativo como conteúdo pertencente à identidade atual da política de interface do usuário.
Se um usuário gerenciado abrir um modo de exibição da Web em um aplicativo, todos os dados cortados/copiados do modo de exibição da Web serão tratados como conteúdo gerenciado. Colar no modo de exibição da Web será tratado de acordo com as políticas da conta gerenciada.
Se um usuário não gerenciado abrir um modo de exibição da Web em um aplicativo, todos os dados recortados/copiados do modo de exibição da Web serão tratados como conteúdo não gerenciado. A colagem no modo de exibição da Web será tratada como se tivesse sido feita pela conta não gerenciada e nenhuma restrição adicional será imposta.
Cenário de Exibição da Web 2: somente páginas da Web que não exibem conteúdo organizacional ou de usuário
Se um aplicativo souber que nunca exibirá conteúdo organizacional ou de usuário em um modo de exibição da Info.plistWeb, ele poderá definir TreatAllWebViewsAsUnmanaged como YES no arquivo . Isso tratará todas as ações recortar, copiar e colar feitas por qualquer usuário em um modo de exibição da Web como não gerenciadas. Independentemente do status de gerenciamento da conta usada para executar as ações, a ação será tratada como se tivesse sido executada por um usuário não gerenciado.
Isso garantirá que o conteúdo do aplicativo gerenciado não vaze para fora do aplicativo por meio do modo de exibição da Web. Definir esse sinalizador seria uma boa ideia se um aplicativo usasse apenas exibições da Web para exibir avisos de privacidade, EULAs ou outro conteúdo de página estático que não exija que um usuário o visualize.
Quando TreatAllWebViewsAsUnmanaged definido, todo o conteúdo exibido nos modos de exibição da Web pode ser copiado e colado em outros aplicativos não gerenciados, pois os próprios modos de exibição da Web são considerados não gerenciados.
Cenário de Exibição da Web 3: uma mistura de conteúdo de usuário/organizacional e não usuário/não organizacional
Aplicativos mais complexos podem usar uma combinação de exibições da Web de usuário/organizacional e não usuário/não organizacional. Um aplicativo pode usar exibições da Web para exibir avisos de privacidade, mas também usar exibições da Web para exibir conteúdo do usuário. Nesse caso, a IntuneMAMPolicyManagerAPI do setWebViewPolicy:forWebViewer: pode ser usada. Essa API permite que um aplicativo marque exibições da Web individuais como não gerenciadas ou desfaça o efeito de exibições da TreatAllWebViewsAsUnmanaged Web individuais.
A API usa dois argumentos. O primeiro é um valor de enumeração do IntuneMAMWebViewPolicy tipo. O segundo pode ser um UIView ou UIViewController que pode conter um WKWebView em sua hierarquia de exibição filho. Um próprio WKWebView também pode ser passado diretamente como o segundo argumento.
Se o WKWebView for um filho do UIView ou UIViewController passado como o segundo argumento, ele não precisará existir dentro da hierarquia de exibição no momento em que essa API for chamada. Qualquer WKWebViews filho do passado em UIView ou UIViewController terá a política adequada aplicada quando forem adicionados.
-
IntuneMAMWebViewPolicyUnset- Esta é a política padrão para todos os WKWebViews. Os modos de exibição da Web serão tratados de acordo apenas com oTreatAllWebViewsAsUnmanagedsinalizador. -
IntuneMAMWebViewPolicyUnmanaged- Todas as ações recortar/copiar/colar executadas por um usuário em um modo de exibição da Web marcado com esta política serão tratadas como se tivessem sido executadas por uma identidade não gerenciada. Essa política substituirá oTreatAllWebViewsAsUnmanagedsinalizador. -
IntuneMAMWebViewPolicyCurrentIdentity- Todas as ações recortar/copiar/colar executadas por um usuário em um modo de exibição da Web marcado com essa política serão tratadas como se tivessem sido executadas pela identidade atual da política da interface do usuário. Essa política substituirá oTreatAllWebViewsAsUnmanagedsinalizador.
A maioria dos dados não relacionados a usuários e não organizacionais
Se a maioria dos modos de exibição da Web em um aplicativo exibir conteúdo não gerenciado, poderá TreatAllWebViewsAsUnmanaged ser definido no aplicativo e setWebViewPolicy:forWebViewer: com IntuneMAMWebViewPolicyCurrentIdentity poderá ser chamado nos modos de exibição da Web de conteúdo organizacional ou de Info.plist usuário.
Maioria dos dados organizacionais e de usuários
Se a maioria dos modos de exibição da Web em um aplicativo exibir conteúdo organizacional ou de usuário, somente setWebViewPolicy:forWebViewer: com IntuneMAMWebViewPolicyUnmanaged precisará ser chamado nos modos de exibição da Web não gerenciados, já que todos os modos de exibição da Web são tratados como gerenciados por padrão.
Exibição da Web Cenário 4: conteúdo organizacional ou do usuário, mas com risco de páginas da Web arbitrárias
Se um modo de exibição da Web for usado para exibir conteúdo organizacional ou do usuário, mas tiver o risco de navegar para URLs externas arbitrárias, uma API adicional poderá ser usada em combinação com TreatAllWebViewsAsUnmanaged e setWebViewPolicy:forWebViewer:. Exemplos disso são as páginas da Web Sugerir um Recurso ou Comentários que têm links diretos ou indiretos para um mecanismo de pesquisa.
IntuneMAMWebViewPolicyDelegatepode ser implementado e definido para um modo de exibição da Web usando IntuneMAMPolicyManager.setWebViewPolicyDelegate:forWebViewer: O IntuneMAMWebViewPolicyDelegate tem um método necessário, isExternalURL:.
O setWebViewPolicyDelegate:forWebViewer: método deve ser chamado diretamente em um WKWebView ou SFSafariViewController.
Sempre que o modo de exibição da Web navegar para uma nova página, o isExternalURL: método delegado será chamado. Os aplicativos devem determinar se a URL passada para o método delegado representa um site interno no qual os dados organizacionais ou do usuário podem ser colados ou um site externo que pode vazar dados organizacionais. O retorno NO informará ao SDK que o site que está sendo carregado é um local organizacional onde os dados organizacionais ou do usuário podem ser compartilhados. O retorno YES fará com que o SDK abra a URL no Microsoft Edge em vez de WKWebView ou SFSafariViewController se as configurações de política atuais exigirem isso. Isso garantirá que nenhum dado organizacional ou do usuário de dentro do aplicativo possa vazar para o site externo.
Exemplo de APIs de Exibição da Web
Um aplicativo é criado com cinco modos de exibição da Web (A, B, C, D e E). Os modos de exibição da Web A, B e C não exibem dados do usuário ou da organização. O modo de exibição da Web D exibe uma página da organização disponível para todos os usuários da empresa. O modo de exibição da Web E renderiza os documentos do usuário que podem conter links.
Como a maioria das exibições da Web não são gerenciadas (A, B e C), podemos definir TreatAllWebViewsAsUnmanaged para reduzir o número de vezes que precisamos chamar setWebViewPolicy:forWebViewer:.
Como as exibições da Web D e E exibem o conteúdo do usuário e todas as exibições da Web não são gerenciadas por padrão agora, precisamos marcá-las com setWebViewPolicy:forWebViewer: o uso IntuneMAMWebViewPolicyCurrentIdentityde .
Como o modo de exibição da Web E contém links nos quais o usuário pode clicar e pode usar para navegar para URLs arbitrárias, também precisamos implementar o IntuneMAMWebViewPolicyDelegate e defini-lo como modo de exibição da Web E usando setWebViewPolicyDelegate:forWebViewer:. Em nossa isExternalURL: implementação, podemos marcar URLs de entrada e ver se elas são iguais à URL do documento. Se eles não corresponderem, sabemos que é uma URL externa e pode retornar YES. Se eles corresponderem, sabemos que é uma URL interna e pode retornar NO.
A implementação e a chamada dessas APIs significam que o conteúdo organizacional ou de usuário gerenciado não pode vazar para os modos de exibição da Web A, B e C. Isso também significa que o conteúdo gerenciado não pode vazar para nenhuma URL externa para a qual o usuário possa navegar no E clicando em links dentro de documentos. O conteúdo gerenciado também será protegido, impedindo que os dados das exibições da Web D e E vazem para fora do aplicativo.