IIS Modules Overview (Introducción a los módulos de IIS)

por el equipo de IIS, Mike Volodarsky

Compatibilidad

Versión Notas
IIS 7.0 y versiones posteriores Las características descritas en este artículo se presentaron en IIS 7.0.
IIS 6.0 y versiones anteriores Las características que se describen en este artículo no se admiten en versiones anteriores de IIS 7.0.

Introducción

El conjunto de características de servidor web IIS 7 y versiones posteriores se integra en más de treinta módulos independientes.

Un módulo es un archivo DLL de Win32 (módulo nativo) o un tipo de .NET 2.0 incluido en un ensamblado (módulo administrado). De forma similar a un conjunto de bloques de creación, los módulos se agregan al servidor para proporcionar la funcionalidad deseada para las aplicaciones. Del mismo modo, todos los módulos de IIS se pueden quitar o reemplazar por módulos personalizados desarrollados mediante las API de C++ de IIS o las API conocidas de ASP.NET 2.0.

En este artículo se describen las tareas comunes de administración de módulos IIS y se detalla cada módulo, incluidos sus valores de configuración y el posible efecto que tiene una eliminación de módulos en el servidor web. Los ejemplos de administración se proporcionan mediante el Administrador gráfico de IIS y la herramienta de línea de comandos AppCmd.

Requisitos previos

Para seguir los pasos de este documento, es mejor realizar una instalación completa de IIS.

Nota:

No todas las ediciones de Windows admiten todas las características de IIS disponibles. Para ver qué características de IIS se admiten en el sistema operativo, deberá consultar la documentación que se incluye con su versión de Windows.

Instalación completa de IIS en Windows Vista, Windows 7, Windows 8, Windows 10 o Windows 11

  1. Haga clic en Inicio y después en Panel de control.
  2. En el Panel de control, haga clic en Programas.
  3. En Programas y características, haga clic en Activar o desactivar las características de Windows.
  4. En el cuadro de diálogo Características de Windows, expanda Internet Information Services y seleccione todas las características.
    Es posible que tenga que expandir algunas categorías para seleccionar todas las características de esa categoría.
  5. Haga clic en OK.

Instalación completa de IIS en Windows Server 2008/R2, Windows Server 2012/R2 o Windows Server 2016

  1. Abra Administrador del servidor>Roles y seleccione Servidor web (IIS).
  2. Compruebe todas las características en Servidor web.

Introducción a los módulos

Para agregar un módulo al servidor, debe seguir dos pasos:

  1. Instale un módulo en el servidor (solo módulos nativos).
  2. Habilite el módulo en una aplicación.

El primer paso registra el módulo globalmente en el servidor, lo que hace que esté disponible en cada proceso de trabajo del servidor. Solo es necesario para los módulos nativos debido a la naturaleza de confianza del código nativo y solo está disponible para los administradores.

Nota:

Un módulo nativo tiene acceso sin restricciones a cualquier recurso disponible para el proceso de trabajo del servidor, igual que un filtro ISAPI o una extensión en versiones anteriores. Debido a este acceso sin restricciones, solo debe instalar módulos nativos procedentes de una fuente de confianza.

El segundo paso permite que el módulo se ejecute dentro de una aplicación determinada y, de hecho, permite al administrador de aplicaciones controlar las características del servidor habilitadas para la aplicación. Este paso permite habilitar los módulos nativos instalados y los módulos administrados para cada aplicación.

Instalación de un módulo nativo

Para instalar un módulo nativo, debe registrarse en el servidor mediante una de las siguientes opciones:

  • Edición manual del almacén de configuraciones de IIS. En IIS 7.5 y versiones posteriores, puede usar el Editor de configuración en el Administrador de IIS.
  • Uso del administrador de IIS
  • Mediante la herramienta de línea de comandos AppCmd.exe

Las tres opciones hacen que la entrada del módulo se agregue a la sección de configuración de IIS <globalModules>, que solo se puede establecer en el nivel de servidor. Para examinar el contenido de esta sección, abra el archivo de configuración raíz ubicado en %windir%\system32\inetsrv\config\applicationhost.config y busque la cadena "<globalModules>".

Después de la instalación completa de IIS, en esta sección se incluye una entrada para cada uno de los módulos nativos enviados con IIS, especificando un nombre y la ruta de acceso al archivo DLL del módulo:

<globalModules>
    <add name="DefaultDocumentModule" image="%windir%\system32\inetsrv\defdoc.dll" />
    <add name="DirectoryListingModule" image="%windir%\system32\inetsrv\dirlist.dll" />
    <add name="StaticFileModule" image="%windir%\system32\inetsrv\static.dll" />
    ...

</globalModules>

Todos estos módulos se describen detalladamente más adelante en este documento.

Desinstalar un módulo nativo

Puede desinstalar un módulo nativo si ese módulo ya no está en uso en el servidor o si desea sustituirlo por otro módulo. Quite la entrada del módulo correspondiente de la lista de configuración <globalModules> y la entrada asociada en la lista de configuración <modules> mediante una de las siguientes opciones:

  • Edición manual del almacén de configuraciones de IIS. En IIS 7.5 y versiones posteriores, puede usar el Editor de configuración.
  • Uso del administrador de IIS
  • Mediante la herramienta de línea de comandos AppCmd.exe

Nota:

Dado que la sección de configuración <globalModules> solo se puede establecer en el nivel de servidor, debe ser administrador para poder desinstalar un módulo.

Habilitación de un módulo para una aplicación

Un módulo debe estar habilitado para poder proporcionar servicio a una aplicación determinada. Para habilitar un módulo nativo, primero debe instalarse en el servidor (consulte la sección anterior, Instalación de un módulo nativo).

Un módulo administrado no requiere instalación y se puede habilitar directamente para cada aplicación. Esto permite a las aplicaciones incluir sus módulos administrados directamente dentro de la aplicación registrándolos en el archivo web.config de la aplicación y proporcionando la implementación en los directorios /BIN o /App_Code.

Para habilitar un módulo, realice una de las siguientes acciones:

  • Edite manualmente el almacén de configuración de IIS, ya sea globalmente para habilitar el módulo para todas las aplicaciones del servidor o en un archivo web.config determinado ubicado en cada aplicación para la que desea habilitar este módulo. En IIS 7.5 o versiones posteriores, puede usar el Editor de configuración.
  • Use el Administrador de IIS
  • Use la herramienta de línea de comandos AppCmd.exe

Estas tres opciones agregan la entrada del módulo a la sección de configuración de IIS <modules>, que se puede establecer en el nivel de servidor y en el nivel de aplicación. Para examinar el contenido de esta sección, abra el archivo de configuración raíz ubicado en %windir%\system32\inetsrv\config\applicationhost.config y busque la cadena "<modules>".

A diferencia de los módulos nativos, un módulo administrado no requiere agregar una entrada a la sección de configuración <globalModules>.

Después de una instalación completa de IIS, la sección de configuración contiene una entrada para cada uno de los módulos (tanto administrados como nativos) que se incluyen con IIS. La entrada indica que todos estos módulos están habilitados de forma predeterminada para todas las aplicaciones del servidor. Cada entrada de esta sección especifica el nombre de un módulo nativo que se instaló anteriormente en el servidor o el nombre y el tipo de .NET de un módulo administrado:

<modules>
<add name="DefaultDocumentModule" />
<add name="DirectoryListingModule" />
<add name="StaticFileModule"/>
 ...

</modules>

Deshabilitar un módulo en una aplicación

Deshabilite un módulo si ese módulo ya no está en uso en la aplicación o si desea reemplazarlo por otro módulo. Para deshabilitar un módulo, quite la entrada del módulo correspondiente de la colección de configuración <modules> de una aplicación determinada en la que no desea que se ejecute este módulo. Si el módulo está habilitado en el nivel de servidor, quítelo de allí para deshabilitarlo en todas las aplicaciones del servidor de forma predeterminada. Use una de las siguientes opciones para quitar el módulo en el nivel de servidor:

  • Edite manualmente la sección de configuración <system.webServer>/<modules> de la aplicación.
  • Use el Administrador de IIS.
  • Use la herramienta de línea de comandos AppCmd.exe.

Después de quitar el módulo de la aplicación, dejará de estar activo en esa aplicación. Sin embargo, si el módulo es nativo, se seguirá cargando en el proceso de trabajo del servidor y podría ser utilizado por otras aplicaciones que no lo quitaron.

Nota:

La sección de configuración se desbloquea de forma predeterminada si ASP.NET está instalado. Este desbloqueo predeterminado permite a las aplicaciones deshabilitar los módulos nativos y administrados habilitados globalmente y agregar nuevos módulos administrados. Esta sección de configuración se puede bloquear en el nivel de servidor para evitar la modificación por completo o evitar la eliminación de entradas de módulos específicos si así lo desea el administrador.

Condiciones previas

Hay otro atributo en una entrada de módulo denominada condición previa. El motor principal de IIS usa condiciones previas para determinar cuándo habilitar un módulo determinado. Por ejemplo, los motivos de rendimiento pueden determinar que solo deseas ejecutar módulos administrados para las solicitudes que también van a un controlador administrado. La condición previa del ejemplo siguiente (condición previa="managedHandler") solo habilita el módulo de autenticación de formularios para las solicitudes que también se administran mediante un controlador administrado, como las solicitudes para archivos .aspx o .asmx:

<add name="FormsAuthentication"type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />

Si quita el atributo precondition="managedHandler", la autenticación de formularios también se aplica al contenido no servido por controladores administrados, como .html, .jpg, .doc, sino también para extensiones de ASP (.asp) o PHP (.php). Consulte "Cómo aprovechar la canalización integrada de IIS 7.0 para obtener un ejemplo de cómo habilitar módulos ASP.NET para que se ejecuten para todo el contenido.

También puede usar un acceso directo para que todos los módulos administrados (ASP.NET) se puedan ejecutar en todas las solicitudes de la aplicación, independientemente de la condición previa "managedHandler". Para que todos los módulos administrados se puedan ejecutar en todas las solicitudes sin tener que configurar cada entrada de módulo para quitar la condición previa "managedHandler", use la propiedad runAllManagedModulesForAllRequests en la sección <modules>:

<modules runAllManagedModulesForAllRequests="true"/>

Cuando se usa esta propiedad, la condición previa "managedHandler" deja de tener efecto y todos los módulos administrados se ejecutarán en todas las solicitudes.

Consultar, agregar y quitar módulos mediante el Administrador de IIS

El Administrador de IIS permite consultar, agregar o quitar módulos de forma sencilla.

  1. Para abrir el administrador de IIS, haga clic en Iniciar, escriba inetmgr en el cuadro Buscar y presione ENTRAR.
  2. Haga clic en el nombre del equipo del servidor IIS.
  3. Haga clic en el icono Módulos de la categoría IIS.

Administrador de IIS

Figura 1: Acciones del Administrador de IIS

Administrar los módulos habilitados para una aplicación determinada

  1. Conéctese a esa aplicación mediante la vista de árbol de la izquierda.
  2. Navegue hasta el panel de características Módulos.
  3. Haga clic en Agregar módulo administrado para agregar un módulo administrado a la aplicación. Agregar módulo nativo solo permite agregar un módulo que ya esté registrado en el nivel de servidor.

Quitar un módulo de la aplicación

  1. Haga clic en el módulo de la lista. La tarea Quitar se muestra en el panel izquierdo.
  2. Haga clic en Quitar.

Lista de módulos en el Administrador de IIS

Figura 2: Lista de módulos en el Administrador de IIS

Administración de módulos desde la línea de comandos

Para administrar rápidamente los módulos desde la línea de comandos o las tareas de administración de módulos de script, use la herramienta de línea de comandos AppCmd.exe.

Instalar un módulo mediante AppCmd.exe

En el símbolo del sistema, escriba el comando siguiente, reemplazando los valores en cursiva por los valores del módulo en el equipo.

Appcmd.exe install module /name:MODULE_NAME /image:PATH_TO_DLL

Nota:

La instalación de un módulo nativo lo habilita automáticamente en el nivel de servidor.

Por ejemplo, el siguiente comando instala el módulo Documento predeterminado.

%windir%\system32\inetsrv\appcmd.exe install module /name:DefaultDocumentModule /image:%windir%\system32\inetsrv\defdoc.dll

Si ejecuta el comando en un equipo en el que el módulo ya está cargado, obtendrá un mensaje de error similar al siguiente:

ERROR (mensaje:No se pudo agregar el elemento de colección duplicado "DefaultDocumentModule").

Desinstalar un módulo mediante AppCmd.exe

En el símbolo del sistema, escriba el comando siguiente, reemplazando los valores en cursiva por los valores del módulo en el equipo.

Appcmd.exe uninstall module MODULE_NAME

Nota:

La desinstalación de un módulo lo deshabilita automáticamente en el nivel de servidor.

Por ejemplo, el siguiente comando desinstala el módulo Documento predeterminado. Este comando solo se proporciona como ejemplo. Solo debe ejecutarlo en un servidor de prueba.

%windir%\system32\inetsrv\appcmd.exe uninstall module DefaultDocumentModule

Enumerar los módulos habilitados para una aplicación o globalmente

En el símbolo del sistema, escriba el comando siguiente, reemplazando los valores en cursiva por los valores del módulo en el equipo.

Appcmd.exe list modules [/app.name:APPLICATION_NAME]

Por ejemplo, el siguiente comando enumera los módulos habilitados para el sitio web predeterminado.

%windir%\system32\inetsrv\appcmd.exe list modules /app.name:"Default Web Site"

Y este comando enumera los módulos instalados globalmente.

%windir%\system32\inetsrv\appcmd.exe list modules

Habilitar un módulo para una aplicación determinada o globalmente

En el símbolo del sistema, escriba el comando siguiente, reemplazando los valores en cursiva por los valores del módulo en el equipo.

Appcmd.exe add module /name:MODULE_NAME /type:MGD_TYPE

Por ejemplo, el comando siguiente agrega el módulo Autenticación de formularios al sitio web predeterminado.

%windir%\system32\inetsrv\appcmd.exe add module /name:FormsAuthentication /type:System.Web.Security.FormsAuthenticationModule /app.name:"Default Web Site"

Y este comando agrega el módulo de autenticación de formularios globalmente.

%windir%\system32\inetsrv\appcmd.exe add module /name:FormsAuthentication /type:System.Web.Security.FormsAuthenticationModule

Deshabilitar un módulo para una aplicación determinada o globalmente

En el símbolo del sistema, escriba el comando siguiente, reemplazando los valores en cursiva por los valores del módulo en el equipo.

Appcmd.exe delete module MODULE_NAME [/app.name:APPLICATION_NAME]

Por ejemplo, el comando siguiente quita el módulo Autenticación de formularios del sitio web predeterminado.

%windir%\system32\inetsrv\appcmd.exe delete module FormsAuthentication /app.name:"Default Web Site"

Y este comando quita el módulo de autenticación de formularios globalmente.

%windir%\system32\inetsrv\appcmd.exe delete module FormsAuthentication

Obtener más ayuda sobre la sintaxis de cada uno de los comandos de App Cmd.exe

Para mostrar los comandos admitidos en el objeto Module, escriba el siguiente comando:

Appcmd.exe module /?

Para mostrar el uso de cada comando, escriba el siguiente comando:

Appcmd.exe install module /?Appcmd add module /?

Referencia del módulo

El servidor IIS está listo para personalizar. Lea detenidamente la siguiente lista para evitar efectos secundarios, pérdida de características o eliminación de características de seguridad.

Módulos de utilidad

Estos módulos no proporcionan servicios de solicitud, sino que ayudan al motor del servidor con su operación interna.

Nombre de módulo: UriCacheModule
Descripción: Implementa una caché genérica para el estado de servidor específico de la dirección URL, como la configuración. Con este módulo, el servidor solo lee la configuración de la primera solicitud de una dirección URL determinada y la reutiliza en las solicitudes posteriores hasta que cambia.
Secciones de configuración: Ninguno.
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Pérdida de rendimiento debido al estado almacenado en caché para la recuperación de cada URL en cada solicitud.
Nombre de módulo: FileCacheModule
Descripción: Almacena en caché los identificadores de archivo para los archivos abiertos por el motor del servidor y los módulos.
Secciones de configuración: Ninguno.
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Pérdida de rendimiento. Si los identificadores de archivo no se almacenan en caché, los archivos deben abrirse para cada solicitud.
Nombre de módulo: TokenCacheModule
Descripción: Almacena en caché los tokens de seguridad de Windows para esquemas de autenticación basados en contraseñas (autenticación anónima, autenticación básica, autenticación de certificado de cliente IIS).
Secciones de configuración: Ninguno.
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Pérdida de rendimiento. Los usuarios deben iniciar sesión para cada solicitud si el token no está almacenado en caché. Puede producirse un impacto importante en el rendimiento. Por ejemplo, si una página HTML protegida con contraseña hace referencia a 50 imágenes que también están protegidas, 51 llamadas logonUser a la base de datos de la cuenta local, o peor, a un controlador de dominio externo, provocan un problema de rendimiento.
Nombre de módulo: ManagedEngine
Descripción: Managed Engine tiene un lugar especial en todos los demás módulos. Es responsable de proporcionar la integración de IIS para enlazarse con el runtime de ASP.NET.
Secciones de configuración:
Dependencias: Ninguno.
Posibles problemas al quitar este módulo La integración de ASP.NET se deshabilitará. No se llama a ninguno de los módulos administrados declarados en los controladores <modules> o ASP.NET declarados en la sección <handlers> cuando el grupo de aplicaciones se ejecuta en modo integrado.
Nombre de módulo: HttpCacheModule
Descripción: El módulo HttpCacheModule implementa la caché de resultados de IIS y también la lógica de almacenamiento en caché de los elementos de la caché de HTTP.sys. Establezca el tamaño de la caché, los perfiles de caché de salida, etc. a través de la configuración.
Secciones de configuración: System.webServer/caching
Dependencias: Ninguno.
Posibles problemas al quitar este módulo El contenido ya no se almacenará en caché en modo kernel. Se omiten los perfiles de caché. Quitar el módulo HttpCacheModule suele tener efectos negativos sobre el rendimiento y el uso de los recursos.
Nombre de módulo: DynamicCompressionModule
Descripción: Implementa la compresión en memoria del contenido dinámico.
Secciones de configuración: system.webServer/httpCompression y system.webServer/urlCompression.
Dependencias: No habrá ninguna dependencia porque la compresión dinámica está desactivada de forma predeterminada.
Nombre de módulo: StaticCompressionModule
Descripción: Implementa la compresión (en memoria, así como persistente en el sistema de archivos) del contenido estático.
Secciones de configuración: system.webServer/httpCompression y system.webServer/urlCompression
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Posible saturación del ancho de banda debido a que el contenido sin comprimir se envía de vuelta al cliente.
Nombre de módulo: DefaultDocumentModule
Descripción: Implementa la funcionalidad de documento predeterminada. Las solicitudes que incluyan / al final se redirigirán a un documento de la lista de documentos predeterminada.
Secciones de configuración: system.webServer/defaultDocument
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Las solicitudes a /, por ejemplo http://localhost/, devuelven un error 404. Si un directoryBrowsing está habilitado, se genera una lista de directorios.
Nombre de módulo: DirectoryListingModule
Descripción: Implementa la funcionalidad de examen de directorios.
Secciones de configuración: system.webServer/directoryBrowse
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Si ni el módulo de documento predeterminado ni el módulo directoryListing controlan una solicitud de /, se devuelve una respuesta vacía.
Nombre de módulo: ProtocolSupportModule
Descripción: Implementa encabezados de respuesta personalizados y de redirección. Implementa los verbos HTTP trace y Options. Implementa los soportes que permiten o desactivan la compatibilidad con keep-alive a través de la configuración.
Secciones de configuración: system.webServer/httpProtocol
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Las solicitudes TRACE o OPTIONS devuelven un mensaje de error "405 Método no permitido".
Nombre de módulo: HttpRedirectionModule
Descripción: Implementa la funcionalidad de redirección.
Secciones de configuración: system.webServer/httpRedirect
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Posible problema de seguridad si los recursos estaban protegidos mediante redireccionamiento. Cuando se quita el módulo Redireccionamiento, el contenido vuelve a ser accesible.
Nombre de módulo: ServerSideIncludeModule
Descripción: Implementa las inclusión del lado servidor. Este módulo se asigna como controlador y solo se ejecuta para las solicitudes que terminan en .stm, .shtm y .shtml.
Secciones de configuración: system.webServer/serverSideInclude
Dependencias: Ninguno.
Posibles problemas al quitar este módulo El módulo de archivos estáticos manipula archivos .stm, .shtm y .shtml. Si este módulo tiene un mimeMap para estas extensiones, los archivos se sirven como texto. Sin embargo, tenga en cuenta que no es el valor predeterminado.
Nombre de módulo: StaticFileModule
Descripción: Envía archivos estáticos con la extensión de archivo .html, .jpg, así como muchos otros. La colección de configuración staticContent/mimeMap determina la lista de extensiones de archivo.
Secciones de configuración: system.webServer/staticContent
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Los archivos estáticos ya no se sirven. Las solicitudes de archivos devuelven un error 404 No encontrado que indica que no se ha encontrado ningún controlador.
Nombre de módulo: AnonymousAuthenticationModule
Descripción: Configura la autenticación anónima. Este módulo genera el objeto HttpUser si se configura una dirección URL para permitir la autenticación anónima.
Secciones de configuración: system.webServer/security/authentication/anonymousAuthentication
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Se debe configurar al menos un módulo de autenticación. El núcleo del servidor IIS comprueba después de la fase de autenticación si se rellena el objeto HttpUser. El objeto HttpUser es una estructura de datos IIS. Se genera un error 401.2 si no hay ninguna autenticación rellenando el objeto HttpUser.
Nombre de módulo: CertificateMappingAuthenticationModule
Descripción: Mapas certificados de cliente SSL a una cuenta de Active Directory (asignación de certificados de Active Directory).
Secciones de configuración: system.webServer/security/authentication/clientCertificateMappingAuthentication
Dependencias: SSL debe configurarse para que este módulo funcione. La máquina IIS también debe ser miembro de un dominio de Active Directory.
Posibles problemas al quitar este módulo Normalmente se permiten solicitudes si se utiliza la asignación de certificados de Active Directory para proteger un directorio; en este caso, se quita el módulo.
Nombre de módulo: BasicAuthenticationModule
Descripción: implementa la autenticación HTTP Básica descrita en RFC 2617.
Secciones de configuración: system.webServer/security/authentication/basicAuthentication
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Se debe configurar al menos un módulo de autenticación. El núcleo del servidor IIS comprueba después de la fase de autenticación si se rellena el objeto HttpUser. El objeto HttpUser es una estructura de datos IIS. Se genera un error 401.2 si no hay ninguna autenticación rellenando el objeto HttpUser.
Nombre de módulo: WindowsAuthenticationModule
Descripción: Implementa autenticación de Windows (NTLM o Negotiate (Kerberos)).
Secciones de configuración: system.webServer/security/authentication/windowsAuthentication
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Se debe configurar al menos un módulo de autenticación. El núcleo del servidor IIS comprueba después de la fase de autenticación si se rellena el objeto HttpUser. El objeto HttpUser es una estructura de datos IIS. Se genera un error 401.2 si no hay ninguna autenticación rellenando el objeto HttpUser.
Nombre de módulo: DigestAuthenticationModule
Descripción: Implementa la autenticación hash descrita en RFC 2617.
Secciones de configuración: system.webServer/security/authentication/digestAuthentication
Dependencias: El servidor IIS debe formar parte de un dominio de Active Directory.
Posibles problemas al quitar este módulo Se debe configurar al menos un módulo de autenticación. El núcleo del servidor IIS comprueba después de la fase de autenticación si se rellena el objeto HttpUser. El objeto HttpUser es una estructura de datos IIS. Se genera un error 401.2 si no hay ninguna autenticación rellenando el objeto HttpUser.
Nombre de módulo: IISCertificateMappingAuthenticationModule
Descripción: Implementa la asignación de certificados de IIS. Asigna certificados SSL de cliente a una cuenta de Windows. Al contrario que la asignación de certificados de Active Directory, las credenciales de usuario y las reglas de asignación se almacenan en el almacén de configuración de IIS.
Secciones de configuración: system.webServer/iisClientCertificateMappingAuthentication
Dependencias: Para que este módulo funcione, se debe configurar el SSL con el requisito de recibir certificados de cliente.
Posibles problemas al quitar este módulo Se debe configurar al menos un módulo de autenticación. El núcleo del servidor IIS comprueba después de la fase de autenticación si se rellena el objeto HttpUser. El objeto HttpUser es una estructura de datos IIS. Se genera un error 401.2 si no hay ninguna autenticación rellenando el objeto HttpUser.
Nombre de módulo: UrlAuthorizationModule
Descripción: Implementa la autorización basada en reglas de configuración.
Secciones de configuración: system.webServer/security/authorization
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Las reglas de autorización con contenido protegido ya no se evalúan. El contenido que se suponía protegido podría ser servido.
Nombre de módulo: IsapiModule
Descripción: Implementa la funcionalidad de la extensión ISAPI.
Secciones de configuración: system.webServer/isapiCgiRestriction
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Las extensiones de ISAPI asignadas en la sección <handlers> (modules="IsapiModule") o llamadas explícitamente Extensiones ISAPI dejarán de funcionar.
Nombre de módulo: IsapiFilterModule
Descripción: Implementa la funcionalidad del filtro ISAPI.
Secciones de configuración: system.webServer/isapiFilters
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Los filtros ISAPI suelen implementar funcionalidades de las que dependen las aplicaciones. Algunos ejemplos son ASP.NET o SharePoint. ASP.NET, por ejemplo, necesita el aspnet_filter.dll para proteger el contenido confidencial y para volver a escribir direcciones URL. Al quitar este módulo se impide que IIS cargue filtros ISAPI. Es posible que las aplicaciones dejen de funcionar o que se exponga contenido confidencial.
Nombre de módulo: IpRestrictionModule
Descripción: Implementa un esquema de autorización basado en la dirección IPv4 de la solicitud de cliente.
Secciones de configuración: system.webServer/security/ipSecurity
Dependencias: Debe instalarse la pila IPv4.
Posibles problemas al quitar este módulo Se permitirán clientes con direcciones IP en la lista ipSecurity.
Nombre de módulo: RequestFilteringModule
Descripción: Implementa un conjunto eficaz de reglas de seguridad que rechazan solicitudes sospechosas en una fase muy temprana. Este módulo es el sucesor del filtro ISAPI UrlScan.DLL que se envió para IIS 5.0 y 6.0.
Secciones de configuración: system.webServer/security/requestFiltering
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Si se quita este módulo, las reglas especificadas en la sección requestFiltering ya no se aplican. Pueden producirse posibles problemas de seguridad.
Nombre de módulo: CustomLoggingModule
Descripción: Implementa la interfaz ILogPlugin sobre IIS. ILogPlugin es una implementación COM anterior que permite a los clientes ampliar el registro de IIS. No se recomienda extender IIS mediante esta interfaz. En su lugar, los clientes deben escribir un módulo y suscribirse a la notificación RQ_LOG_REQUEST.
Secciones de configuración: system.webServer/httpLogging and system.applicationhost/sites/site/logFile/customLogPluginClsid
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Ya no se llamará a un complemento de registro personalizado. Por ejemplo, el registro ODBC se implementa como ILogPlugin.
Nombre de módulo: CustomErrorModule
Descripción: Implementa errores personalizados y la característica de error detallada de IIS.
Secciones de configuración: system.webServer/httpErrors
Dependencias: Ninguno.
Posibles problemas al quitar este módulo IIS devuelve páginas en blanco con información mínima cuando se producen errores en el servidor principal. Los usuarios remotos pueden ver información detallada del error procedente de los componentes del servidor, lo que puede dar lugar a la divulgación de información.
Nombre de módulo: HttpLoggingModule
Descripción: Implementa el registro de IIS estándar indicando a HTTP.SYS qué debe registrar.
Secciones de configuración: system.applicationHost/log y system.webServer/httpLogging
Dependencias: Ninguno.
Posibles problemas al quitar este módulo El registro de IIS estándar dejará de funcionar.
Nombre de módulo: FailedRequestsTracingModule
Descripción: Implementa el seguimiento de solicitudes con error. Defina y establezca reglas para las solicitudes con error a través de la configuración.
Secciones de configuración: system.webServer/tracing y system.webServer/httpTracing
Dependencias: Ninguno.
Posibles problemas al quitar este módulo El seguimiento de solicitudes HTTP dejará de funcionar.
Nombre de módulo: RequestMonitorModule
Descripción: Implementa la interfaz de estado y control en tiempo de ejecución (RSCA) de IIS. RSCA permite a los usuarios consultar información en tiempo de ejecución, como la solicitud que se está ejecutando, el estado de inicio/detención de un sitio web o los dominios de aplicación que se están ejecutando.
Secciones de configuración: Ninguno.
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Las herramientas no podrán enumerar las solicitudes que se están ejecutando actualmente.
Nombre de módulo: CgiModule
Descripción: Implementa CGI sobre IIS.
Secciones de configuración: system.webServer/cgi y system.webServer/isapiCgiRestriction
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Los programas CGI dejarán de funcionar.
Nombre de módulo: TracingModule
Descripción: Implementa el seguimiento de ETW.
Secciones de configuración: system.webServer/httpTracing
Dependencias: Ninguno.
Posibles problemas al quitar este módulo El seguimiento de ETW no funcionará si se quita este módulo.
Nombre de módulo: ConfigurationValidationModule
Descripción: Valida que la configuración de la aplicación ASP.NET se ha migrado para que funcione en modo integrado.
Secciones de configuración: system.webServer/Validation
Dependencias: Ninguno.
Posibles problemas al quitar este módulo Las aplicaciones que especifiquen la configuración de ASP.NET heredada para módulos y controladores no generarán errores de migración; una nueva aplicación que no se ha migrado funcionará de forma incorrecta.

Módulos administrados:

Nombre de módulo: OutputCache
Descripción: Implementa la característica de almacenamiento en caché de resultados de ASP.NET.
Secciones de configuración: system.web/caching/outputCache
Dependencias: El módulo ManagedEngine debe instalarse.
Posibles problemas al quitar este módulo ASP.NET no podrá emitir respuestas de caché a páginas configuradas para ser emitidas en caché.
Nombre de módulo: Sesión
Descripción: Consulte la documentación de ASP.NET 2.0 para obtener más información
Secciones de configuración: system.web/sessionState
Dependencias: El módulo ManagedEngine debe instalarse
Posibles problemas al quitar este módulo El estado de sesión administrada no está disponible.
Nombre de módulo: WindowsAuthentication
Descripción: Consulte la documentación de ASP.NET 2.0 para obtener más información.
Secciones de configuración: system.web/authentication
Dependencias: Debe instalarse el módulo ManagedEngine
Posibles problemas al quitar este módulo No se generará el evento WindowsAuthentication.OnAuthenticate, lo que puede impedir que se ejecute algún código de autenticación de ASP.NET personalizado. Además, el usuario autenticado no se reemplazará por el usuario UNC cuando esté en un recurso compartido UNC (comportamiento heredado ASP.NET). Este módulo no afecta a la autenticación NTLM/Kerberos para aplicaciones ASP.NET en modo integrado, y no es necesario fuera del evento WindowsAuthentication.OnAuthenticate y el comportamiento UNC heredado.
Nombre de módulo: FormsAuthentication
Descripción: Consulte la documentación de ASP.NET 2.0 para obtener más información.
Secciones de configuración: system.web/authentication
Dependencias: Debe instalarse el módulo ManagedEngine
Posibles problemas al quitar este módulo La función de autenticación basada en formularios de ASP.NET no estará disponible, por lo que los clientes con tickets de autenticación de formularios no podrán acceder a los recursos protegidos.
Nombre de módulo: DefaultAuthentication
Descripción: Consulte la documentación de ASP.NET 2.0 para obtener más información.
Secciones de configuración: system.web/authentication
Dependencias: Debe instalarse el módulo ManagedEngine
Posibles problemas al quitar este módulo Es posible que algunas características de ASP.NET no funcionen para solicitudes anónimas si el modo de autenticación de ASP.NET es Formularios. Además, no se generará el evento DefaultAuthentication.OnAuthenticate.
Nombre de módulo: RoleManager
Descripción: Consulte la documentación de ASP.NET 2.0 para obtener más información.
Secciones de configuración: Ninguno.
Dependencias: Debe instalarse el módulo ManagedEngine.
Posibles problemas al quitar este módulo La funcionalidad del Administrador de roles no está disponible.
Nombre de módulo: UrlAuthorization
Descripción: Consulte la documentación de ASP.NET 2.0 para obtener más información. El módulo UrlAuthorization nativo implementa la funcionalidad de autorización de direcciones URL en código nativo. Esto proporciona una alternativa nativa escalable y rápida para el módulo de autorización de direcciones URL administradas.
Secciones de configuración: system.web/authorization.
Dependencias: Debe instalarse el módulo ManagedEngine.
Posibles problemas al quitar este módulo Las reglas de autorización ASP.NET se ignorarán, lo que posiblemente provocará la divulgación de información y otros riesgos de seguridad.
Nombre de módulo: AnonymousIdentification
Descripción: Consulte la documentación de ASP.NET 2.0 para obtener más información.
Secciones de configuración:
Dependencias: El módulo ManagedEngine debe instalarse.
Posibles problemas al quitar este módulo La característica de identificación anónima utilizada por el perfil de ASP.NET no funcionará.
Nombre de módulo: Perfil
Descripción: Consulte la documentación de ASP.NET 2.0 para obtener más información.
Secciones de configuración:
Dependencias: Debe instalarse el módulo ManagedEngine.
Posibles problemas al quitar este módulo La característica perfil de ASP.NET no funcionará.
Nombre de módulo: UrlMappingsModule
Descripción: Consulte la documentación de ASP.NET 2.0 para obtener más información.
Secciones de configuración:
Dependencias: Debe instalarse el módulo ManagedEngine.
Posibles problemas al quitar este módulo Las asignaciones de direcciones URL de ASP.NET no funcionarán.