Comment définir les fonctionnalités réseau (HTML)
[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]
Cette rubrique présente le concept d’isolement réseau et explique comment définir les fonctionnalités réseau afin de contrôler entièrement l’accès réseau pour une application Windows Runtime. Les fonctionnalités réseau garantissent que les applications Windows Runtime ont accès aux ressources réseau requises et que les niveaux d’accès attendus sont fournis à l’utilisateur final. La bonne compréhension de cette rubrique vous permettra de garantir que votre application Windows Runtime peut se connecter aux ressources réseau de manière appropriée. L’isolement réseau permet de s’assurer que les applications Windows Runtime ont accès aux ressources réseau uniquement après avoir demandé de manière spécifique la fonctionnalité correcte.
Ce que vous devez savoir
Technologies
Windows.Networking.BackgroundTransfer
Active les opérations de téléchargement et de chargement avancées.
-
Permet les communications réseau à l’aide de sockets et de WebSockets.
-
Permet l’accès aux ressources Web à l’aide du protocole AtomPub.
-
Fournit une API cliente HTTP moderne pour la connexion aux services Web.
-
Gère les flux de syndication.
-
Permet la connexion aux services Web à l’aide d’un client Web (C#/VB uniquement).
Prérequis
- Les informations suivantes concernent les applications Windows Runtime connectées ou réseau qui doivent établir des connexions réseau. Cela a un impact sur les applications écrites en JavaScript. Cela influe aussi sur les applications écrites dans .NET Framework 4.5 en C#, VB.NET et C++.
Liste de vérification pour l’isolement réseau
Utilisez la liste de vérification suivante afin de vous assurer que l’isolement réseau est configuré pour votre application.
- Déterminez le sens de l’accès réseau dont votre application réseau a besoin : demandes sortantes à l’initiative du client ou demandes entrantes non sollicitées ou combinaison de ces deux types de demandes.
- Déterminez le type de ressources réseau avec lesquelles l’application communiquera. Une application peut avoir besoin de communiquer avec des ressources approuvées sur un réseau domestique ou d’entreprise. Une application peut avoir besoin de communiquer avec des ressources sur Internet. Une application peut avoir besoin d’accéder à ces deux types de ressources réseau.
- Configurez les fonctionnalités d’isolement réseau minimales requises dans le manifeste de l’application. Ces fonctionnalités sont en principe configurées avec Microsoft Visual Studio 2013 au moment du développement de l’application.
- Déployez et exécutez votre application afin de la tester à l’aide des outils d’isolement réseau fournis pour la résolution des problèmes.
Informations supplémentaires sur l’isolement réseau
Les applications n’ont pas toutes besoin d’accéder au réseau. Néanmoins, pour celles qui en ont besoin, Windows 8.1 propose différents niveaux d’accès qui peuvent être activés en sélectionnant les fonctionnalités appropriées.
L’isolement réseau vous permet de définir la portée de l’accès réseau requis pour chaque application. Les demandes d’accès réseau sont divisées en deux catégories :
Demandes sortantes à l’initiative du client
L’application joue le rôle du client et initie l’accès réseau en envoyant une demande réseau initiale à un ordinateur distant, généralement un serveur. L’application cliente envoie une ou plusieurs demandes au serveur et le serveur renvoie une ou plusieurs réponses à l’application cliente. L’ensemble du trafic allant de l’application cliente Web vers un serveur Web rentre dans cette catégorie.Demandes non sollicitées entrantes
L’application joue le rôle d’un serveur réseau et écoute les demandes réseau entrantes provenant d’un ordinateur distant. L’ordinateur distant initie l’accès réseau en envoyant une demande initiale à l’application, qui joue le rôle de serveur. L’ordinateur distant envoie une ou plusieurs demandes à l’application qui renvoie une ou plusieurs réponses à l’ordinateur distant. Une application qui fonctionne comme serveur multimédia entre dans cette catégorie.
Une application dont la portée n’est pas définie ne peut pas accéder au type spécifique de connexion réseau. La possibilité de définir et d’appliquer l’isolement réseau garantit que si une application est compromise, elle ne pourra accéder qu’aux réseaux auxquels l’accès lui a été expressément accordé. Cela réduit considérablement la portée de l’impact sur d’autres applications et sur le système.
L’isolement réseau affecte toutes les méthodes et propriétés des espaces de noms suivants qui essaient d’accéder au réseau
- Windows.Networking.BackgroundTransfer
- Windows.Networking.Sockets
- Windows.Web.AtomPub
- Windows.Web.Http
- Windows.Web.Syndication
- System.Net.Http
Windows applique activement l’isolement réseau. Un appel à une méthode ou tout accès à une propriété de ces espaces de noms qui conduit à un accès réseau peut échouer en raison de l’isolement réseau si la fonctionnalité réseau appropriée n’a pas été activée. Les classes des autres espaces de noms qui appellent des méthodes ou accèdent à des propriétés des espaces de noms ci-dessus sont également affectées.
Les fonctionnalités réseau d’une application sont configurées dans le manifeste de l’application à la création de cette dernière. Les fonctionnalités réseau sont généralement ajoutées à l’aide de Visual Studio lors du développement de l’application. Elles peuvent être définies manuellement dans le fichier manifeste de l’application à l’aide d’un éditeur de texte.
Isolement réseau et fonctionnalités
L’isolement réseau fait partie du modèle de sécurité des applications utilisé par Windows 8. Windows recherche activement les limites du réseau et applique les restrictions d’accès réseau pour l’isolement réseau. Le système recherche les limites du réseau suivantes :
Réseau d’entreprise ou domestique
Il s’agit de votre réseau local domestique ou d’entreprise. Il est composé des sous-réseaux locaux auxquels l’ordinateur est connecté et des proxies locaux configurés comme faisant partie du réseau. Les proxies Internet sont exclus de cette limite. Dans un environnement de domaine, les plages définies par les sites Active Directory et les sous-réseaux sont incluses.Internet
Internet, à l’exclusion du réseau domestique ou d’entreprise. Il est composé de tout proxy fournissant l’accès à Internet. Tout accès réseau ne faisant pas partie de votre réseau domestique/d’entreprise est considéré comme étant Internet.
Windows 8 classe tous les hôtes réseau distants dans l’une de ces deux catégories. Une bonne compréhension de la direction et de la catégorisation applicables des hôtes avec lesquels votre application communiquera vous permettra de choisir les fonctionnalités les mieux adaptées à votre application.
Certaines fonctionnalités liées à la mise en réseau doivent être activées dans le manifeste de l’application pour que l’accès réseau soit accordé à l’application. Ces fonctionnalités sont définies en tant qu’identificateurs de sécurité (SID), qui sont utilisés par Windows 8 pour appliquer les limites.
Les fonctionnalités d’isolement réseau suivantes sont définies :
Terme utilisé dans Visual Studio | Description |
---|---|
Internet (client) |
Fournit un accès sortant à Internet et aux réseaux dans les lieux publics, comme les aéroports et les cafés. La plupart des applications qui nécessitent un accès Internet doivent utiliser cette fonctionnalité. Il s’agit de la fonctionnalité internetClient dans le manifeste de l’application. |
Internet (client et serveur) |
Fournit à l’application un accès réseau entrant et sortant depuis Internet et les réseaux mis à disposition dans les lieux publics, comme les aéroports et les cafés. Il s’agit de la fonctionnalité internetClientServer dans le manifeste de l’application. |
Réseaux privés (client et serveur) |
Fournit à l’application un accès réseau entrant et sortant dans les lieux approuvés par l’utilisateur, comme le domicile ou l’entreprise. Il s’agit de la fonctionnalité privateNetworkClientServer dans le manifeste de l’application. |
Remarque
Les applications Windows Phone Store proposent une fonctionnalité réseau unique qui autorise tout l’accès réseau pour l’application. La fonctionnalité Internet (client et serveur) autorise l’accès complet au réseau pour les opérations clientes (accès sortant) et les opérations serveur (accès entrant). Toutefois, si l’une des fonctionnalités réseau (internetClient, internetClientServer ou privateNetworkClientServer) est définie dans le fichier Package.appxmanifest, cela permet à une application Windows Phone Store d’avoir un accès complet au réseau pour les opérations clientes et serveur au moment de l’exécution.
Pendant que vous développez et testez votre application Windows Phone Store dans Visual Studio, vous obtenez la capacité de mise en réseau (Internet (client et serveur)) quand vous exécutez l’application, même si vous n’avez pas indiqué cette capacité dans le fichier manifeste de l’application. Toutefois, quand vous publiez votre application, celle-ci n’obtient pas automatiquement la capacité de mise en réseau. Veillez à sélectionner la fonctionnalité Internet (client et serveur) dans la page Capacités du Concepteur de manifeste si votre application nécessite une connectivité réseau.
Certaines autres fonctionnalités devront peut-être être activées dans le manifeste de l’application pour l’accès réseau. Ces fonctionnalités sont définies en tant que GUID et ces derniers sont utilisés pour appliquer les limites.
Terme utilisé dans Visual Studio | Description |
---|---|
Authentification en entreprise |
Permet à une application de se connecter aux ressources réseau qui nécessitent des informations d’identification de domaine. Un administrateur de domaine devra activer cette fonctionnalité pour toutes les applications. En guise d’exemple, on pourrait citer une application qui extrait des données à partir de serveurs Sharepoint sur un intranet. Avec cette fonctionnalité, vos informations d’identification peuvent être utilisées pour accéder aux ressources réseau sur un réseau nécessitant des informations d’identification. Une application disposant de cette fonctionnalité peut emprunter votre identité sur le réseau. Cette fonctionnalité n’est pas obligatoire pour autoriser une application à accéder à Internet par le biais d’un proxy d’authentification. Il s’agit de la fonctionnalité enterpriseAuthentication dans le manifeste de l’application. |
Proximité |
Requis pour la communication de proximité en champ proche avec des périphériques à proximité immédiate de l’ordinateur. La proximité en champ proche peut être utilisée pour envoyer des fichiers ou communiquer avec une application sur l’appareil proche. Cette fonctionnalité permet à une application d’accéder au réseau pour se connecter à un périphérique à proximité immédiate. L’utilisateur doit confirmer l’envoi d’une invitation ou l’acceptation d’une invitation. Il s’agit de la fonctionnalité proximity dans le manifeste de l’application. |
Certificats utilisateur partagés |
Cette fonctionnalité permet à une application d’accéder aux certificats logiciels et matériels, tels que les certificats de carte à puce. Lorsque cette fonctionnalité est appelée au moment de l’exécution, l’utilisateur doit entreprendre une action, comme insérer une carte ou sélectionner un certificat. Avec cette fonctionnalité, vos certificats matériels et logiciels ou une carte à puce sont utilisés pour l’identification dans l’application. Cette fonctionnalité peut être utilisée par votre employeur, votre banque ou les services publics pour l’identification. Il s’agit de la fonctionnalité sharedUserCertificates dans le manifeste de l’application. |
Des fonctionnalités de périphérique ayant trait à son accès devront peut-être également être activées dans le manifeste de l’application pour que l’accès réseau fonctionne comme prévu. Ces fonctionnalités de périphérique sont définies sous la forme de GUID qui sont utilisés par le système pour appliquer des limites.
Terme utilisé dans Visual Studio | Description |
---|---|
Webcam |
Fournit l’accès au flux vidéo de la webcam. Cette fonctionnalité est nécessaire si l’application doit partager le flux vidéo d’une webcam avec un ordinateur distant sur le réseau. Il s’agit de la fonctionnalité webcam dans le manifeste de l’application. |
Il est important que vous compreniez quelles fonctionnalités sont requises pour votre application. Le tableau ci-dessous répertorie différentes opérations courantes et les fonctionnalités nécessaires.
Fonctionnalités requises
Application | Description |
---|---|
Un client Web qui ne consomme que du contenu, tel que les applications qui chargent du HTML à partir d’un site Web et celles qui utilisent la syndication RSS ou le protocole AtomPub. |
internetClient |
Une application de réseau social, telle qu’une application qui consomme et produit du contenu sur un site de réseau social. |
internetClient |
Une application d’égal à égal (p2p), telle qu’une application qui permet d’accéder à une messagerie instantanée ou à une application de conversation. |
internetClientServer |
Une application de partage dans un réseau domestique ou d’entreprise, telle qu’une application qui accède à du contenu multimédia ou NAS (Network Attached Storage). |
privateNetworkClientServer |
Une application cœur de métier à domicile ou dans l’entreprise, telle qu’une application qui fait office de client HTTP ou qui utilise des sockets ou des WebSockets. |
privateNetworkClientServer |
Une application de productivité comportant des fonctionnalités réseau à domicile ou dans l’entreprise, telle qu’une application de productivité qui accèdent à des fonctionnalités réseau. |
privateNetworkClientServer |
Une application ludique qui requiert un accès réseau. |
internetClient |
Une application ludique internet multijoueur qui effectue des mises en relation. |
internetClient |
Un jeu multijoueur avec des personnes très proches les unes des autres. |
proximity |
Une application ludique multijoueur qui découvre les joueurs au moyen d’une découverte multidiffusion ou qui est découverte à l’aide de la multidiffusion. |
internetClientServer |
Une application multijoueur qui utilise le réseau domestique ou d’entreprise, telle qu’une application ludique multijoueur qui découvre les joueurs au moyen d’une découverte multidiffusion ou qui est découverte à l’aide de la multidiffusion. |
privateNetworkClientServer |
Une application de diffusion, telle qu’une application qui reçoit des émissions de radio par Internet. |
internetClient |
Isolement réseau et limites du réseau
Pour pouvoir appliquer l’isolement réseau, Windows 8.1 a besoin de découvrir et de déterminer les limites du réseau. Windows 8.1 effectue cette découverte de manière dynamique. Le système sonde le réseau afin de découvrir les adresses sur les interfaces réseau de l’ordinateur local et toutes les adresses auxquelles ces interfaces sont liées, de manière à déterminer la présence de passerelles ou d’adresses IP qui jouent le rôle de point d’accès à et depuis Internet. Les éléments suivants seront découverts :
- les adresses locales et les sous-réseaux utilisés par une réseau domestique ou d’entreprise,
- les passerelles Internet et proxies vers Internet.
Les adresses IPv4 locales et les sous-réseaux généralement découverts au domicile ou dans l’entreprise inclus les plages d’adresses IPv4 privées suivantes :
- 10.0.0.0-10.255.255.255
- 172.16.0.0-172.31.255.255
- 192.168.0.0-192.168.255.255
Les adresses IPv6 locales et les sous-réseaux généralement découverts au domicile ou dans l’entreprise inclus les plages d’adresses IPv6 privées suivantes :
- Le sous-réseau IPv6 local associé à l’adresse IPV6.
- Les adresses IPv6 locales de liaison (fe80::/10).
- Les adresses de tunnel IPv6 utilisées pour les technologies de transition (6to4 et ISATAP, par exemple, à l’exclusion de la plage d’adresses IPv6 utilisée par Teredo (2001::/32).
Lorsqu’un utilisateur se connecte pour la première fois à un réseau, à un réseau domestique sans fil (Wi-Fi), il a la possibilité d’activer le partage sur ce réseau. Cette décision est utilisée par Windows pour classer le réseau comme approuvé ou non approuvé.
Un point de terminaison réseau est considéré comme faisant partie du réseau domestique/d’entreprise si l’une des conditions suivantes est remplie :
- Il fait partie du sous-réseau local d’un réseau approuvé tel qu’indiqué par l’utilisateur. Par exemple, les utilisateurs domestiques marquent généralement leur réseau domestique comme approuvé. Les ordinateurs du sous-réseau local seront désignés comme appartenant au réseau domestique/d’entreprise.
- Un ordinateur fait partie d’un réseau et est authentifié auprès d’un contrôleur de domaine. Les points de terminaison réseau sur le sous-réseau local sont considérés comme privés. Les points de terminaison réseau qui figurent dans l’espace d’adressage intranet sont considérés comme privés.
- L’ordinateur est configuré pour DirectAccess et le point de terminaison réseau fait partie de l’espace d’adressage intranet.
L’espace d’adressage intranet est composé de sites et de sous-réseaux Active Directory configurés et il est configuré pour l’isolement réseau Windows de manière spécifique à l’aide de la stratégie de groupe. Les ordinateurs joints à un domaine interrogent Active Directory et la stratégie de groupe afin de connaître ces informations.
Tous les autres points de terminaison réseau qui ne remplissent pas les critères mentionnés ci-dessus sont considérés comme des points de terminaison réseau sur Internet.
Pour plus d’informations sur les contrôles Administrateur pour l’isolement réseau, voir Isolement d’applications du Windows Store sur votre réseau
Isolement réseau et son application
Lorsqu’une application tente d’effectuer une demande sortante à l’initiative du client (par exemple une demande Web HTTP à www.contoso.com), le système vérifie les fonctionnalités activées pour l’application dans son manifeste et prend la décision d’autoriser ou de bloquer cette demande sortante vers l’hôte spécifique (par exemple www.contoso.com). Si la demande sortante à l’initiative du client est autorisée, les réponses du serveur aux demandes sortantes à l’initiative du client sont également autorisées.
Lorsqu’une application essaie d’écouter les demandes entrantes non sollicitées, le système vérifie dans le manifeste de l’application quelles fonctionnalités sont définies et décide d’autoriser ou de bloquer la demande non sollicitée entrante provenant d’une adresse IP distante. Pour qu’une application soit autorisée à écouter les demandes non sollicitées entrantes, la fonctionnalité InterentClientServer ou privateNetworkClientServer doit être activée pour cette application. Si au moins l’une de ces fonctionnalités est activée, l’application est autorisée à écouter sur un ou plusieurs ports les demandes non sollicitées entrantes sur le type de réseau spécifié. Chaque tentative de demande non sollicitée entrante est vérifiée afin de déterminer si elle est autorisée pour cette adresse IP de source distante spécifique. Windows détermine si la demande non sollicitée entrante provient d’une adresse IP domestique/d’entreprise ou d’Internet, puis autorise ou refuse l’accès en fonction des fonctionnalités activées et de l’adresse distante spécifique.
L’isolement réseau est entièrement intégré avec les composants de proximité. Lorsque la fonctionnalité de proximité est activée dans le manifeste d’une application, aucune autre fonctionnalité réseau supplémentaire n’a besoin d’être activée L’utilisateur doit toujours confirmer l’envoi d’une invitation ou l’acceptation d’une invitation de la part du périphérique de proximité afin d’autoriser la communication entre le périphérique de proximité et l’ordinateur local.
Isolement réseau et bouclage
Les adresses de bouclage IP et l’interface de bouclage sont traditionnellement utilisées pour la communication entre différentes applications sur le réseau, de même que pour la communication interprocessus au sein de plusieurs applications sur un ordinateur local.
Les communications réseau utilisant une adresse de bouclage IP ne peuvent normalement pas être utilisées pour la communication interprocessus (entre deux applications différentes), car elle est limitée par l’isolement réseau. La communication réseau utilisant une adresse de bouclage IP est autorisée dans une application au sein du même processus à des fins de communication.
Pour plus d’informations sur l’activation de l’accès développeur aux adresses de bouclage IP entre des applications à des fins de débogage, voir Comment activer le bouclage et déboguer l’isolement réseau.
Transfert en arrière-plan et notifications toast
Les classes BackgroundDownloader et BackgroundUploader dans l’espace de noms Windows.Networking.BackgroundTransfer dans Windows 8.1, Windows Phone 8.1 et Windows Server 2012 R2 prennent en charge des options permettant à l’utilisateur de recevoir des notifications par vignette et toast quand un transfert s’est correctement déroulé ou a échoué.
Pour qu’une application utilisant Windows.Networking.BackgroundTransfersoit capable de communiquer via une notification toast, vous devez déclarer qu’elle est compatible toast dans le fichier manifeste de l’application. Ce paramètre ne figure pas sous la section Fonctionnalités avec les paramètres d’isolement réseau. Le paramètre Compatible toast est situé sous la section Notifications de l’onglet Application. Affectez à l’option Compatible toast la valeur Oui pour que l’application puisse recevoir les notifications toast.
Si Compatible toast n’est pas activé dans le manifeste de l’application, tous les paramètres de toast dans l’espace de noms Windows.Networking.BackgroundTransfer sont ignorés sans avertissement et aucune notification toast n’est reçue par l’application.
Remarque Un utilisateur peut désactiver ou activer manuellement les notifications toast pour votre application à tout moment.
Pour plus d’informations sur les notifications toast, voir Envoi de notifications toast et Comment s’abonner aux notifications toast.
Rubriques associées
Autres ressources
Déclarations des fonctionnalités d’application
Manifeste du package de l’application
Comment activer le bouclage et déboguer l’isolement réseau
Comment s’abonner aux notifications toast
Débogage et résolution des problèmes liés aux connexions réseau
Référence
Windows.Networking.BackgroundTransfer
Exemples