Les Proxys… Cet article s’attache à retranscrire plusieurs heures de dépannage pour utiliser les différents services/mécanismes Cloud proposés par Microsoft lorsqu’un proxy est utilisé à l’intérieur de l’entreprise. Parmi les services et mécanismes abordés, on retrouve :
- La jointure hybride à Azure Active Directory (Hybrid Azure AD Join)
- La jointure à Azure Active Directory (Azure AD Join)
- L’utilisation de Microsoft Intune dont :
- L’enregistrement (automatique via la fonctionnalité Azure AD/GPO ou manuel) dans Microsoft Intune
- La récupération des stratégies par Microsoft Intune
- Le téléchargement/déploiement d’applications universelles/modernes issues du Microsoft Store
- Le téléchargement/déploiement d’applications au format MSI via le canal MDM
- Le téléchargement/installation de l’extension Intune Management Extension (aussi appelé SideCar) utilisées pour installer des applications Win32 ou exécuter des scripts PowerShell
- Le téléchargement/déploiement d’applications Win32 via l’Intune Management Extension (aussi appelé SideCar).
- Le téléchargement/l’installation des mises à jour de sécurité ou des mises à niveau de Windows 10 via Windows Update/Windows Update for Business.
Avant d’aller plus loin dans cet article, je tenais à rappeler qu’il existe différentes architectures de proxy. Il n’est pas possible à ma connaissance d’utiliser un proxy qui requiert une authentification par utilisateur pour les services plus haut. Cet article s’attache à rendre possible la configuration pour des proxys où l’administrateur permet de configurer des exceptions d’authentification pour certaines URLs.
La configuration de l’environnement se détaille en deux grandes parties :
- Configuration des exceptions d’authentification pour certaines URLs sur le proxy en lui-même
- Configuration locale de la machine pour les différents services utilisés par la gestion moderne.
Configuration de l’infrastructure (serveur proxy)
Je ne rentrerais pas dans le détail de la configuration de l’infrastructure et du serveur proxy car les étapes dépendent des proxys utilisés. Néanmoins, cette partie s’attache à détailler les URLs connues (à date du 03-06-2019) pour les différents services :
Service |
Fonctionnalité |
Usage |
URLs à autoriser |
Service d’activation |
Windows 10 Subscription Activation |
Active Windows 10 avec une licence Microsoft 365 |
|
Azure Active Directory |
Azure AD Join |
Utiliser pour créer une relation de confiance/appartenance avec le tenant Azure AD |
|
Enregistrement dans Microsoft Intune (Automatique ou manuel) Récupération des stratégies Microsoft Intune Déploiement d’applications MSI (Canal MDM)
|
Gestion des périphériques Windows 10 |
Dans le détail, vous retrouvez des URLs plus précises (exemple : fei.msuc05.manage.microsoft.com) correspondant aux sous-services qui peuvent être contactés. Je vous recommande en lieu et place d’utiliser l’URL : *.manage.microsoft.com |
|
Microsoft Intune Management Extension (Win32 Apps & PowerShell Scripts) |
Installation de l’agent Intune Management Extension Déploiement d’applications Win32 via l’Intune Management Extension |
Déploiement d’application Win32 ou de scripts PowerShell |
Note : Delivery Optimization est utilisé par cette fonctionnalité et les URLs associées doivent être autorisées. |
Windows Update / Windows Update for Business |
p
|
Déploiement de mises à jour logicielles |
Note : Delivery Optimization est utilisé par cette fonctionnalité et les URLs associées doivent être autorisées. |
Utilisé par Windows Update for Business & Microsoft Intune Management Extension |
Utilisé pour le téléchargement des binaires et permettre du P2P |
|
|
Déploiement d’applications Microsoft Store |
|
|
Note : Microsoft publie une page de référence par version de Windows 10 (par exemple pour la version 1903). La liste des URLs est par expérience non exhaustive.
Configuration des machines Windows 10
Voici un tableau qui résume les différentes configurations à déployer localement pour permettre l’utilisation du service/mécanisme cité. Pour chaque service, vous retrouvez la configuration manuelle nécessaire lors de l’usage d’un proxy ou dans le meilleur des cas la configuration automatique recommandée par Microsoft. La dernière colonne décrit si le service effectue des requêtes directes de résolution de nom DNS externe. En effet, certains clients ne permettent pas la résolution de nom DNS externes par des machines internes (configuration qui requiert la résolution par une requête via le proxy de l’entreprise).
Service/Mécanisme |
Service sur lequel se repose le téléchargement |
Configuration manuelle nécessaire |
Configuration automatique recommandée |
Requête directe de résolution de nom DNS externe |
Log pour dépanner |
Azure Active Directory |
|||||
Jointure Azure AD |
N/A |
Proxy Utilisateur (Non détaillé dans cet article car déjà en place lorsqu’un proxy est présent) |
Utilisation de Web Proxy Auto-Discovery (WPAD) |
Non |
Observateur d’événements :
Utilisation de la commande dsregcmd |
Jointure Hybrid Azure AD |
N/A |
Proxy Machine |
Utilisation de Web Proxy Auto-Discovery (WPAD) |
Non |
Observateur d’événements :
Utilisation de la commande dsregcmd |
Microsoft Intune |
|||||
Enregistrement dans Microsoft Intune (Automatique ou manuel) |
Device Management Enrollment Service |
Proxy Machine |
Utilisation de Web Proxy Auto-Discovery (WPAD) |
Non |
Observateur d’événements :
Commande : mdmdiagnosticstool.exe -area DeviceEnrollement -cab c:\temp\ DeviceEnrollement.cab |
Récupération des stratégies Microsoft Intune |
N/A |
Proxy Machine |
Utilisation de Web Proxy Auto-Discovery (WPAD) |
Non |
Observateur d’événements :
Commande : mdmdiagnosticstool.exe -area DeviceProvisioning -cab c:\temp\ DeviceEnrollement.cab |
Déploiement d’applications Microsoft Store |
N/A |
Proxy Machine |
Utilisation de Web Proxy Auto-Discovery (WPAD) |
Non |
Observateur d’événements :
|
Déploiement d’applications MSI (Canal MDM) |
N/A |
Proxy Machine |
Utilisation de Web Proxy Auto-Discovery (WPAD) |
Non |
Observateur d’événements : Microsoft/Windows/DeviceManagement-Enterprise-Diagnostics-Provider |
Installation de l’agent Intune Management Extension |
N/A |
Proxy Machine |
Utilisation de Web Proxy Auto-Discovery (WPAD) |
Non |
Observateur d’événements : Microsoft/Windows/DeviceManagement-Enterprise-Diagnostics-Provider C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\IntuneManagementExtension.log |
Déploiement d’applications Win32 via l’Intune Management Extension |
Delivery Optimization (DO) 1 |
Proxy Machine |
Utilisation de Web Proxy Auto-Discovery (WPAD) |
Oui |
C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\IntuneManagementExtension.log |
Windows Update for Business / Microsoft Update |
|||||
Installation des mises à jour Windows 10 |
Delivery Optimization (DO) 1 |
Proxy Machine |
Utilisation de Web Proxy Auto-Discovery (WPAD) |
Oui |
Observateur d’événements : Microsoft/Windows/WindowsUpdateClient Get-WindowsUpdateLog
|
1 Les services qui font appel à Delivery Optimization sont soumis aux contraintes de ce dernier. Le proxy de l’entreprise doit supporter des requêtes de type byte-range requests et permettre la résolution de requêtes DNS pour des noms de domaine externes.
Note : La liste est bien entendu non exhaustive et correspond à des services que j’ai eu l’occasion d’essayer.
La méthode principalement recommandée par Microsoft est l’utilisation du protocole Web Proxy Auto-Discovery (WPAD) pour la découverte dynamique du proxy. C’est notamment la seule solution pour utiliser Windows Autopilot (non abordé dans cet article) dans des environnements proxyfiés.
Pour utiliser cette méthode, je vous renvoie vers Internet où des articles décrivent plutôt bien cette méthode.
L’objet de cet article est plutôt la mise en œuvre de la configuration manuelle et nous aborderons chacune des configurations.
Note : Je vous recommande de faire des tests sur une ou plusieurs machines avant de déployer globalement ces configurations.
Proxy Machine
Le proxy machine est la configuration la plus commune et la plus simple à réaliser. Il doit être configuré pour presque tous les mécanismes cités dans le tableau.
Pour afficher la configuration, la commande suivante doit être utilisée : netsh winhttp show proxy
Ce dernier se configure manuellement via la commande suivante :
netsh winhttp set proxy <proxy>:<port> "<Liste d’exclusion, séparée par des ";">"
Exemple : netsh winhttp set proxy proxy.corp.local:8282 "192.168.*;corp.local"
Pour importer la configuration réalisée sur Internet Explorer, vous pouvez exécuter la commande : netsh winhttp import proxy source=ie
Pour réinitialiser le proxy, vous pouvez utiliser la commande : netsh winhttp reset proxy
Si vous souhaitez opérer la configuration par GPO, vous pouvez utiliser les Group Policy Preference (GPP) en procédant à la création de la valeur de registre associée.
- Vous devez donc manuellement configurer le proxy sur une machine test
- Utiliser ensuite cette machine test pour récupérer la valeur de la clé :
- Emplacement : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections
- Nom : WinHttpSettings
- Type : Binary
- Ouvrez la console GPMC et procéder à la création d’une GPO. Nommez la GPO
- Editez la GPO et naviguez dans Computer Configuration – Preferences – Windows Settings – Registry.
- Choisissez New puis Registry Item.
- Dans le champ Action, choisissez Update puis cliquez sur le bouton avec les … à droite du chemin de la clé.
- Naviguez et sélectionnez la clé sur la machine de test. Ceci vous récupère le chemin, la ruche, la valeur, le type de valeur et la donnée binaire associée.
- Cliquez sur OK.
- Procédez ensuite au déploiement de la GPO et validez la configuration sur une autre machine de test via la commande netsh winhttp show proxy
Plus d’informations sur ce billet qui décrit bien la configuration : WinHTTP Proxy Settings deployed by GPO
Proxy du service BITS
Le proxy du service BITS est utilisé par les comptes de service pour effectuer des opérations de téléchargement. Les configurations dépendent du mécanisme ou de la fonctionnalité et du compte de service avec lequel s’exécute le service associé.
On retrouve donc la capacité de configurer le proxy BITS pour les comptes :
- LOCALSYSTEM
- NETWORKSERVICE
- LOCALSERVICE
Pour connaître les configurations à réaliser pour le mécanisme/la fonctionnalité choisi, vous pouvez vous référer au tableau.
Pour afficher la configuration, la commande suivante doit être utilisée :
bitsadmin /UTIL /GETIEPROXY <COMPTE DE SERVICE>
Ce dernier se configure manuellement via la commande suivante :
bitsadmin /Util /SetIEProxy <COMPTE DE SERVICE> MANUAL_PROXY <proxy>:<port> "<Liste d’exclusion, séparée par des ";">"
Exemples :
- bitsadmin /Util /SetIEProxy LOCALSYSTEM MANUAL_PROXY proxy.corp.local:8282 "192.168.*;corp.local"
- bitsadmin /Util /SetIEProxy NETWORKSERVICE MANUAL_PROXY proxy.corp.local:8282 "192.168.*;corp.local"
Pour réinitialiser le proxy, vous pouvez utiliser la commande :
bitsadmin /Util /SetIEProxy <COMPTE DE SERVICE> AUTODETECT
Exemples :
- bitsadmin /Util /SetIEProxy NETWORKSERVICE AUTODETECT
- bitsadmin /Util /SetIEProxy LOCALSYSTEM AUTODETECT
Plus d’informations sur la commande dans la documentation.
Si vous souhaitez opérer la configuration par GPO, vous pouvez aussi utiliser les Group Policy Preference (GPP) en procédant à la création de la valeur de registre associée.
- Vous devez donc manuellement configurer le proxy BITS pour les comptes souhaités sur une machine test
- Utiliser ensuite cette machine test pour récupérer la valeur de la clé :
Compte de service |
Emplacement de la clé |
Nom de la valeur |
Type de valeur |
LocalSystem |
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connection |
DefaultConnectionSettings |
Binary |
NetworkService |
HKEY_USERS\S-1-5-20\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections |
DefaultConnectionSettings |
Binary |
LocalService |
HKEY_USERS\S-1-5-19\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections |
DefaultConnectionSettings |
Binary |
- Ouvrez la console GPMC et procéder à la création d’une GPO. Nommez la GPO
- Editez la GPO et naviguez dans Computer Configuration – Preferences – Windows Settings – Registry.
- Choisissez New puis Registry Item.
- Dans le champ Action, choisissez Update puis cliquez sur le bouton avec les … à droite du chemin de la clé.
- Naviguez et sélectionnez la clé sur la machine de test. Ceci vous récupère le chemin, la ruche, la valeur, le type de valeur et la donnée binaire associée.
- Répétez l’opération à partir de l’étape 5 pour les comptes de service que vous ciblez en fonction des fonctionnalités.
- Cliquez sur OK.
- Procédez ensuite au déploiement de la GPO et validez la configuration sur une autre machine de test via la commande bitsadmin /UTIL /GETIEPROXY <COMPTE DE SERVICE>
Environnement sans résolution de nom DNS externe
Certains environnements ne permettent pas la résolution de nom DNS externes directement via des requêtes DNS. Le seul moyen de sortir sur Internet s’effectue via le proxy et via des requêtes TCP. Ce cas de figure pose des problèmes avec le déploiement d’applications Win32 via l’Intune Management Extension et les mises à jour logicielles via Microsoft Update / Windows Update for Business.
Vous devez donc configurer un redirecteur conditionnel sur votre infrastructure DNS interne pour permettre le déploiement des applications Win32 et le déploiement des mises à jour logicielles. Le redirecteur conditionnel (conditional forwarder) peut être :
- Complet pour l’ensemble des noms de domaine
- Limité aux noms de domaine spécifiés pour les fonctionnalités de déploiement d’applications Win32 via l’Intune Management Extension et les mises à jour logicielles via Microsoft Update / Windows Update for Business (voir mon tableau plus haut)
Dans un prochain article, je détaillerais comment dépanner et diagnostiquer chacune des fonctionnalités / Services.
Bonne Configuration !