Compartir a través de


Cómo configurar los valores de WebDAV mediante AppCmd

por Robert McMurray

Introducción

Microsoft lanzó un nuevo módulo de extensión de WebDAV que se reescribió completamente para Internet Information Services (IIS) 7.0 y versiones posteriores en Windows Server® 2008. Este nuevo módulo de extensión de WebDAV incorporó muchas características nuevas que permiten a los autores web publicar contenido mejor que antes, y ofrecía a los administradores web más opciones de seguridad y configuración. Microsoft ha publicado una actualización del módulo de extensión de WebDAV para Windows Server® 2008 que proporciona soporte para bloqueos compartidos y exclusivos para evitar actualizaciones perdidas debido a sobrescrituras.

Este documento le guiará en el uso de la nueva utilidad de AppCmd.exe en IIS 7.0 para configurar los valores de WebDAV desde una línea de comandos o un script por lotes.

Requisitos previos

Los siguientes elementos son necesarios para completar los procedimientos de este artículo:

  • IIS 7.0 debe instalarse en el servidor y debe configurarse lo siguiente:

    • El sitio web predeterminado creado por la instalación de IIS 7.0 debe existir.
  • Se debe instalar el nuevo módulo de extensión de WebDAV. Para obtener información sobre la instalación del nuevo módulo de WebDAV, consulte el siguiente documento:

Nota:

Debe asegurarse de seguir los pasos descritos en este documento mediante permisos administrativos completos. Use uno de los dos métodos siguientes para llevar a cabo este proceso correctamente:

  • Inicie sesión en el equipo con la cuenta de "administrador" local.
  • Si ha iniciado sesión con una cuenta con permisos administrativos que no es la cuenta de "administrador" local, abra el Administrador de IIS y todas las sesiones del símbolo del sistema mediante la opción "Ejecutar como administrador".

La condición anterior es necesaria porque el componente de seguridad Control de cuentas de usuario (UAC) de Windows Server 2008 impedirá el acceso administrativo a las opciones de configuración de IIS 7.0. Para obtener más información acerca de UAC, consulte la siguiente documentación:

Nota:

La configuración de Filtrado de solicitudes puede bloquear de forma predeterminada varios tipos de archivo de creación de WebDAV. Al configurar WebDAV mediante la UI del Administrador de IIS, la configuración de filtrado de solicitudes se actualiza automáticamente para desbloquear la creación de WebDAV. Sin embargo, si decide configurar WebDAV de cualquier manera que no sea usar la UI del Administrador de IIS, consulte el tutorial Cómo configurar WebDAV con filtrado de solicitudes.

Conceptos básicos de AppCmd

AppCmd.exe es una nueva herramienta de línea de comandos para administrar IIS 7.0. En muchos sentidos puede verse como un reemplazo del script adsutil.vbs de versiones anteriores de IIS. AppCmd.exe admite una amplia gama de modificadores de comandos para varios objetos, lo que facilita la creación de scripts en archivos por lotes para configurar una gran cantidad de ajustes de IIS. (Nota: la utilidad AppCmd.exe se encuentra en %WinDir%\System32\InetSrv folder).

La sintaxis general de AppCmd.exe es:

AppCmd (command) (object-type) <identifier> </parameter1:value1 ...>

AppCmd.exe también proporciona un amplio soporte de ayuda de la línea de comandos, al que se puede acceder mediante uno de los métodos siguientes:

AppCmd /?
AppCmd (object) /?
AppCmd (command) (object) /?

La lista de comandos depende del objeto y se admiten los siguientes objetos:

Object Descripción
SITE Administración de sitios virtuales
APP Administración de aplicaciones
VDIR Administración de directorios virtuales
APPPOOL Administración de grupos de aplicaciones
CONFIG Administración de secciones de configuración general
WP Administración de procesos de trabajo
REQUEST Administración de solicitudes HTTP
MODULE Administración de módulos de servidor
BACKUP Administración de copias de seguridad de configuración del servidor
TRACE Trabajar con registros de seguimiento de solicitudes con errores

Por ejemplo, puede enumerar los sitios web que se configuran en el servidor mediante el objeto SITE con la sintaxis siguiente:

AppCmd list site

Del mismo modo, puede enumerar los grupos de aplicaciones que se configuran en el servidor mediante el objeto APPPOOL con la sintaxis siguiente:

AppCmd list apppool

AppCmd también se puede usar para establecer los valores de varios ajustes de configuración mediante el objeto SITE, y puede usar el siguiente comando para enumerar los ajustes disponibles para el sitio web predeterminado mediante la sintaxis siguiente:

AppCmd set site "Default Web Site" /?

Para enumerar los valores de configuración de una ruta de acceso específica, use el objeto CONFIG como en el ejemplo siguiente:

AppCmd list config "Default Web Site/" /section:system.webServer/security/authentication/windowsAuthentication

El objeto CONFIG también se puede usar para establecer ajustes de configuración, como se muestra en el ejemplo siguiente:

AppCmd set config "Default Web Site/" /section:system.webServer/security/authentication/windowsAuthentication /enabled:true

También puede controlar dónde escribirá AppCmd la configuración que usted especifique mediante el parámetro de línea de comandos "/commit:". Por ejemplo, más adelante en este documento echaremos un vistazo al siguiente comando, que habilita WebDAV en el sitio web predeterminado:

AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /enabled:true /commit:apphost

Nota:

Este comando habilita WebDAV para el sitio web predeterminado y escribe esa configuración en el archivo ApplicationHost.config.

AppCmd es una utilidad extremadamente potente y, siendo realistas, hay demasiado que tratar para un espacio tan corto como este, por lo que para obtener más información sobre cómo familiarizarse con AppCmd.exe, consulte el siguiente artículo en el sitio web de IIS.NET:

Dicho esto, vamos a configurar WebDAV en el servidor.

Introducción a WebDAV

WebDAV instala una extensión en el esquema predeterminado para la configuración de IIS, que es lo que hace que AppCmd funcione con WebDAV sin modificaciones especiales. El nuevo módulo WebDAV almacena todos sus ajustes configurables en el archivo ApplicationHost.config y usa las secciones siguientes:

  • system.webServer/webdav/authoring
  • system.webServer/webdav/authoringRules

La configuración de "authoring" solo se puede configurar en la raíz de un sitio web, mientras que la configuración de "authoringRules" se puede configurar por dirección URL. Para ver qué opciones se han configurado para cada una de estas secciones para una ruta de acceso determinada, puede usar AppCmd como se muestra en los ejemplos siguientes:

AppCmd list config "Default Web Site/" /section:system.webServer/webdav/authoring
AppCmd list config "Default Web Site/" /section:system.webServer/webdav/authoringRules

Habilitar o deshabilitar WebDAV para un sitio web

Como es de esperar, el comando más básico y útil para WebDAV es el de habilitación o deshabilitación de WebDAV para un sitio. La sintaxis para habilitar WebDAV en un sitio web sigue el ejemplo siguiente:

AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /enabled:true /commit:apphost

En este ejemplo, establecemos el atributo "enabled" en "true" para la sección "authoring" de WebDAV en el sitio web predeterminado y obligamos a escribir ese cambio en el archivo ApplicationHost.config. Por el contrario, puede deshabilitar WebDAV estableciendo ese mismo valor en "false", como se muestra en el ejemplo siguiente:

AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /enabled:false /commit:apphost

Requerir SSL para la creación de WebDAV para un sitio web

Para proteger la información que pueda transferir, WebDAV se puede configurar para requerir SSL para todas las operaciones. Esto se logra estableciendo el atributo "requireSsl" en "true" para la sección "authoring" de WebDAV mediante una sintaxis como la siguiente:

AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /requireSsl:true /commit:apphost

Esta funcionalidad se puede deshabilitar estableciendo el atributo "requireSsl" en "false" mediante una sintaxis como la siguiente:

AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /requireSsl:false /commit:apphost

Permitir el acceso a archivos ocultos para un sitio web

Por motivos de seguridad, puede decidir si los archivos marcados como ocultos en el servidor se devolverán en las listas de archivos. Para ello, establezca el atributo "allowHiddenFiles" en "true" en el elemento "fileSystem" de la sección "authoring" mediante una sintaxis como la siguiente:

AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /fileSystem.allowHiddenFiles:true /commit:apphost

Para deshabilitar la enumeración de archivos ocultos, establezca el atributo "allowHiddenFiles" en "false" mediante la sintaxis como la siguiente:

AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /fileSystem.allowHiddenFiles:false /commit:apphost

Configurar las opciones de compatibilidad de WebDAV para un sitio web

Para ser compatible con versiones anteriores de WebDAV para IIS, algunas características opcionales se exponen a través de la configuración de compatibilidad. Actualmente, la lista de opciones es la siguiente:

Configuración de compatibilidad Descripción
None Especifica que no se deben admitir características de compatibilidad.
MsAuthorVia Especifica que se debería devolver el encabezado "MS-Author-Via". (Nota: varias de las herramientas de creación web de Microsoft usan este encabezado).
MultiProp Especifica que se deben permitir varias instrucciones <prop> en las solicitudes de cliente.
CompactXml Define si el XML devuelto por el módulo WebDAV finalizará cada línea con una secuencia CRLF.
IsHidden Especifica que se debería admitir la propiedad pseudoviva IsHidden.
IsCollection Especifica que se debe admitir la propiedad pseudoviva IsCollection.

Para establecer cualquiera de estas características tendrá que establecer el valor del atributo "compatFlags" en la sección "authoring" mediante una sintaxis similar a la siguiente:

AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /compatFlags:"MsAuthorVia,CompactXml" /commit:apphost

Observe que la configuración de compatibilidad se especifica como un conjunto de marcas separadas por comas.

Trabajar con reglas de creación de WebDAV

El nuevo módulo WebDAV usa reglas de creación, que le permiten configurar la forma en que WebDAV responde a la solicitud de creación de los clientes. Por ejemplo, el sitio web puede tener habilitado el acceso anónimo para los usuarios de Internet, pero el acceso de creación web debería restringirse a un determinado conjunto de usuarios. Mediante las reglas de creación puede configurar qué usuarios tienen acceso a los distintos elementos del contenido del sitio web.

Configurar los valores predeterminados de la regla de creación

Especificar si se permiten archivos asignados que no son MIME (extensiones multipropósito de correo Internet)

Por motivos de seguridad, IIS no permite el acceso a los archivos que no aparecen en el mapa MIME de forma predeterminada. Teniendo esto en cuenta, es posible que los autores web necesiten trabajar con determinados tipos de archivo en un servidor que no aparezca en el mapa MIME. (Por ejemplo: incluir archivos, archivos de datos, etc.). Para habilitar el acceso a archivos que no están asignados a MIME, tiene que establecer el atributo "allowNonMimeMapFiles" en "true" en la sección "authoringRules". En el siguiente ejemplo de sintaxis se muestra cómo se logra esto:

AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /allowNonMimeMapFiles:true /commit:apphost

Esta funcionalidad se puede deshabilitar estableciendo el atributo "allowNonMimeMapFiles" en "false" mediante una sintaxis similar a la siguiente:

AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /allowNonMimeMapFiles:false /commit:apphost

Especificar el tipo MIME predeterminado

Al trabajar con tipos de archivo que no están en la lista MIME, IIS todavía debe devolver un tipo MIME a los clientes. De forma predeterminada se establece en "application/octet-stream", lo que significa que el archivo debería tratarse como un archivo binario sin formato independientemente del tipo de contenido. Para establecer el tipo MIME predeterminado para los archivos que no están asignados a MIME en un tipo de archivo de texto, puede usar la sintaxis siguiente:

AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /defaultMimeType:"text/plain" /commit:apphost

Para restablecer el tipo MIME predeterminado, use la sintaxis siguiente:

AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /defaultMimeType:"application/octet-stream" /commit:apphost

Administrar reglas de creación

Las reglas de creación se conservan en una colección y cada regla puede contener los atributos siguientes:

Atributo Descripción
path Especifica el tipo de contenido para la regla. (Véase a continuación)
users Especifica el nombre de usuario para la regla. (Véase a continuación)
roles. Especifica un grupo o rol para la regla.
acceso Especifica el tipo de acceso para la regla. (Véase a continuación)

Notas:

  • El atributo "path" se usa para especificar el tipo de contenido para la regla de creación. Esto puede ser para tipos de contenido específicos como "*.aspx", "*.htm", etc., o puede usar "*" para indicar que la regla de creación es para todo el contenido.

  • Los atributos "roles" y "users" deberían ser exclusivos entre sí. Es decir, una regla de creación debería ser para "usuarios" o "roles", pero no para ambos.

  • Se definen los siguientes valores especiales para el atributo "users":

    Valor Descripción
    * Todos los usuarios
    ? Usuarios anónimos

    Nota:

    Los usuarios anónimos no pueden leer y escribir contenido; esta configuración se usa para restringir los tipos de archivo para las consultas de propiedades anónimas.

  • Los siguientes valores se definen para los tipos de acceso:

    Valor Descripción
    Ninguno Especifica que no se permite el acceso para el tipo de contenido.
    Leer Especifica el acceso de lectura para el tipo de contenido.
    Escribir Especifica el acceso de escritura para el tipo de contenido.
    Origen Especifica el acceso al código fuente para el tipo de contenido.

Agregar una regla de creación

Para agregar una regla de creación para una ruta de acceso, puede usar una sintaxis como en los ejemplos siguientes:

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

Editar una regla de creación

Una vez agregada una regla de creación, puede editar esa regla mediante una sintaxis como la siguiente:

AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /[users='administrator',path='*'].access:"None" /commit:apphost

Eliminar una regla de creación

Puede quitar una regla de creación simplemente especificando el nombre de usuario o rol mediante una sintaxis como la siguiente:

AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /-[users='administrator'] /commit:apphost

Nota:

Si existe más de una regla de creación para ese usuario, el comando anterior solo quitará la primera regla de creación de la lista y tendría que repetir el comando para quitar las reglas posteriores para ese usuario.

O bien, puede especificar el nombre de usuario o rol y el tipo de contenido, como en el ejemplo siguiente:

AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /-[users='administrator',path='*'] /commit:apphost

Resumen

En este documento se ha mostrado cómo hacer lo siguiente:

Más información

Para obtener más información sobre el uso de WebDAV, consulte los siguientes artículos:

Nota:

Como se mencionó anteriormente, la configuración de filtrado de solicitudes predeterminada puede bloquear varios tipos de archivo de creación de WebDAV. Si no modifica la configuración de filtrado de solicitudes, es posible que vea varios errores al intentar publicar archivos bloqueados. Por ejemplo, si intenta cargar o descargar un archivo web.config, verá errores en el cliente de WebDAV. Para más información sobre cómo configurar las opciones de filtrado de solicitudes, consulte el tutorial Cómo configurar WebDAV con filtrado de solicitudes.