Guide pratique pour configurer les paramètres WebDAV à l’aide d’AppCmd
par Robert McMurray
Introduction
Microsoft a publié un nouveau module d’extension WebDAV entièrement réécrit pour Internet Information Services 7.0 (IIS 7.0) sur Windows Server® 2008. Ce nouveau module d’extension WebDAV a incorporé de nombreuses nouvelles fonctionnalités qui permettent aux auteurs web de publier du contenu plus facilement qu’auparavant, et il offre aux administrateurs web davantage d’options de sécurité et de configuration. Microsoft a publié une mise à jour du module d’extension WebDAV pour Windows Server® 2008 qui fournit la prise en charge des verrous partagés et exclusifs afin d’empêcher les mises à jour perdues en raison de remplacements.
Ce document vous guide tout au long de l’utilisation du nouvel utilitaire AppCmd.exe dans IIS 7.0 pour configurer les paramètres WebDAV à partir d’un script de ligne de commande ou de commandes par lot.
Prérequis
Les éléments suivants sont nécessaires pour effectuer les procédures décrites dans cet article :
IIS 7.0 doit être installé sur votre serveur, et les éléments suivants doivent être configurés :
- Le site web par défaut créé par l’installation IIS 7.0 doit toujours exister.
Le nouveau module d’extension WebDAV doit être installé. Pour plus d’informations sur l’installation du nouveau module WebDAV, consultez le document suivant :
Remarque
Vous devez vous assurer que vous suivez les étapes décrites dans ce document à l’aide des autorisations d’administration complètes. Pour ce faire, utilisez l'une des deux méthodes suivantes :
- Connectez-vous à votre ordinateur à l’aide du compte « administrateur » local.
- Si vous êtes connecté à l’aide d’un compte disposant d’autorisations d’administration qui n’est pas le compte « administrateur » local, ouvrez le gestionnaire IIS et toutes les sessions d’invite de commandes à l’aide de l’option « Exécuter en tant qu’administrateur ».
La condition ci-dessus est requise, car le composant de sécurité Contrôle de compte d’utilisateur (UAC) dans Windows Server 2008 empêche l’accès administratif aux paramètres de configuration d’IIS 7.0. Pour plus d'informations sur le Contrôle de compte d'utilisateur, consultez la documentation suivante :
Remarque
Les paramètres de filtrage des demandes peuvent bloquer plusieurs types de fichiers à partir de la création WebDAV par défaut. Lorsque vous configurez WebDAV à l’aide de l’interface utilisateur du gestionnaire IIS, les paramètres de filtrage des demandes sont automatiquement mis à jour pour débloquer la création WebDAV. Toutefois, si vous choisissez de configurer WebDAV d’une autre manière qu’à l’aide de l’interface utilisateur du gestionnaire IIS, consultez la procédure pas à pas configurer WebDAV avec le filtrage des demandes.
Concepts AppCmd de base
AppCmd.exe est un nouvel outil de ligne de commande pour administrer IIS 7.0. À bien des égards, considérez-le comme un remplacement du script adsutil.vbs des versions d’IIS précédentes. AppCmd.exe prend en charge un large éventail de commutateurs de commandes pour différents objets, ce qui facilite l’écriture de scripts dans les fichiers de commandes pour configurer une multitude de paramètres IIS. (Remarque : l’utilitaire AppCmd.exe se trouve dans le %WinDir%\System32\InetSrv folder
.)
La syntaxe générale pour AppCmd.exe est la suivante :
AppCmd (command) (object-type) <identifier> </parameter1:value1 ...>
AppCmd.exe fournit également une prise en charge complète de l’aide en ligne de commande, accessible à l’aide de l’une des méthodes suivantes :
AppCmd /?
AppCmd (object) /?
AppCmd (command) (object) /?
La liste des commandes dépend de l’objet et les objets suivants sont pris en charge :
Object | Description |
---|---|
SITE | Administration de sites virtuels |
APP | Administration des applications |
VDIR | Administration des répertoires virtuels |
APPPOOL | Administration des pools d’applications |
CONFIG | Administration des sections de configuration générale |
WP | Administration des processus de travail |
DEMANDER | Administration des requêtes HTTP |
MODULE | Administration des modules serveur |
BACKUP | Administration des sauvegardes de configuration du serveur |
TRACE | Utilisation des journaux de suivi des demandes ayant échoué |
Par exemple, vous pouvez répertorier les sites web configurés sur votre serveur à l’aide de l’objet SITE avec la syntaxe suivante :
AppCmd list site
De même, vous pouvez répertorier les pools d’applications configurés sur votre serveur à l’aide de l’objet APPPOOL avec la syntaxe suivante :
AppCmd list apppool
AppCmd peut également être utilisé pour définir les valeurs de différents paramètres de configuration à l’aide de l’objet SITE, et vous pouvez utiliser la commande suivante pour répertorier les paramètres disponibles pour votre site web par défaut à l’aide de la syntaxe suivante :
AppCmd set site "Default Web Site" /?
Pour répertorier les paramètres de configuration d’un chemin d’accès spécifique, vous utilisez l’objet CONFIG comme dans l’exemple suivant :
AppCmd list config "Default Web Site/" /section:system.webServer/security/authentication/windowsAuthentication
L’objet CONFIG peut également être utilisé pour définir les paramètres de configuration, comme illustré dans l’exemple suivant :
AppCmd set config "Default Web Site/" /section:system.webServer/security/authentication/windowsAuthentication /enabled:true
Vous pouvez également contrôler l’emplacement où AppCmd écrit les paramètres que vous spécifiez à l’aide du paramètre de ligne de commande « /commit: ». Par exemple, plus loin dans ce document, nous examinerons la commande suivante qui active WebDAV sur votre site web par défaut :
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /enabled:true /commit:apphost
Remarque
Cette commande active WebDAV pour le site web par défaut et écrit ce paramètre dans le fichier ApplicationHost.config.
AppCmd est un utilitaire extrêmement puissant, et objectivement, il y a trop d’aspects possibles pour tous les aborder dans un espace si restreint. Pour plus d’informations sur la prise en main de AppCmd.exe, consultez l’article suivant sur le site web IIS.NET :
Cela dit, nous passons à la configuration de WebDAV sur votre serveur.
Prise en main de WebDAV
WebDAV installe une extension au schéma par défaut pour les paramètres IIS, ce qui permet à AppCmd de fonctionner avec WebDAV sans aucune modification particulière. Le nouveau module WebDAV stocke tous ses paramètres configurables dans le fichier ApplicationHost.config et utilise les sections suivantes :
- system.webServer/webdav/authoring
- system.webServer/webdav/authoringRules
Les paramètres de « création » sont configurables uniquement à la racine d’un site web, tandis que les paramètres « authoringRules » peuvent être configurés par URL. Pour voir quels paramètres ont été configurés pour chacune de ces sections pour un chemin donné, vous pouvez utiliser AppCmd comme indiqué dans les exemples suivants :
AppCmd list config "Default Web Site/" /section:system.webServer/webdav/authoring
AppCmd list config "Default Web Site/" /section:system.webServer/webdav/authoringRules
Activation ou désactivation de WebDAV pour un site web
Naturellement, la commande la plus simple et utile pour WebDAV consiste à activer ou désactiver WebDAV pour un site. La syntaxe pour l’activation de WebDAV sur un site web suit l’exemple ci-dessous :
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /enabled:true /commit:apphost
Dans cet exemple, nous définissons l’attribut « enabled » sur « true » pour la section « création » WebDAV sur le site web par défaut et forçons l’écriture de cette modification dans le fichier ApplicationHost.config. À l’inverse, vous pouvez désactiver WebDAV en définissant cette même valeur sur « false », comme illustré dans l’exemple suivant :
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /enabled:false /commit:apphost
Exiger SSL pour la création WebDAV pour un site web
WebDAV peut être configuré afin qu’il exige un SSL pour toutes les opérations ceci afin de protéger les informations que vous transférez. Pour ce faire, définissez l’attribut « requireSsl » sur « true » pour la section « création » de WebDAV à l’aide d’une syntaxe similaire à celle-ci :
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /requireSsl:true /commit:apphost
Cette fonctionnalité peut être désactivée en définissant l’attribut « requireSsl » sur « false » à l’aide de la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /requireSsl:false /commit:apphost
Autorisation d’accès aux fichiers masqués pour un site web
Pour des raisons de sécurité, vous pouvez décider si les fichiers marqués comme masqués sur le serveur figurent dans les listes de fichiers. Pour ce faire, définissez l’attribut « allowHiddenFiles » sur « true » sur l’élément « fileSystem » de la section « authoring » à l’aide de la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /fileSystem.allowHiddenFiles:true /commit:apphost
Pour désactiver la liste des fichiers masqués, définissez l’attribut « allowHiddenFiles » sur « false » à l’aide de la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /fileSystem.allowHiddenFiles:false /commit:apphost
Configuration des paramètres de compatibilité WebDAV pour un site web
Pour être compatible avec les versions précédentes de WebDAV pour IIS, certaines fonctionnalités facultatives figurent dans les paramètres de compatibilité. Actuellement, la liste des options est la suivante :
Paramètre de compatibilité | Description |
---|---|
None | Spécifie qu’aucune fonctionnalité de compatibilité ne doit être prise en charge. |
MsAuthorVia | Spécifie que l’en-tête « MS-Author-Via » doit être retourné. (Remarque : Plusieurs outils de création web de Microsoft utilisent cet en-tête.) |
MultiProp | Spécifie que plusieurs instructions <prop> doivent être autorisées dans les demandes client. |
CompactXml | Définit si le code XML retourné par le module WebDAV met fin à chaque ligne avec une séquence CRLF. |
IsHidden | Spécifie que la propriété pseudo-live IsHidden doit être prise en charge. |
IsCollection | Spécifie que la propriété Pseudo-live IsCollection doit être prise en charge. |
Pour définir l’une de ces fonctionnalités, vous devez définir la valeur de l’attribut « compatFlags » dans la section « création » à l’aide de la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /compatFlags:"MsAuthorVia,CompactXml" /commit:apphost
Notez que les paramètres de compatibilité sont spécifiés en tant qu’ensemble d’indicateurs séparés par des virgules.
Utilisation des règles de création WebDAV
Le nouveau module WebDAV utilise des règles de création, ce qui vous permet de configurer la façon dont WebDAV répond à la demande de création par des clients. Par exemple, l’accès anonyme à votre site web peut être activé pour les utilisateurs Internet, mais votre accès à la création web doit être limité à un certain ensemble d’utilisateurs. À l’aide de règles de création, vous pouvez définir quels utilisateurs ont accès aux différentes parties du contenu de votre site web.
Configuration des valeurs par défaut de la règle de création
Spécifier si les fichiers non mappés MIME sont autorisés
Pour des raisons de sécurité, IIS n’autorise par défaut pas l’accès aux fichiers qui ne sont pas répertoriés dans le mappage MIME. Les auteurs web peuvent toutefois avoir besoin de travailler avec certains types de fichiers sur un serveur alors que ces types ne sont pas répertoriés dans le mappage MIME. (Par exemple : fichiers d’inclusion, fichiers de données, etc.) Pour activer l’accès aux fichiers non mappés MIME, vous devez définir l’attribut « allowNonMimeMapFiles » sur « true » dans la section « authoringRules ». L’exemple de syntaxe suivant illustre comment procéder :
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /allowNonMimeMapFiles:true /commit:apphost
Cette fonctionnalité peut être désactivée en définissant l’attribut « allowNonMimeMapFiles » sur « false » à l’aide de la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /allowNonMimeMapFiles:false /commit:apphost
Spécifier le type MIME par défaut
Lorsque vous utilisez des types de fichiers qui ne figurent pas dans la liste MIME, IIS doit toute de même retourner un type MIME aux clients. Par défaut, cette valeur est définie sur « application/octet-stream », ce qui signifie que le fichier doit être traité comme un fichier binaire brut, quel que soit le type de contenu. Pour définir le type MIME par défaut pour les fichiers non mappés MIME sur un type de fichier texte, vous pouvez utiliser la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /defaultMimeType:"text/plain" /commit:apphost
Pour réinitialiser le type MIME par défaut, utilisez la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /defaultMimeType:"application/octet-stream" /commit:apphost
Gestion des règles de création
Les règles de création sont conservées dans une collection, et chaque règle peut contenir les attributs suivants :
Attribut | Description |
---|---|
path | Spécifie le type de contenu pour la règle. (Voir ci-dessous) |
users | Spécifie le nom d’utilisateur de la règle. (Voir ci-dessous) |
rôles | Spécifie un groupe/rôle pour la règle. |
accès | Spécifie le type d’accès pour la règle. (Voir ci-dessous) |
Remarques :
L’attribut « path » est utilisé pour spécifier le type de contenu pour la règle de création. Cela peut être destiné à des types de contenu spécifiques tels que « *.aspx », « *.htm », etc., ou vous pouvez utiliser « * » pour indiquer que la règle de création s’applique à l’ensemble du contenu.
Les attributs « roles » et « users » doivent être déclarés exclusifs l’un par rapport à l’autre. Autrement dit, une règle de création doit être destinée soit aux « utilisateurs », soit aux « rôles », mais pas aux deux.
Les valeurs spéciales suivantes pour l’attribut « users » sont définies :
Valeur Description * Tous les utilisateurs ? Utilisateurs anonymes Remarque
Les utilisateurs anonymes ne peuvent pas lire/écrire du contenu ; ce paramètre a pour but de restreindre les types de fichiers pour les requêtes de propriété anonymes.
Les valeurs suivantes sont définies pour les types d’accès :
Valeur Description Aucun Spécifie que l’accès n’est pas autorisé pour le type de contenu Lire Spécifie qu’il s’agit de l’accès en lecture pour le type de contenu Écrire Spécifie qu’il s’agit de l’accès en écriture pour le type de contenu Source Spécifie qu’il s’agit de l’accès au code source pour le type de contenu
Ajout d’une règle de création
Pour ajouter une règle de création pour un chemin d’accès, vous pouvez utiliser la syntaxe comme dans les exemples suivants :
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /+[users='administrator',path='*',access='Read,Write,Source'] /commit:apphost
AppCmd set config "Default Web Site/mypath" /section:system.webServer/webdav/authoringRules /+[roles='Authors',path='*.aspx',access='Read,Write,Source'] /commit:apphost
Modification d’une règle de création
Une fois qu’une règle de création a été ajoutée, vous pouvez modifier cette règle à l’aide de la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /[users='administrator',path='*'].access:"None" /commit:apphost
Suppression d’une règle de création
Vous pouvez supprimer une règle de création en spécifiant simplement le nom d’utilisateur ou de rôle à l’aide de la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /-[users='administrator'] /commit:apphost
Remarque
Si plusieurs règles de création existent pour cet utilisateur, la commande ci-dessus supprime uniquement la première règle de création dans la liste et vous devez répéter la commande pour supprimer les règles suivantes pour cet utilisateur.
Vous pouvez également spécifier le nom d’utilisateur ou de rôle et le type de contenu comme dans l’exemple suivant :
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /-[users='administrator',path='*'] /commit:apphost
Résumé
Ce document vous a montré comment effectuer les opérations suivantes :
Informations supplémentaires
Pour plus d’informations sur l’utilisation de WebDAV, consultez les articles suivants :
- Installation et configuration de WebDAV sur IIS 7.0
- Comment utiliser des propriétés personnalisées avec WebDAV
Remarque
Comme mentionné précédemment, vos paramètres de filtrage de demande par défaut peuvent bloquer plusieurs types de fichiers à partir de la création WebDAV. Si vous ne modifiez pas vos paramètres de filtrage des demandes, vous pouvez constater différentes erreurs lorsque vous essayez de publier des fichiers bloqués. Par exemple, si vous tentez de charger ou de télécharger un fichier web.config, vous verrez des erreurs dans votre client WebDAV. Pour plus d’informations sur la configuration des paramètres de filtrage des demandes, consultez la procédure pas à pas Configurer WebDAV avec filtrage des demandes.