Comment activer le bouclage et résoudre les problèmes liés à l’isolement réseau (applications Windows Runtime)

[ 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 explique comment activer le bouclage pour l’accès réseau et comment résoudre les problèmes liés à l’isolement réseau dans Windows 8 pour une application du Windows Store.

Ce que vous devez savoir

Technologies

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++.

Outil de diagnostic pour l’isolement réseau

Un outil de diagnostic intégré, CheckNetIsolation.exe, est proposé pour aider les développeurs à tester, diagnostiquer et résoudre les problèmes d’une application qui a besoin de fonctionnalités réseau. CheckNetIsolation.exe est un outil en ligne de commande qui prend ses paramètres d’entrée sur la ligne de commande. Il présente deux options principales :

  • LoopbackExempt
    Cette option permet d’afficher une liste d’applications installées auxquelles aucune restriction de bouclage IP n’est appliquée et qui sont autorisées à accéder aux adresses de bouclage. Elle autorise l’ajout de l’accès à des adresses de bouclage IP pour une application spécifique au moment du test.

  • Debug
    Cette option détermine les fonctionnalités activées qui sont utilisées par une application et les fonctionnalités activées qui ne le sont pas. Toute fonctionnalité activée qui n’est pas utilisée rend l’application moins sécurisée. Cette option peut également fournir des informations sur le trafic réseau qui a été supprimé, peut-être de façon non intentionnelle.

CheckNetIsolation.exe peut afficher un message d’aide avec des informations d’utilisation. Pour afficher l’aide, utilisez l’exemple de commande ci-dessous.

CheckNetIsolation -?

Pour certaines options de CheckNetIsolation.exe, le nom ou l’ID de l’application doit être fourni. Une fois une application déployée sur un ordinateur cible, le nom de l’application peut être trouvé dans le dossier c:\Program Files\Applications. Il s’agit du nom utilisé pour démarrer l’application. Il s’agit du nom de famille du package affiché lorsque Microsoft Visual Studio 2013 est utilisé et il représente le conteneur d’application. L’ID de l’application se trouve dans le Registre sous la clé suivante :

HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer

Activer le bouclage pour l’accès réseau

Les communications réseau utilisant une adresse de bouclage IP ne peuvent pas être utilisées pour la communication interprocessus (entre deux applications différentes) dans une application Windows Runtime, car elles sont limitées 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.

Un développeur peut vouloir utiliser le bouclage pour tester ou déboguer une application, même si cette fonctionnalité ne sera pas disponible pour les utilisateurs. Par exemple, une application peut vouloir télécharger des données auprès d’un service Web à partir d’une application Windows Runtime. À des fins de développement, le développeur souhaite tester l’application sur un ordinateur unique avec le service Web configuré localement sur 127.0.0.1.

Remarque  Le bouclage n’est autorisé qu’à des fins de développement. Son utilisation par une application Windows Runtime installée en dehors de Visual Studio n’est pas autorisée. De plus, une application Windows Runtime peut utiliser le bouclage IP uniquement comme adresse cible dans le cas d’une demande réseau de client. Ainsi, une application Windows Runtime qui utilise un objet DatagramSocket ou StreamSocketListener pour écouter une adresse de bouclage IP ne peut pas recevoir de paquets entrants.

 

Pour activer l’accès aux adresses de bouclage, un développeur doit configurer l’isolement réseau de manière à exempter l’application des restrictions de bouclage. Pour permettre la réception de paquets envoyés par un service réseau, les règles de pare-feu doivent également autoriser l’écouteur sur un port TCP ou UDP.

Les applications installées et exécutées dans Visual Studio sont automatiquement inscrites comme n’étant pas concernées par les restrictions de bouclage. Un développeur peut afficher la liste des applications exemptées en exécutant la commande suivante :

CheckNetIsolation.exe LoopbackExempt -s

Un développeur peut également utiliser l’outil CheckNetIsolation.exe pour ajouter manuellement des exemptions de bouclage pour une application.

Pour exempter une application des restrictions de bouclage, l’ID d’application pour le package doit être fourni. L’exemple de commande ci-dessous exempte une application des restrictions de bouclage.

CheckNetIsolation.exe LoopbackExempt –a –p=S-1-15-2-4125766819-3228448775-2449327860-2490758337-1264241865-3581724871-2122349299

Cette exemption peut également être supprimée pour une application spécifique. L’exemple de commande ci-dessous supprime l’exemption de bouclage pour la même application.

CheckNetIsolation.exe LoopbackExempt –d –p=S-1-15-2-4125766819-3228448775-2449327860-2490758337-1264241865-3581724871-2122349299

L’outil CheckNetIsolation.exe permet également à un développeur d’exempter une application de ces restrictions de bouclage sur la base du nom du conteneur d’application. L’exemple de commande ci-dessous exempte une application des restrictions de bouclage en fonction du nom du conteneur d’application :

CheckNetIsolation.exe LoopbackExempt –a –n=stocks_mw26f2swbd5nr

L’exemption des restrictions de bouclage peut également être supprimée pour une application écrite à l’aide du .NET Framework sur la base du nom du conteneur d’application. L’exemple de commande ci-dessous supprime l’exemption de bouclage pour la même application.

CheckNetIsolation.exe LoopbackExempt –d –n=stocks_mw26f2swbd5nr

L’exemption des restrictions de bouclage peut également être supprimée pour toutes les applications installées. L’exemple de commande ci-dessous supprime l’exemption de bouclage pour toutes les applications installées sur l’ordinateur local.

CheckNetIsolation.exe LoopbackExempt –c

Déboguer les problèmes d’isolement réseau

L’option de débogage est utilisée pour générer un rapport sur les fonctionnalités de débogage qui sont utilisées par une application.

L’option de débogage fournit un moyen d’identifier si une application utilise toutes les fonctionnalités qui sont déclarées dans le manifeste de l’application. Lorsque l’option de débogage est utilisée, le système reçoit l’instruction de suivre quelles fonctionnalités déclarées sont utilisées et lesquelles ne le sont pas.

Pour utiliser l’option de débogage, commencez par déployer l’application sur l’ordinateur cible et déterminez l’ID et le nom de l’application. Une fenêtre CMD doit ensuite être ouverte avec des privilèges élevés (Exécuter en tant qu’Administrateur). L’exemple de commande ci-dessous définit l’option de débogage pour un ID d’application spécifique.

CheckNetIsolation.exe Debug –p=S-1-15-2-4125766819-3228448775-2449327860-2490758337-1264241865-3581724871-2122349299

L’exemple de commande ci-dessous définit l’option de débogage pour une application sur la base du nom du conteneur d’application.

CheckNetIsolation.exe Debug –n=stocks_mw26f2swbd5nr

Une fois l’option de débogage définie, lancez l’application depuis une fenêtre CMD avec privilèges élevés. Vous devez exécuter et tester l’application pour les opérations qu’elle réalisera. Appuyez sur Ctrl+C une fois le test terminé mais lorsque l’application s’exécute encore. Un rapport récapitulatif s’affiche dans la fenêtre CMD qui répertorie le statut des fonctionnalités réseau avec une entrée pour chaque fonctionnalité indiquant si celle-ci a été déclarée et si elle est utilisée. Lorsque des fonctionnalités non nécessaires sont déclarées, le rapport récapitulatif indique qu’une fonctionnalité n’est pas utilisée (elle est indiquée sous l’appellation Not Used and Insecure). Un rapport de trafic détaillé répertorie également les adresses IP source et de destination utilisées pour l’accès réseau.

Le texte qui suit illustre la sortie pour une application contenant des fonctionnalités en trop.

Network Isolation Debug Session started.
Reproduce your scenario, then hit Ctrl-C when done.

Summary Report

Network Capabilities Status
----------------------------------------------------------------------
    InternetClient                Not Used and Insecure
    InternetClientServer          Not Used and Insecure
    PrivateNetworkClientServer    Used and Declared


Detailed Traffic Report
----------------------------------------------------------------------

    InternetClient                Not Used and Insecure

----------------------------------------------------------------------

    InternetClientServer          Not Used and Insecure

----------------------------------------------------------------------

    PrivateNetworkClientServer    Used and Declared

------------------------------------------------------------------
       10.195.58.77    10.195.58.78

Le texte suivant affiche la sortie pour une application contenant les fonctionnalités appropriées.

Network Isolation Debug Session started.
Reproduce your scenario, then hit Ctrl-C when done.

Summary Report

Network Capabilities Status
----------------------------------------------------------------------
    PrivateNetworkClientServer    Used and Declared


Detailed Traffic Report
----------------------------------------------------------------------

    PrivateNetworkClientServer    Used and Declared

------------------------------------------------------------------
       10.195.58.77    10.195.58.78

Rubriques associées

Ajout d’une prise en charge de réseau

Comment configurer les fonctionnalités d’isolement réseau

Débogage et résolution des problèmes liés aux connexions réseau