Partager via


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 :

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.