Autenticação Digest <digestAuthentication>
Visão geral
O elemento <digestAuthentication>
contém definições de configuração para o módulo de autenticação Digest do IIS (Serviços de Informações da Internet) 7. Você configura esse elemento para habilitar ou desabilitar a autenticação Digest e, opcionalmente, pode especificar a área de autenticação Digest.
A autenticação Digest não é tão amplamente usada quanto a autenticação Básica, mas tem algumas vantagens distintas sobre a autenticação Básica ou a autenticação do Windows. A principal desvantagem de usar a autenticação básica sobre meios de comunicação não criptografados é que o nome de usuário e a senha do cliente são enviados como uma mensagem de texto simples codificada em base 64, tornando muito fácil para um usuário mal-intencionado espionar a comunicação e recuperar o nome de usuário e a senha. A autenticação do Windows resolve esse problema por meio de várias opções de segurança, mas a autenticação do Windows normalmente não funciona em um ambiente da Internet.
A autenticação Digest aborda ambas as limitações acima pelos seguintes meios:
- Ao contrário do esquema de texto não criptografado usado pela autenticação Básica, a autenticação Digest faz com que o cliente envie um hash das informações do cliente pelo canal de comunicação, portanto, o nome de usuário e a senha do cliente nunca são enviados pela rede.
- A autenticação Digest funciona bem na Internet, tornando a autenticação Digest mais adequada para esse ambiente do que a autenticação do Windows.
Observação
A autenticação Digest protege apenas o nome de usuário e a senha do cliente - o corpo da comunicação HTTP ainda está em texto não criptografado. Para proteger o corpo da sua comunicação, você deve usar o protocolo SSL.
Compatibilidade
Versão | Observações |
---|---|
IIS 10.0 | O elemento <digestAuthentication> não foi modificado no IIS 10.0. |
IIS 8.5 | O elemento <digestAuthentication> não foi modificado no IIS 8.5. |
IIS 8.0 | O elemento <digestAuthentication> não foi modificado no IIS 8.0. |
IIS 7.5 | O elemento <digestAuthentication> não foi modificado no IIS 7.5. |
IIS 7.0 | O elemento <digestAuthentication> foi introduzido no IIS 7.0. |
IIS 6,0 | O elemento <digestAuthentication> 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 Digest. Para usar a autenticação Digest no IIS 7 e versões posteriores, 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 Digest para o site ou aplicativo.
Para instalar o serviço de função Autenticação Digest, use as etapas a seguir.
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 Digest. 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 Digest.
- 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 Digest 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, expanda Serviços da World Wide Web, expanda Segurança, selecione Autenticação Digest e clique em OK.
Instruções
Como habilitar a autenticação Digest e desabilitar a autenticação anônima
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 clique no site, aplicativo ou serviço Web para o qual você deseja habilitar a autenticação básica.
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 Digest e, no painel Ações, clique em Habilitar.
No painel Autenticação, selecione Autenticação Anônima e clique em Desabilitar no painel Ações.
Configuração
O elemento <digestAuthentication>
é configurável no nível de site, aplicativo, diretório virtual e URL. 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.
<digestAuthentication enabled='false' />
Atributos
Atributo | Descrição |
---|---|
enabled |
Atributo booliano opcional. Especifica se a autenticação Digest está habilitada. O valor padrão é false . |
realm |
Atributo String opcional. Especifica a área de autenticação Digest. |
Elementos filho
Nenhum.
Exemplo de configuração
O exemplo de configuração a seguir habilita a autenticação Digest para um site, aplicativo Web ou serviço Web. Por padrão, essas configurações devem ser incluídas no arquivo ApplicationHost.config e você deve incluí-las em um elemento <location>
e usar o atributo path para definir o site ou aplicativo onde deseja aplicar as configurações de autenticação.
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<digestAuthentication enabled="true" />
</authentication>
</security>
Exemplo de código
Os exemplos a seguir habilitam a Autenticação Digest para um site.
AppCmd.exe
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/digestAuthentication /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 digestAuthenticationSection = config.GetSection("system.webServer/security/authentication/digestAuthentication", "Contoso");
digestAuthenticationSection["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 digestAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/digestAuthentication", "Contoso")
digestAuthenticationSection("enabled") = True
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var digestAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/digestAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
digestAuthenticationSection.Properties.Item("enabled").Value = true;
adminManager.CommitChanges();
VBScript
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set digestAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/digestAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
digestAuthenticationSection.Properties.Item("enabled").Value = True
adminManager.CommitChanges()