Visão geral de módulos do IIS
pela Equipe dos IIS, Mike Volodarsky
Compatibilidade
Versão | Observações |
---|---|
IIS 7.0 e posteriores | Os recursos descritos neste artigo foram introduzidos nos IIS 7.0. |
IIS 6.0 e versões anteriores | Os recursos descritos neste artigo não tinham suporte antes dos IIS 7.0. |
Introdução
O conjunto de recursos do servidor Web dos IIS 7 e posteriores é componentizado em mais de trinta módulos independentes.
Um módulo é uma DLL Win32 (módulo nativo) ou um tipo .NET 2.0 contido em um assembly (módulo gerenciado). Semelhante a um conjunto de blocos de construção, os módulos são adicionados ao servidor para fornecer a funcionalidade desejada para seus aplicativos. Da mesma forma, todos os módulos dos IIS podem ser removidos ou substituídos por módulos personalizados desenvolvidos usando as APIs C++ dos IIS ou as conhecidas APIs do ASP.NET 2.0.
Este artigo descreve tarefas comuns de gerenciamento de módulo dos IIS e detalha cada módulo, incluindo suas configurações e o potencial efeito que uma remoção de módulo tem no servidor Web. Os exemplos de gerenciamento são fornecidos tanto usando o gerenciador gráfico dos IIS quanto a ferramenta de linha de comando AppCmd.
Pré-requisitos
Para seguir as etapas neste documento, é melhor fazer uma instalação completa dos IIS.
Observação
Nem todas as edições do Windows dão suporte a todos os recursos dos IIS disponíveis. Para ver quais recursos dos IIS têm suporte em seu sistema operacional, você precisará consultar a documentação fornecida com sua versão do Windows.
Para executar uma instalação completa dos IIS no Windows Vista, Windows 7, Windows 8, Windows 10 ou Windows 11
- Clique em Iniciar e em Painel de Controle.
- No Painel de Controle, clique em Programas.
- Em Programas e Recursos, clique em Ativar ou desativar recursos do Windows.
- Na caixa de diálogo Recursos do Windows, expanda os Serviços de Informações da Internet e selecione todos os recursos.
Talvez seja necessário expandir algumas categorias para selecionar todos os recursos nessa categoria. - Clique em OK.
Para executar uma instalação completa dos IIS no Windows Server 2008/R2, no Windows Server 2012/R2 ou no Windows Server 2016
- Abra Gerenciador do Servidor>Funções e selecione Servidor Web (IIS).
- Verifique todos os recursos em Servidor Web.
Introdução aos Módulos
Para adicionar um módulo ao servidor, você deve executar duas etapas:
- Instale um módulo no servidor (somente módulos nativos).
- Habilite o módulo em um aplicativo.
A primeira etapa registra o módulo globalmente com o servidor, disponibilizando-o em cada processo de trabalho do servidor. É necessário apenas para módulos nativos devido à natureza confiável do código nativo e está disponível apenas para os administradores.
Observação
Um módulo nativo tem acesso irrestrito a qualquer recurso disponível para o processo de trabalho do servidor, assim como um filtro ou extensão ISAPI nas versões anteriores. Devido a esse acesso irrestrito, você deve instalar apenas módulos nativos provenientes de uma fonte confiável.
A segunda etapa permite que o módulo seja executado em um aplicativo específico e efetivamente permite que o administrador do aplicativo controle os recursos do servidor habilitados para o aplicativo. Esta etapa permite que módulos nativos instalados e módulos gerenciados sejam habilitados para cada aplicativo.
Para instalar um módulo nativo
Para instalar um módulo nativo, ele deve ser registrado no servidor usando uma das opções abaixo:
- Editando manualmente o repositório de configuração dos IIS. Nos IIS 7.5 e posteriores, você pode usar o Editor de Configuração no Gerenciador dos IIS.
- Usando o Gerenciador dos IIS
- Usando a ferramenta de linha de comando AppCmd.exe
Todas essas três opções resultam na entrada do módulo sendo adicionada à seção de configuração dos IIS <globalModules>, que pode ser definida apenas no nível do servidor. Para examinar o conteúdo desta seção, abra o arquivo de configuração raiz localizado em %windir%\system32\inetsrv\config\applicationhost.config
e pesquise a cadeia de caracteres "<globalModules>".
Após uma instalação completa dos IIS, esta seção contém uma entrada para cada um dos módulos nativos enviados com os IIS, especificando um nome e o caminho para a DLL do 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 esses módulos são descritos em detalhes mais adiante neste documento.
Para desinstalar um módulo nativo
Você pode desinstalar um módulo nativo se esse módulo não estiver mais em uso no servidor ou se quiser substituí-lo por outro módulo. Remova a entrada do módulo correspondente da lista de configuração <globalModules> e a entrada associada na lista de configuração <modules>
usando uma das seguintes opções:
- Editando manualmente o repositório de configuração dos IIS. Nos IIS 7.5 e superiores, você pode usar o Editor de Configuração.
- Usando o Gerenciador dos IIS
- Usando a ferramenta de linha de comando AppCmd.exe
Observação
Como a seção de configuração <globalModules> pode ser definida apenas no nível do servidor, você deve ser um administrador para desinstalar um módulo.
Habilitar um módulo para um aplicativo
Um módulo deve ser habilitado antes de fornecer serviço para um aplicativo específico. Para habilitar um módulo nativo, ele deve primeiro ser instalado no servidor (consulte a seção anterior, Para instalar um módulo nativo).
Um módulo gerenciado não requer instalação e pode ser habilitado diretamente para cada aplicativo. Isso permite que os aplicativos incluam seus módulos gerenciados diretamente no aplicativo registrando-os no arquivo web.config do aplicativo e fornecendo a implementação em diretórios /BIN ou /App_Code.
Para habilitar um módulo, siga um destes procedimentos:
- Edite manualmente o repositório de configuração dos IIS, globalmente para habilitar o módulo para todos os aplicativos no servidor ou em um arquivo web.config específico localizado em cada aplicativo para o qual você gostaria de habilitar este módulo. Nos IIS 7.5 ou posteriores, você pode usar o Editor de Configuração.
- Usar o Gerenciador dos IIS
- Usar a ferramenta de linha de comando AppCmd.exe
Todas essas três opções adicionam a entrada do módulo à seção de configuração <modules>
dos IIS, que pode ser definida no nível do servidor e do aplicativo. Examine o conteúdo desta seção abrindo o arquivo de configuração raiz localizado em %windir%\system32\inetsrv\config\applicationhost.config
e pesquisando a cadeia de caracteres "<modules>".
Ao contrário dos módulos nativos, um módulo gerenciado não requer a adição de uma entrada à seção de configuração <globalModules>.
Após uma instalação completa dos IIS, a seção de configuração contém uma entrada para cada um dos módulos (gerenciados e nativos) que foram enviados com os IIS. A entrada indica que todos esses módulos estão habilitados por padrão para todos os aplicativos no servidor. Cada entrada nesta seção especifica o nome de um módulo nativo que foi instalado anteriormente no servidor ou o nome e o tipo .NET de um módulo gerenciado:
<modules>
<add name="DefaultDocumentModule" />
<add name="DirectoryListingModule" />
<add name="StaticFileModule"/>
...
</modules>
Desabilitar um módulo em um aplicativo
Desabilite um módulo se ele não estiver mais em uso no aplicativo ou se você quiser substituí-lo por outro módulo. Para desabilitar um módulo, remova a entrada de módulo correspondente da coleção de configurações <modules>
de um aplicativo específico no qual você não deseja que este módulo seja executado. Se o módulo estiver habilitado no nível do servidor, remova-o para desabilitá-lo em todos os aplicativos no servidor por padrão. Use uma das seguintes opções para remover o módulo no nível do servidor:
- Edite manualmente a seção de configuração <system.webServer>/<modules> em seu aplicativo.
- Use o Gerenciador dos IIS.
- Use a ferramenta de linha de comando AppCmd.exe.
Depois que o módulo for removido do aplicativo, ele não estará ativo nesse aplicativo. No entanto, se o módulo for nativo, ele ainda será carregado no processo de trabalho do servidor e poderá ser usado por outros aplicativos que não o removeram.
Observação
A seção de configuração será desbloqueada por padrão se ASP.NET estiver instalado. Esse desbloqueio padrão permite que os aplicativos desabilitem módulos nativos e gerenciados habilitados globalmente e adicionem novos módulos gerenciados. Esta seção de configuração pode ser bloqueada no nível do servidor para impedir totalmente a modificação ou impedir a remoção de entradas de módulo específicas, se desejado pelo administrador.
Precondições
Há outro atributo em uma entrada de módulo chamada pré-condição. O mecanismo principal dos IIS usa pré-condições para determinar quando habilitar um módulo específico. Os motivos de desempenho, por exemplo, podem determinar que você só deseja executar módulos gerenciados para solicitações que também vão para um manipulador gerenciado. A pré-condição no exemplo a seguir (precondition="managedHandler") habilita apenas o módulo de autenticação de formulários para solicitações que também são tratadas por um manipulador gerenciado, como solicitações para .aspx ou arquivos .asmx:
<add name="FormsAuthentication"type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
Se você remover o atributo precondition="managedHandler", a autenticação de formulários também se aplicará ao conteúdo que não é atendido por manipuladores gerenciados, como extensões .html, .jpg, .doc, mas também para extensões ASP clássicas (.asp) ou PHP (.php). Consulte "Como aproveitar o pipeline integrado dos IIS" para obter um exemplo de como habilitar os módulos do ASP.NET a serem executados para todo o conteúdo.
Você também pode usar um atalho para permitir que todos os módulos gerenciados (ASP.NET) sejam executados para todas as solicitações em seu aplicativo, independentemente da pré-condição "managedHandler". Para permitir que todos os módulos gerenciados sejam executados para todas as solicitações sem configurar cada entrada de módulo para remover a pré-condição "managedHandler", use a propriedade runAllManagedModulesForAllRequests na seção <modules>
:
<modules runAllManagedModulesForAllRequests="true"/>
Quando você usa essa propriedade, a pré-condição "managedHandler" não tem efeito e todos os módulos gerenciados serão executados para todas as solicitações.
Consultar, adicionar e remover módulos usando o Gerenciador dos IIS
O Gerenciador dos IIS fornece uma maneira fácil de consultar, adicionar ou remover módulos.
- Para abrir o Gerenciador dos IIS, clique em Iniciar, digite inetmgr na caixa Pesquisar e pressione ENTER.
- Clique no nome do computador do servidor IIS.
- Clique no ícone Módulos na categoria IIS.
Figura 1: Gerenciador dos IIS
Para gerenciar os módulos habilitados para um aplicativo específico
- Conecte-se a esse aplicativo usando o modo de exibição de árvore à esquerda.
- Navegue para painel do recurso Módulos.
- Clique em Adicionar Módulo Gerenciado para adicionar um Módulo Gerenciado ao seu aplicativo. Adicionar o Módulo Nativo só permite adicionar um módulo que já está registrado no nível do servidor.
Para remover um módulo do aplicativo
- Clique no módulo na lista. A tarefa Remover é exibida no painel esquerdo.
- Clique em Remover.
Figura 2: Lista de módulos no Gerenciador dos IIS
Gerenciar módulos pela linha de comando
Para gerenciar rapidamente módulos pela linha de comando ou automatizar tarefas de gerenciamento de módulos, use a ferramenta de linha de comando AppCmd.exe.
Para instalar um módulo usando o AppCmd.exe
No Prompt de Comando, digite o comando a seguir, substituindo valores em itálico pelos valores do módulo em seu computador.
Appcmd.exe install module /name:MODULE_NAME /image:PATH_TO_DLL
Observação
A instalação de um módulo nativo o habilita automaticamente no nível do servidor.
Por exemplo, o comando a seguir instala o módulo Default Document.
%windir%\system32\inetsrv\appcmd.exe install module /name:DefaultDocumentModule /image:%windir%\system32\inetsrv\defdoc.dll
Se você executar o comando em um computador onde o módulo já esteja carregado, receberá uma mensagem de erro semelhante à seguinte:
ERROR (message:Falha ao adicionar elemento de coleção duplicado "DefaultDocumentModule".)
Para desinstalar um módulo usando o AppCmd.exe
No Prompt de Comando, digite o comando a seguir, substituindo valores em itálico pelos valores do módulo em seu computador.
Appcmd.exe uninstall module MODULE_NAME
Observação
Desinstalar um módulo desabilita-o automaticamente no nível do servidor.
Por exemplo, o comando a seguir desinstala o módulo Default Document. Esse comando é fornecido apenas como exemplo. Você só deve executá-lo em um servidor de teste.
%windir%\system32\inetsrv\appcmd.exe uninstall module DefaultDocumentModule
Para listar os módulos habilitados para um aplicativo ou globalmente
No Prompt de Comando, digite o comando a seguir, substituindo valores no texto itálico pelos valores do módulo em seu computador.
Appcmd.exe list modules [/app.name:APPLICATION_NAME]
Por exemplo, o comando a seguir lista os módulos habilitados para o Site Padrão.
%windir%\system32\inetsrv\appcmd.exe list modules /app.name:"Default Web Site"
E esse comando lista os módulos instalados globalmente.
%windir%\system32\inetsrv\appcmd.exe list modules
Para habilitar um módulo para um aplicativo específico ou globalmente
No Prompt de Comando, digite o comando a seguir, substituindo valores no texto itálico pelos valores do módulo em seu computador.
Appcmd.exe add module /name:MODULE_NAME /type:MGD_TYPE
Por exemplo, o comando a seguir adiciona o módulo Forms Authentication ao Site Padrão.
%windir%\system32\inetsrv\appcmd.exe add module /name:FormsAuthentication /type:System.Web.Security.FormsAuthenticationModule /app.name:"Default Web Site"
E esse comando adiciona o módulo Forms Authentication globalmente.
%windir%\system32\inetsrv\appcmd.exe add module /name:FormsAuthentication /type:System.Web.Security.FormsAuthenticationModule
Para desabilitar um módulo para um aplicativo específico ou globalmente
No Prompt de Comando, digite o comando a seguir, substituindo valores no texto itálico pelos valores do módulo em seu computador.
Appcmd.exe delete module MODULE_NAME [/app.name:APPLICATION_NAME]
Por exemplo, o comando a seguir remove o módulo Forms Authentication do Site Padrão.
%windir%\system32\inetsrv\appcmd.exe delete module FormsAuthentication /app.name:"Default Web Site"
E esse comando remove o módulo Forms Authentication globalmente.
%windir%\system32\inetsrv\appcmd.exe delete module FormsAuthentication
Para obter mais ajuda sobre a sintaxe de cada um dos comandos do AppCmd.exe
Para exibir os comandos com suporte no objeto Module, digite o seguinte comando:
Appcmd.exe module /?
Para exibir o uso de cada comando, digite o seguinte comando:
Appcmd.exe install module /?Appcmd add module /?
Referência do módulo
O servidor IIS está pronto para personalização. Leia a lista a seguir com cuidado para evitar efeitos colaterais, perda de recursos ou remoção de recursos de segurança.
Módulos utilitários
Esses módulos não fornecem serviços de solicitação, mas auxiliam o mecanismo de servidor com sua operação interna.
Nome do módulo: | UriCacheModule |
---|---|
Descrição: | Implementa um cache genérico para o estado do servidor específico da URL, como a configuração. Com este módulo, o servidor lê apenas a configuração da primeira solicitação de uma URL específica e reutiliza-a em solicitações subsequentes até que ela seja alterada. |
Seções de configuração: | Nenhum. |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Perda de desempenho devido ao estado em cache para cada recuperação de URL em cada solicitação. |
Nome do módulo: | FileCacheModule |
Descrição: | Armazena em cache identificadores de arquivo para arquivos abertos pelo mecanismo do servidor e módulos. |
Seções de configuração: | Nenhum. |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Perda de desempenho. Se os identificadores de arquivo não forem armazenados em cache, os arquivos deverão ser abertos para cada solicitação. |
Nome do módulo: | TokenCacheModule |
Descrição: | Armazena em cache tokens de segurança do Windows para esquemas de autenticação baseados em senha (autenticação anônima, autenticação básica, autenticação de certificado de cliente dos IIS). |
Seções de configuração: | Nenhum. |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Perda de desempenho. Os usuários devem estar conectados para cada solicitação se o token não estiver armazenado em cache. Pode resultar em um grande impacto no desempenho. Por exemplo, se uma página HTML protegida por senha faz referência a 50 imagens que também estão protegidas, 51 chamadas de logonUser ao banco de dados de contas local, ou pior, a um controlador de domínio remoto, resultam em um problema de desempenho. |
Nome do módulo: | ManagedEngine |
Descrição: | O mecanismo gerenciado tem um lugar especial em todos os outros módulos. Ele é responsável por fornecer a integração dos IIS para conectar-se ao runtime do ASP.NET. |
Seções de configuração: | |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | A integração do ASP.NET será desabilitada. Nenhum dos módulos gerenciados declarados no <modules> ou nos manipuladores declarados do ASP.NET na seção <handlers> são chamados quando o Pool de Aplicativos é executado no Modo Integrado. |
Nome do módulo: | HttpCacheModule |
Descrição: | O HttpCacheModule implementa o cache de saída dos IIS e também a lógica para armazenar itens em cache no cache http.sys. Defina o tamanho do cache, os perfis de cache de saída etc. por meio da configuração. |
Seções de configuração: | System.webServer/caching |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | O conteúdo não será mais armazenado em cache no modo kernel. Os perfis de cache são ignorados. A remoção do HttpCacheModule provavelmente terá efeitos adversos sobre o desempenho e o uso de recursos. |
Nome do módulo: | DynamicCompressionModule |
Descrição: | Implementa a compactação na memória do conteúdo dinâmico. |
Seções de configuração: | system.webServer/httpCompression e system.webServer/urlCompression. |
Dependências: | Não haverá dependências porque a compactação dinâmica é desativada por padrão. |
Nome do módulo: | StaticCompressionModule |
Descrição: | Implementa a compactação (na memória, bem como persistente no sistema de arquivos) do conteúdo estático. |
Seções de configuração: | system.webServer/httpCompression e system.webServer/urlCompression |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Saturação potencial de largura de banda devido ao conteúdo descompactado que está sendo enviado de volta ao cliente. |
Nome do módulo: | DefaultDocumentModule |
Descrição: | Implementa a funcionalidade de documento padrão. As solicitações que chegam com uma barra final /serão redirecionadas para um documento na lista de documentos padrão. |
Seções de configuração: | system.webServer/defaultDocument |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Solicitações para /, por exemplo http://localhost/ , retornam um erro 404. Se um directoryBrowsing estiver habilitado, uma listagem de diretório será gerada. |
Nome do módulo: | DirectoryListingModule |
Descrição: | Implementa a funcionalidade de pesquisa no diretório. |
Seções de configuração: | system.webServer/directoryBrowse |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Se o módulo de documento padrão ou o módulo directoryListing manipularem uma solicitação para um /, será retornada uma resposta vazia. |
Nome do módulo: | ProtocolSupportModule |
Descrição: | Implementa cabeçalhos de resposta personalizados e redirecionamento. Implementa os verbos HTTP trace e Options. Implementa os suportes que permitem ou desativam o suporte de keep-alive por meio da configuração. |
Seções de configuração: | system.webServer/httpProtocol |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | As solicitações TRACE ou OPTIONS retornam uma mensagem de erro "Método 405 não permitido". |
Nome do módulo: | HttpRedirectionModule |
Descrição: | Implementa a funcionalidade de redirecionamento. |
Seções de configuração: | system.webServer/httpRedirect |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Possível problema de segurança se os recursos foram protegidos por redirecionamento. Quando o módulo Redirection é removido, o conteúdo fica acessível novamente. |
Nome do módulo: | ServerSideIncludeModule |
Descrição: | Implementa includes do lado do servidor. Este módulo é mapeado como um manipulador, executando apenas para solicitações que terminam em .stm, .shtm e .shtml. |
Seções de configuração: | system.webServer/serverSideInclude |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | O módulo de arquivo estático lida com arquivos .stm, .shtm e .shtml. Se este módulo tiver um mimeMap para essas extensões, os arquivos serão servidos como texto. No entanto, observe que esse não é o padrão. |
Nome do módulo: | StaticFileModule |
Descrição: | Envia arquivos estáticos com a extensão de arquivo .html, .jpg, bem como muitos outros. A coleção de configuração staticContent/mimeMap determina a lista de extensões de arquivo. |
Seções de configuração: | system.webServer/staticContent |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Os arquivos estáticos não são mais atendidos. As solicitações de arquivos retornam um erro 404 Não Encontrado indicando que nenhum manipulador foi correspondido. |
Nome do módulo: | AnonymousAuthenticationModule |
Descrição: | Implementa a autenticação anônima. Este módulo gerará o objeto HttpUser se uma URL estiver configurada para permitir a autenticação anônima. |
Seções de configuração: | system.webServer/security/authentication/anonymousAuthentication |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Pelo menos um módulo de autenticação deve ser configurado. O núcleo do servidor IIS verifica após a fase de autenticação se o objeto HttpUser está preenchido. O objeto HttpUser é uma estrutura de dados dos IIS. Será gerado um erro 401.2 se não houver autenticação preenchendo o objeto HttpUser. |
Nome do módulo: | CertificateMappingAuthenticationModule |
Descrição: | Mapeia certificados de cliente SSL para uma conta do Active Directory (Mapeamento de Certificados do Active Directory). |
Seções de configuração: | system.webServer/security/authentication/clientCertificateMappingAuthentication |
Dependências: | O SSL deve ser configurado para que este módulo funcione. O computador IIS também deve ser membro de um domínio do Active Directory. |
Possíveis problemas ao remover este módulo | Normalmente, as solicitações são permitidas se o Mapeamento de Certificados do Active Directory for usado para proteger um diretório; nesse caso, o módulo é removido. |
Nome do módulo: | BasicAuthenticationModule |
Descrição: | implementa a autenticação Básica HTTP descrita no RFC 2617. |
Seções de configuração: | system.webServer/security/authentication/basicAuthentication |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Pelo menos um módulo de autenticação deve ser configurado. O núcleo do servidor IIS verifica após a fase de autenticação se o objeto HttpUser está preenchido. O objeto HttpUser é uma estrutura de dados dos IIS. Será gerado um erro 401.2 se não houver autenticação preenchendo o objeto HttpUser. |
Nome do módulo: | WindowsAuthenticationModule |
Descrição: | Implementa a autenticação do Windows (NTLM ou Negotiate (Kerberos)). |
Seções de configuração: | system.webServer/security/authentication/windowsAuthentication |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Pelo menos um módulo de autenticação deve ser configurado. O núcleo do servidor IIS verifica após a fase de autenticação se o objeto HttpUser está preenchido. O objeto HttpUser é uma estrutura de dados dos IIS. Será gerado um erro 401.2 se não houver autenticação preenchendo o objeto HttpUser. |
Nome do módulo: | DigestAuthenticationModule |
Descrição: | Implementa a autenticação de código hash descrita no RFC 2617. |
Seções de configuração: | system.webServer/security/authentication/digestAuthentication |
Dependências: | O servidor IIS deve fazer parte de um domínio do Active Directory. |
Possíveis problemas ao remover este módulo | Pelo menos um módulo de autenticação deve ser configurado. O núcleo do servidor IIS verifica após a fase de autenticação se o objeto HttpUser está preenchido. O objeto HttpUser é uma estrutura de dados dos IIS. Será gerado um erro 401.2 se não houver autenticação preenchendo o objeto HttpUser. |
Nome do módulo: | IISCertificateMappingAuthenticationModule |
Descrição: | Implementa o mapeamento de certificado dos IIS. Mapeia certificados de cliente SSL para uma conta do Windows. Ao contrário do mapeamento de Certificado do Active Directory, as credenciais do usuário e as regras de mapeamento são armazenadas no repositório de configuração dos IIS |
Seções de configuração: | system.webServer/iisClientCertificateMappingAuthentication |
Dependências: | O SSL com o requisito de receber certificados de cliente deve ser configurado para que este módulo funcione. |
Possíveis problemas ao remover este módulo | Pelo menos um módulo de autenticação deve ser configurado. O núcleo do servidor IIS verifica após a fase de autenticação se o objeto HttpUser está preenchido. O objeto HttpUser é uma estrutura de dados dos IIS. Será gerado um erro 401.2 se não houver autenticação preenchendo o objeto HttpUser. |
Nome do módulo: | UrlAuthorizationModule |
Descrição: | Implementa a autorização com base nas regras de configuração. |
Seções de configuração: | system.webServer/security/authorization |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | As regras de autorização que protegeram o conteúdo não são mais avaliadas. Pode ocorrer a entrega de conteúdo que deveria estar protegido. |
Nome do módulo: | IsapiModule |
Descrição: | Implementa a funcionalidade de extensão ISAPI. |
Seções de configuração: | system.webServer/isapiCgiRestriction |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | As extensões ISAPI mapeadas na seção <handlers> (modules="IsapiModule") ou explicitamente chamadas de extensões ISAPI não funcionarão mais. |
Nome do módulo: | IsapiFilterModule |
Descrição: | Implementa a funcionalidade de filtro ISAPI. |
Seções de configuração: | system.webServer/isapiFilters |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Filtros ISAPI frequentemente implementam funcionalidades nas quais os aplicativos dependem. Alguns exemplos são o ASP.NET ou o SharePoint. O ASP.NET, por exemplo, precisa da aspnet_filter.dll para proteger conteúdo confidencial e reescrever URLs. A remoção deste módulo impede que os IIS carreguem filtros ISAPI. Os aplicativos podem parar de funcionar ou o conteúdo confidencial pode ser exposto. |
Nome do módulo: | IpRestrictionModule |
Descrição: | Implementa um esquema de autorização com base no endereço IPv4 da solicitação do cliente. |
Seções de configuração: | system.webServer/security/ipSecurity |
Dependências: | A pilha IPv4 deve ser instalada. |
Possíveis problemas ao remover este módulo | Clientes com endereços IP na lista ipSecurity serão permitidos. |
Nome do módulo: | RequestFilteringModule |
Descrição: | Implementa um conjunto poderoso de regras de segurança que rejeitam a solicitação suspeita em um estágio muito inicial. Este módulo é o sucessor do filtro ISAPI UrlScan.DLL que foi enviado para os IIS 5.0 e 6.0. |
Seções de configuração: | system.webServer/security/requestFiltering |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Se este módulo for removido, as regras especificadas na seção requestFiltering não se aplicarão mais. Isso pode resultar em possíveis problemas de segurança. |
Nome do módulo: | CustomLoggingModule |
Descrição: | Implementa a interface ILogPlugin sobre o IIS. O ILogPlugin é uma implementação COM anterior que permitiu que os clientes estendessem o registro em log dos IIS. Não recomendamos estender os IIS usando essa interface. Em vez disso, os clientes devem escrever um módulo e assinar a notificação de RQ_LOG_REQUEST. |
Seções de configuração: | system.webServer/httpLogging e system.applicationhost/sites/site/logFile/customLogPluginClsid |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Um plug-in de log personalizado não será mais chamado. Por exemplo, o log ODBC é implementado como ILogPlugin. |
Nome do módulo: | CustomErrorModule |
Descrição: | Implementa erros personalizados e o recurso de erro detalhado dos IIS. |
Seções de configuração: | system.webServer/httpErrors |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Os IIS retornam páginas em branco com informações mínimas quando ocorrem erros no servidor principal. Os usuários remotos podem ver informações detalhadas de erro provenientes de componentes do servidor, o que pode resultar na divulgação de informações. |
Nome do módulo: | HttpLoggingModule |
Descrição: | Implementa o registro em log padrão dos IIS informando ao HTTP.SYS o que registrar em log. |
Seções de configuração: | system.applicationHost/log e system.webServer/httpLogging |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | O registro em log dos IIS padrão não funcionará mais. |
Nome do módulo: | FailedRequestsTracingModule |
Descrição: | Implementa o rastreamento de solicitações com falha. Defina e configura regras para solicitações com falha por meio da configuração. |
Seções de configuração: | system.webServer/tracing e system.webServer/httpTracing |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | O rastreamento de solicitações HTTP não funcionará mais. |
Nome do módulo: | RequestMonitorModule |
Descrição: | Implementa a RSCA (Interface de Controle e Estado em Tempo de Execução) dos IIS. A RSCA permite que os usuários consultem informações em tempo de execução, como solicitações atualmente em execução, estado de início/parada de um site da Web ou domínios de aplicativos em execução atualmente. |
Seções de configuração: | Nenhum. |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | As ferramentas não poderão enumerar as solicitações em execução no momento. |
Nome do módulo: | CgiModule |
Descrição: | Implementa o CGI sobre os IIS. |
Seções de configuração: | system.webServer/cgi e system.webServer/isapiCgiRestriction |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Os programas CGI deixarão de funcionar. |
Nome do módulo: | TracingModule |
Descrição: | Implementa o rastreamento ETW. |
Seções de configuração: | system.webServer/httpTracing |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | O rastreamento ETW não funcionará se este módulo for removido. |
Nome do módulo: | ConfigurationValidationModule |
Descrição: | Valida se a configuração do aplicativo ASP.NET foi migrada para funcionar no modo Integrado. |
Seções de configuração: | system.webServer/Validation |
Dependências: | Nenhum. |
Possíveis problemas ao remover este módulo | Os aplicativos que especificam a configuração ASP.NET herdada para módulos e manipuladores não gerarão erros de migração. Um novo aplicativo que não foi migrado funcionará incorretamente. |
Módulos gerenciados:
Nome do módulo: | OutputCache |
---|---|
Descrição: | Implementa o recurso de cache de saída do ASP.NET. |
Seções de configuração: | system.web/caching/outputCache |
Dependências: | O módulo ManagedEngine deve ser instalado. |
Possíveis problemas ao remover este módulo | O ASP.NET não será capaz de armazenar em cache as respostas de saída para páginas configuradas para serem armazenadas em cache de saída. |
Nome do módulo: | Sessão |
Descrição: | Consulte a documentação do ASP.NET 2.0 para obter detalhes |
Seções de configuração: | system.web/sessionState |
Dependências: | O módulo ManagedEngine deve ser instalado |
Possíveis problemas ao remover este módulo | O estado da sessão gerenciada não está disponível. |
Nome do módulo: | WindowsAuthentication |
Descrição: | Consulte a documentação do ASP.NET 2.0 para obter detalhes. |
Seções de configuração: | system.web/authentication |
Dependências: | O módulo ManagedEngine deve ser instalado |
Possíveis problemas ao remover este módulo | O evento WindowsAuthentication.OnAuthenticate não será gerado, o que pode impedir a execução de algum código de autenticação personalizado do ASP.NET. Além disso, o usuário autenticado não será substituído pelo usuário UNC quando estiver no compartilhamento UNC (comportamento de ASP.NET herdado). Este módulo não afeta a autenticação NTLM/Kerberos para aplicativos ASP.NET no modo integrado e não é necessário fora do evento WindowsAuthentication.OnAuthenticate e do comportamento UNC herdado. |
Nome do módulo: | FormsAuthentication |
Descrição: | Consulte a documentação do ASP.NET 2.0 para obter detalhes. |
Seções de configuração: | system.web/authentication |
Dependências: | O módulo ManagedEngine deve ser instalado |
Possíveis problemas ao remover este módulo | O recurso de autenticação baseada em formulários do ASP.NET não estará disponível, o que resultará em clientes com tíquete de autenticação de formulários não sendo capazes de acessar recursos protegidos. |
Nome do módulo: | DefaultAuthentication |
Descrição: | Consulte a documentação do ASP.NET 2.0 para obter detalhes. |
Seções de configuração: | system.web/authentication |
Dependências: | O módulo ManagedEngine deve ser instalado |
Possíveis problemas ao remover este módulo | Alguns recursos do ASP.NET podem não funcionar para solicitações anônimas se o modo de autenticação do ASP.NET for Formulários. Além disso, o evento DefaultAuthentication.OnAuthenticate não será gerado. |
Nome do módulo: | RoleManager |
Descrição: | Consulte a documentação do ASP.NET 2.0 para obter detalhes. |
Seções de configuração: | Nenhum. |
Dependências: | O módulo ManagedEngine deve ser instalado. |
Possíveis problemas ao remover este módulo | A funcionalidade do Gerenciador de Funções não estará disponível. |
Nome do módulo: | UrlAuthorization |
Descrição: | Consulte a documentação do ASP.NET 2.0 para obter detalhes. O módulo UrlAuthorization nativo implementa a funcionalidade de autorização de URL no código nativo. Isso fornece uma alternativa nativa escalonável e rápida para o módulo de autorização de URL gerenciada. |
Seções de configuração: | system.web/authorization. |
Dependências: | O módulo ManagedEngine deve ser instalado. |
Possíveis problemas ao remover este módulo | As regras de autorização do ASP.NET serão ignoradas, possivelmente resultando em divulgação de informações e outros comprometimentos de segurança. |
Nome do módulo: | AnonymousIdentification |
Descrição: | Consulte a documentação do ASP.NET 2.0 para obter detalhes. |
Seções de configuração: | |
Dependências: | O módulo ManagedEngine deve ser instalado. |
Possíveis problemas ao remover este módulo | O recurso de identificação anônima usado pelo perfil do ASP.NET não funcionará. |
Nome do módulo: | Perfil |
Descrição: | Consulte a documentação do ASP.NET 2.0 para obter detalhes. |
Seções de configuração: | |
Dependências: | O módulo ManagedEngine deve ser instalado. |
Possíveis problemas ao remover este módulo | O recurso perfil do ASP.NET não funcionará. |
Nome do módulo: | UrlMappingsModule |
Descrição: | Consulte a documentação do ASP.NET 2.0 para obter detalhes. |
Seções de configuração: | |
Dependências: | O módulo ManagedEngine deve ser instalado. |
Possíveis problemas ao remover este módulo | Os mapeamentos de URL do ASP.NET não funcionarão. |