Autenticação do Windows <windowsAuthentication>
Visão geral
O elemento <windowsAuthentication>
define a configuração para o módulo de autenticação do Windows do IIS (Serviços de Informações da Internet) 7. Você pode usar a autenticação do Windows quando o servidor IIS 7 é executado em uma rede corporativa que está usando identidades de domínio de serviço do Microsoft Active Directory ou outras contas do Windows para identificar usuários. Por isso, você pode usar a autenticação do Windows independentemente do servidor ser ou não membro de um domínio do Active Directory.
A autenticação do Windows (anteriormente chamada NTLM e também conhecida como autenticação de desafio/resposta do Windows NT) é uma forma segura de autenticação porque o nome de usuário e a senha são verificadas por hash antes de serem enviados pela rede. Quando você habilita a autenticação do Windows, o navegador cliente envia uma versão com hash forte da senha em uma troca criptográfica com o servidor Web.
A autenticação do Windows oferece suporte a dois protocolos de autenticação, Kerberos e NTLM, que são definidos no elemento <providers>
. Quando você instala e habilita a autenticação do Windows no IIS 7, o protocolo padrão é Kerberos. O elemento <windowsAuthentication>
também pode conter um atributo useKernelMode que configura se o recurso de autenticação de modo kernel que é novo no Windows Server 2008 deve ser usado.
A autenticação do Windows é mais adequada para um ambiente de intranet pelos seguintes motivos:
- Computadores cliente e servidores Web estão no mesmo domínio.
- Os administradores podem verificar se cada navegador cliente é o Internet Explorer 2.0 ou posterior.
- Conexões de proxy HTTP, que não são suportadas pelo NTLM, não são necessárias.
- O Kerberos versão 5 requer uma conexão com o Active Directory, o que não é viável em um ambiente da Internet.
Novidades no IIS 7.5
O elemento <extendedProtection>
foi introduzido no IIS 7.5, que permite definir as configurações para os novos recursos de proteção estendida que foram integrados à autenticação do Windows.
Compatibilidade
Versão | Observações |
---|---|
IIS 10.0 | O elemento <windowsAuthentication> não foi modificado no IIS 10.0. |
IIS 8.5 | O elemento <windowsAuthentication> não foi modificado no IIS 8.5. |
IIS 8.0 | O elemento <windowsAuthentication> não foi modificado no IIS 8.0. |
IIS 7.5 | O elemento <extendedProtection> foi adicionado ao IIS 7.5. |
IIS 7.0 | O elemento <windowsAuthentication> foi introduzido no IIS 7.0. |
IIS 6,0 | O elemento <windowsAuthentication> substitui partes das propriedades de metabase AuthType e AuthFlags do IIS 6.0. |
Instalação
A instalação padrão do IIS 7 e posterior não inclui o serviço de função autenticação do Windows. Para usar a autenticação do Windows no IIS, você deve instalar o serviço de função, desabilitar a autenticação anônima para seu site ou aplicativo e habilitar a autenticação do Windows para o site ou aplicativo.
Observação
Depois de instalar o serviço de função, o IIS 7 confirma as seguintes definições de configuração para o arquivo ApplicationHost.config.
<windowsAuthentication enabled="false" />
Windows Server 2012 R2 ou Windows Server 2012
- Na barra de tarefas, clique em Gerenciador do Servidor.
- No Gerenciador do Servidor, clique no menu Gerenciar e clique em Adicionar Funções e Recursos.
- No assistente Adicionar Funções e Recursos, clique em Avançar. Selecione o tipo de instalação e clique em Avançar. Selecione o servidor de destino e clique em Avançar.
- Na página Funções de Servidor, expanda Servidor Web (IIS), Servidor Web, expanda Segurança e selecione Autenticação do Windows. Clique em Avançar.
. - Na página Selecionar recursos, clique em Avançar.
- Na página Confirmar seleções de instalação, clique em Instalar.
- Na página Resultados , clique em Fechar.
Windows 8 ou Windows 8.1
- Na tela Iniciar, mova o ponteiro até o canto inferior esquerdo, clique com o botão direito do mouse no botão Iniciar e clique em Painel de Controle.
- Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar recursos do Windows.
- Expanda Serviços de Informações da Internet, expanda Serviços da World Wide Web, expanda Segurança e, em seguida, selecione Autenticação do Windows.
- Clique em OK.
- Clique em Fechar.
Windows Server 2008 R2 ou Windows Server 2008
- Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor.
- No painel de hierarquia do Gerenciador do Servidor, expanda Funções e clique em Servidor Web (IIS).
- No painel Servidor Web (IIS), role até a seção Serviços de Função e clique em Adicionar Serviços de Função.
- Na página Selecionar Serviços de Função do Assistente para Adicionar Serviços de Função, selecione Autenticação do Windows e clique em Avançar.
- Na página Confirmar Seleções de Instalação, clique em Instalar.
- Na página Resultados , clique em Fechar.
Windows Vista ou Windows 7
- Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
- Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows.
- Expanda Serviços de Informações da Internet e, em seguida, Serviços World Wide Web e, em seguida, Segurança.
- Selecione Autenticação do Windows e clique em OK.
Instruções
Como habilitar a autenticação do Windows para um site, aplicativo Web ou serviço Web
Abra o Gerenciador dos Serviços de Informações da Internet (IIS):
Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows 8 ou Windows 8.1:
- Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
- Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:
- Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows Vista ou Windows 7:
- Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
- Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
No painel Conexões, expanda o nome do servidor, expanda Sites e o site, aplicativo ou serviço Web para o qual você deseja habilitar a autenticação do Windows.
Role até a seção Segurança no painel Página Inicial e clique duas vezes em Autenticação.
No painel Autenticação, selecione Autenticação do Windows e, em seguida, clique em Habilitar no painel Ações.
Como habilitar a proteção estendida para autenticação do Windows
Abra o Gerenciador dos Serviços de Informações da Internet (IIS):
Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows 8 ou Windows 8.1:
- Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
- Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:
- Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows Vista ou Windows 7:
- Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
- Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
No painel Conexões, expanda o nome do servidor, expanda Sites e, em seguida, o site, aplicativo ou serviço Web para o qual você deseja habilitar a Proteção Estendida para autenticação do Windows.
Role até a seção Segurança no painel Página Inicial e clique duas vezes em Autenticação.
No painel Autenticação, selecione Autenticação do Windows.
Clique em Configurações Avançadas no painel Ações.
Quando a caixa de diálogo Configurações Avançadas for exibida, selecione uma das seguintes opções no menu suspenso Proteção Estendida:
Clique em OK para fechar a caixa de diálogo Configurações Avançadas.
Configuração
O elemento <windowsAuthentication>
é configurável no nível do site, aplicativo ou diretório virtual no arquivo ApplicationHost.config.
Atributos
Atributo | Descrição |
---|---|
authPersistNonNTLM |
Atributo Boolean opcional. Especifica se o IIS reautentica automaticamente todas as solicitações não-NTLM (por exemplo, Kerberos), mesmo aquelas na mesma conexão. False habilita várias autenticações para as mesmas conexões. Observação: uma configuração de true significa que o cliente será autenticado apenas uma vez na mesma conexão. O IIS armazenará em cache um token ou tíquete no servidor para uma sessão TCP que permanece estabelecida. O padrão é false . |
authPersistSingleRequest |
Atributo Boolean opcional. A definição desse sinalizador como true especifica que a autenticação persiste apenas para uma única solicitação em uma conexão. O IIS redefine a autenticação no final de cada solicitação e força a reautenticação na próxima solicitação da sessão. O valor padrão é false . |
enabled |
Atributo booliano necessário. Especifica se a autenticação do Windows está habilitada. O valor padrão é false . |
useKernelMode |
Atributo Boolean opcional. Especifica se a autenticação do Windows é feita no modo kernel. True especifica que a autenticação do Windows usa o modo kernel. A autenticação no modo kernel pode melhorar o desempenho de autenticação e evitar problemas de autenticação com pools de aplicativos que são configurados para usar uma identidade personalizada. Como prática recomendada, não desabilite essa configuração se usar a autenticação Kerberos e tiver uma identidade personalizada no pool de aplicativos. O padrão é true . |
Elementos filho
Elemento | Descrição |
---|---|
extendedProtection |
Elemento opcional. Especifica as opções de proteção estendida para autenticação do Windows. Observação: esse elemento foi adicionado ao IIS 7.5. |
providers |
Elemento opcional. Especifica os provedores de suporte de segurança usados para autenticação do Windows. |
Exemplo de configuração
O elemento <windowsAuthentication>
padrão a seguir é configurado no arquivo raiz ApplicationHost.config no IIS 7.0 e desabilita a autenticação do Windows por padrão. Ele também define os dois provedores de autenticação do Windows para o IIS 7.0.
<windowsAuthentication enabled="false">
<providers>
<add value="Negotiate" />
<add value="NTLM" />
</providers>
</windowsAuthentication>
O exemplo a seguir habilita a autenticação do Windows e desabilita a autenticação anônima para um site chamado Contoso.
<location path="Contoso">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
Exemplo de código
Os exemplos a seguir desabilitam a autenticação anônima para um site chamado Contoso e, em seguida, habilitam a autenticação do Windows para o site.
AppCmd.exe
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:"False" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/windowsAuthentication /enabled:"True" /commit:apphost
Observação
Defina o parâmetro commit para apphost
quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo ApplicationHost.config.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample {
private static void Main() {
using(ServerManager serverManager = new ServerManager()) {
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso");
anonymousAuthenticationSection["enabled"] = false;
ConfigurationSection windowsAuthenticationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso");
windowsAuthenticationSection["enabled"] = true;
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim anonymousAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso")
anonymousAuthenticationSection("enabled") = False
Dim windowsAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso")
windowsAuthenticationSection("enabled") = True
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
anonymousAuthenticationSection.Properties.Item("enabled").Value = false;
var windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
windowsAuthenticationSection.Properties.Item("enabled").Value = true;
adminManager.CommitChanges();
VBScript
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
anonymousAuthenticationSection.Properties.Item("enabled").Value = False
Set windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
windowsAuthenticationSection.Properties.Item("enabled").Value = True
adminManager.CommitChanges()