Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Affichage de contenu web dans une application
Dans iOS, les vues Web peuvent être utilisées pour afficher une grande variété de contenu Web sans avoir à quitter le contexte de l’application. Certaines applications peuvent également utiliser les vues Web comme moyen de partager des fonctionnalités et l’interface utilisateur entre plusieurs plateformes.
Étant donné que les vues Web existent dans l’application, elles l’exposent à des fuites de données potentielles. Si un utilisateur est en mesure de naviguer vers des pages Web externes arbitraires dans une application (soit par une conception intentionnelle de l’application, soit en manœuvrant intelligemment à travers les liens exposés dans le contenu html de la page Web rendue), l’utilisateur peut être en mesure de divulguer des données gérées à partir de l’application.
Le Kit de développement logiciel (SDK) MAM Intune fournit plusieurs API pour gérer différents scénarios où le contenu géré et non géré est affiché via des vues web au sein d’une application. Ces API ne doivent être appelées que si un utilisateur géré est connecté à l’application. Consultez le tableau ci-dessous à titre de guide rapide pour savoir quelle API s’applique à quel scénario.
| Scénario | API |
|---|---|
| Uniquement le contenu utilisateur et organisationnel sans risque de pages web arbitraires | Aucune API n’est nécessaire |
| Uniquement le contenu non utilisateur et non organisationnel | Défini TreatAllWebViewsAsUnmanaged dans le Info.plist |
| Un mélange de contenu utilisateur/organisationnel et non-utilisateur/non organisationnel (majoritairement non-utilisateur/non organisationnel) | Définir TreatAllWebViewsAsUnmanaged dans et utiliser setWebViewPolicy:forWebViewer: avec IntuneMAMWebViewPolicyCurrentIdentity sur les Info.plist vues web qui contiennent des données utilisateur ou organisationnelle |
| Un mélange de contenu utilisateur/organisationnel et non-utilisateur/non organisationnel (principalement utilisateur/organisationnel) | À utiliser setWebViewPolicy:forWebViewer: uniquement avec IntuneMAMWebViewPolicyUnmanaged les vues web qui ne contiennent pas de données utilisateur ou organisationnelle |
| Contenu utilisateur ou organisationnel, mais avec un risque de pages web arbitraires | Après une utilisation appropriée de TreatAllWebViewsAsUnmanaged et setWebViewPolicy:forWebViewer:, implémenter également le pour les IntuneMAMWebViewPolicyDelegate vues Web qui pourraient naviguer vers des pages Web arbitraires |
Scénario 1 : Seules les pages web qui affichent du contenu utilisateur ou organisationnel
Si une application utilise uniquement les vues Web comme moyen de rendu du contenu utilisateur ou organisationnel et qu’il n’existe aucun risque que la vue Web accède à des pages Web externes arbitraires, il n’est pas nécessaire d’utiliser l’une des API ou des paramètres. Par défaut, le Kit de développement logiciel (SDK) traite toute vue Web affichée dans l’application comme du contenu appartenant à l’identité de stratégie d’interface utilisateur actuelle.
Si un utilisateur géré ouvre une vue Web dans une application, toutes les données coupées/copiées de la vue Web sont traitées comme du contenu géré. Le collage dans l’affichage Web est traité conformément aux stratégies du compte géré.
Si un utilisateur non géré ouvre une vue Web dans une application, toutes les données coupées/copiées de la vue Web sont traitées comme du contenu non géré. Le collage dans l’affichage Web est traité comme s’il était effectué par le compte non géré et aucune restriction supplémentaire n’est imposée.
Scénario 2 : Seules les pages web qui n’affichent pas de contenu utilisateur ou organisationnel
Si une application sait qu’elle n’affichera Info.plistjamais de contenu utilisateur ou organisationnel dans une vue Web, elle peut la définir TreatAllWebViewsAsUnmanagedYES sur dans le . Toutes les actions de couper, copier et coller effectuées par un utilisateur dans une vue Web sont considérées comme non gérées. Quel que soit le status de gestion du compte utilisé pour effectuer les actions, l’action sera traitée comme si elle était effectuée par un utilisateur non géré.
Cela permet de s’assurer que le contenu de l’application managée n’est pas divulgué en dehors de l’application via la vue web. Il serait judicieux de définir cet indicateur si une application utilise uniquement des vues web pour afficher des avis de confidentialité, des CLUF ou d’autres contenus de page statiques qui ne nécessitent pas qu’un utilisateur les affiche.
Lorsque TreatAllWebViewsAsUnmanaged cette option est définie, tout le contenu affiché dans les vues Web peut être copié et collé dans d’autres applications non gérées puisque les vues Web elles-mêmes sont considérées comme non gérées.
Vue Web Scénario 3 : mélange de contenu utilisateur/organisationnel et non-utilisateur/non organisationnel
Les applications plus complexes peuvent utiliser une combinaison de vues Web utilisateur/organisationnel et non-utilisateur/non organisationnel. Une application peut utiliser des vues Web pour afficher des avis de confidentialité, mais aussi des vues Web pour exposer le contenu utilisateur. Dans ce cas, l’API IntuneMAMPolicyManager's setWebViewPolicy:forWebViewer: peut être utilisée. Cette API permet à une application de marquer des vues Web individuelles comme non gérées ou d’annuler l’effet de TreatAllWebViewsAsUnmanaged pour les vues Web individuelles.
L’API accepte deux arguments. La première est une valeur enum de IntuneMAMWebViewPolicy type. Le second peut être un UIView ou un UIViewController qui peut contenir un WKWebView dans sa hiérarchie de vues enfants. Un WKWebView lui-même peut également être passé directement en tant que deuxième argument.
Si WKWebView est un enfant de UIView ou UIViewController transmis en tant que deuxième argument, il n’a pas besoin d’exister dans la hiérarchie de vues au moment où cette API est appelée. Tous les WKWebViews enfants des UIView ou UIViewController passés auront la stratégie appropriée appliquée lorsqu’ils sont ajoutés.
-
IntuneMAMWebViewPolicyUnset- C’est la politique par défaut pour tous les WKWebViews. Les vues Web sont traitées uniquement en fonction de l’indicateurTreatAllWebViewsAsUnmanaged. -
IntuneMAMWebViewPolicyUnmanaged- Toutes les actions de couper/copier/coller effectuées par un utilisateur sur une vue Web étiquetée avec cette stratégie seront traitées comme si elles étaient effectuées par une identité non gérée. Cette stratégie remplace l’indicateurTreatAllWebViewsAsUnmanaged. -
IntuneMAMWebViewPolicyCurrentIdentity- Toutes les actions couper/copier/coller effectuées par un utilisateur sur une vue Web étiquetée avec cette stratégie seront traitées comme si elles étaient effectuées par l’identité de stratégie d’interface utilisateur actuelle. Cette stratégie remplace l’indicateurTreatAllWebViewsAsUnmanaged.
Majorité de données non utilisateur et non organisationnelle
Si la majorité des vues Web d’une application affichent du contenu non géré, elles TreatAllWebViewsAsUnmanaged peuvent être définies dans la vue Web de Info.plist l’application et setWebViewPolicy:forWebViewer: peuvent IntuneMAMWebViewPolicyCurrentIdentity être appelées sur les vues Web de contenu de l’utilisateur ou de l’organisation.
Majorité des données utilisateur et organisationnelle
Si la majorité des vues Web d’une application affichent du contenu utilisateur ou organisationnel, seule setWebViewPolicy:forWebViewer:IntuneMAMWebViewPolicyUnmanaged la vue Web non gérée doit être appelée puisque toutes les vues Web sont considérées comme gérées par défaut.
Scénario 4 : contenu utilisateur ou organisationnel, mais avec un risque de pages web arbitraires
Si une vue Web est utilisée pour afficher du contenu utilisateur ou organisationnel, mais qu’elle risque d’accéder à des URL externes arbitraires, une API supplémentaire peut être utilisée en combinaison avec TreatAllWebViewsAsUnmanaged et setWebViewPolicy:forWebViewer:. Par exemple, les pages web Suggérer une fonctionnalité ou Commentaires qui ont des liens directs ou indirects vers un moteur de recherche.
IntuneMAMWebViewPolicyDelegate peut être implémenté et défini sur une vue Web à l’aide IntuneMAMPolicyManagerde 's setWebViewPolicyDelegate:forWebViewer:. Le IntuneMAMWebViewPolicyDelegate a une méthode requise, isExternalURL:.
La setWebViewPolicyDelegate:forWebViewer: méthode doit être appelée directement sur un WKWebView ou un SFSafariViewController.
Chaque fois que l’affichage Web accède à une nouvelle page, la méthode de isExternalURL: délégation est appelée. Les applications doivent déterminer si l’URL transmise à la méthode déléguée représente un site web interne dans lequel des données utilisateur ou organisationnelles peuvent être collées, ou un site web externe susceptible de divulguer des données organisationnelles. Le retour NO indique au SDK que le site web en cours de chargement est un emplacement organisationnel dans lequel les données utilisateur ou organisationnelles peuvent être partagées. Le retour YES entraîne l’ouverture par le Kit de développement logiciel (SDK) de l’URL dans Microsoft Edge plutôt que dans WKWebView ou SFSafariViewController si les paramètres de stratégie actuels l’exigent. Ainsi, aucune donnée utilisateur ou organisationnelle de l’application ne peut être divulguée vers le site web externe.
Exemple d’API d’affichage Web
Une application est construite avec cinq vues Web (A, B, C, D et E). Les vues web A, B et C n’affichent pas de données utilisateur ou organisationnelles. La vue Web D affiche une page d’organisation disponible pour tous les utilisateurs de la société. L’affichage Web E restitue les documents de l’utilisateur qui peuvent contenir des liens.
Étant donné que la majorité des vues Web ne sont pas gérées (A, B et C), nous pouvons TreatAllWebViewsAsUnmanaged définir de manière à réduire le nombre de fois où nous devons appeler setWebViewPolicy:forWebViewer:.
Étant donné que les vues Web D et E affichent du contenu utilisateur et que toutes les vues Web ne sont pas gérées par défaut, nous devons les setWebViewPolicy:forWebViewer: baliser à l’aide IntuneMAMWebViewPolicyCurrentIdentityde .
Étant donné que l’affichage Web E contient des liens sur lesquels l’utilisateur peut cliquer et peut accéder à des URL arbitraires, nous devons également implémenter et le définir sur l’affichage IntuneMAMWebViewPolicyDelegate Web E à l’aide setWebViewPolicyDelegate:forWebViewer:de . Dans notre isExternalURL: implémentation, nous avons pu vérifier les URL entrantes à la case activée et voir si elles sont identiques à l’URL du document. Si elles ne correspondent pas, nous savons qu’il s’agit d’une URL externe et que vous pouvez renvoyer YES. S’ils correspondent, nous savons qu’il s’agit d’une URL interne et que nous pouvons renvoyer NO.
L’implémentation et l’appel de ces API signifient que le contenu géré par l’utilisateur ou l’organisation ne peut pas être divulgué aux vues web A, B et C. Cela signifie également que le contenu géré ne peut pas être divulgué vers les URL externes vers lesquelles l’utilisateur peut accéder dans E en cliquant sur des liens dans les documents. Le contenu géré est également protégé en empêchant les données des vues web D et E de fuir en dehors de l’application.