Autenticação de Segurança <authentication>
Visão geral
A autenticação é o mecanismo que você usa para verificar a identidade dos visitantes em seu site ou aplicativo Web. Normalmente, você faz isso atribuindo um nome de usuário e senha a um visitante ou permitindo que um visitante acesse anonimamente o conteúdo público em seu site.
Embora você use a autenticação para confirmar a identidade de um visitante, você usa a autorização para controlar o acesso do visitante às diferentes áreas do seu site ou aplicativo.
Os IIS 7 dão suporte à autenticação anônima, autenticação Básica, autenticação de Mapeamento de Certificado do Cliente, autenticação Digest, autenticação de Mapeamento de Certificado do Cliente dos IIS e autenticação do Windows. Modos de autenticação adicionais podem ser fornecidos por módulos de autenticação de terceiros.
Depois de instalar um dos módulos de autenticação, você deve habilitar o módulo de autenticação selecionado para o site, aplicativo Web ou serviço Web no qual deseja usá-lo.
Além disso, por padrão, o IIS 7 habilita a autenticação em modo kernel para o esquema de autenticação do Windows (que utiliza Kerberos ou NTLM). A autenticação no modo kernel fornece as seguintes vantagens:
- Seus aplicativos Web podem ser executados usando contas com menos privilégios.
- Se você usar a autenticação Kerberos, poderá usar uma conta diferente da conta padrão associada ao SPN (nome da entidade de serviço) do servidor.
- Se você usar a autenticação no modo kernel, poderá usar o provedor Kerberos de autenticação do Windows sem executar a configuração explícita de SPN.
Compatibilidade
Versão | Observações |
---|---|
IIS 10.0 | O elemento <authentication> não foi modificado nos IIS 10.0. |
IIS 8.5 | O elemento <authentication> não foi modificado nos IIS 8.5. |
IIS 8.0 | O elemento <authentication> não foi modificado nos IIS 8.0. |
IIS 7.5 | O elemento <authentication> não foi modificado nos IIS 7.5. |
IIS 7.0 | O elemento <authentication> foi introduzido nos IIS 7.0. |
IIS 6,0 | N/D |
Instalação
O elemento <authentication>
está incluído na instalação padrão dos IIS 7.
Instruções
Como desabilitar a autenticação anônima
Abra o Gerenciador de 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 de 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 de 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 de 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 de Serviços de Informações da Internet (IIS).
No painel Conexões, expanda o nome do servidor, expanda Sites e vá para o nível no painel de hierarquia que você deseja configurar e clique no site ou aplicativo Web.
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 Anônima e clique em Desabilitar no painel Ações.
Como alterar credenciais de autenticação anônima da conta IUSR
Abra o Gerenciador de 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 de 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 de 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 de 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 de Serviços de Informações da Internet (IIS).
No painel Conexões, expanda o nome do servidor, expanda Sites e acesse o nível no painel de hierarquia que você deseja configurar e clique no site ou aplicativo Web.
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 Anônima e clique em Editar... no painel Ações.
Na caixa de diálogo Editar credenciais de autenticação anônima, faça uma das seguintes opções:
Selecione Identidade do pool de aplicativos para usar a identidade definida para o pool de aplicativos e clique em OK.
Clique em Definir... e, em seguida, na caixa de diálogo Definir Credenciais, insira o nome de usuário da conta na caixa Nome de usuário, insira a senha da conta nas caixas Senha e Confirmar senha, clique em OK e clique em OK novamente.
Observação
Se você usar esse procedimento, conceda à nova conta privilégios mínimos somente no computador do servidor IIS.
Como habilitar a autenticação do Windows para um site, aplicativo Web ou serviço Web
Abra o Gerenciador de 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 de 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 de 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 de 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 de 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.
Configuração
O grupo de seções <authentication>
é definido na seção de configuração <system.webServer>
. Este grupo de seções define seções de configuração para todos os tipos de autenticação de usuário que você pode instalar e habilitar em seu servidor. Você pode configurá-lo no nível do servidor no arquivo ApplicationHost.config e no nível do aplicativo no arquivo Web.config.
Atributos
Nenhum.
Elementos filho
Elemento | Descrição |
---|---|
anonymousAuthentication |
Elemento opcional. Especifica as configurações de autenticação anônima. |
basicAuthentication |
Elemento opcional. Especifica as configurações para autenticação Básica. |
clientCertificateMappingAuthentication |
Elemento opcional. Especifica as configurações de autenticação de mapeamento de certificado do cliente usando o Active Directory. |
digestAuthentication |
Elemento opcional. Especifica as configurações da autenticação Digest. |
iisClientCertificateMappingAuthentication |
Elemento opcional. Especifica as configurações de autenticação de mapeamento de certificado do cliente usando os IIS. |
windowsAuthentication |
Elemento opcional. Especifica as configurações de autenticação do Windows. |
Exemplo de configuração
O exemplo de configuração a seguir desabilita a autenticação anônima para um site chamado Contoso e, em seguida, habilita a autenticação Básica e a autenticação do Windows para o site.
<location path="Contoso">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<basicAuthentication enabled="true" defaultLogonDomain="Contoso" />
<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 habilitam a autenticação Básica e 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/basicAuthentication /enabled:"True" /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 basicAuthenticationSection = config.GetSection("system.webServer/security/authentication/basicAuthentication", "Contoso");
basicAuthenticationSection["enabled"] = true;
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 basicAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/basicAuthentication", "Contoso")
basicAuthenticationSection("enabled") = True
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 basicAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/basicAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
basicAuthenticationSection.Properties.Item("enabled").Value = true;
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 basicAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/basicAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
basicAuthenticationSection.Properties.Item("enabled").Value = True
Set windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
windowsAuthenticationSection.Properties.Item("enabled").Value = True
adminManager.CommitChanges()