Compartilhar via


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

  1. Na barra de tarefas, clique em Gerenciador do Servidor.
  2. No Gerenciador do Servidor, clique no menu Gerenciar e clique em Adicionar Funções e Recursos.
  3. 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.
  4. 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.
    Image of Web Server and Security pane expanded with Digest Authentication selected. .
  5. Na página Selecionar recursos, clique em Avançar.
  6. Na página Confirmar seleções de instalação, clique em Instalar.
  7. Na página Resultados , clique em Fechar.

Windows 8 ou Windows 8.1

  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.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar recursos do Windows.
  3. 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.
    Screenshot of World Wide Web Services and Security pane expanded with Digest Authentication highlighted.
  4. Clique em OK.
  5. Clique em Fechar.

Windows Server 2008 R2 ou Windows Server 2008

  1. Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor.
  2. No painel de hierarquia do Gerenciador do Servidor, expanda Funções e clique em Servidor Web (IIS).
  3. No painel Servidor Web (IIS), role até a seção Serviços de Função e clique em Adicionar Serviços de Função.
  4. 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. Image of Select Role Services page displaying Digest Authentication option selected.
  5. Na página Confirmar Seleções de Instalação, clique em Instalar.
  6. Na página Resultados , clique em Fechar.

Windows Vista ou Windows 7

  1. Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows.
  3. 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.
    Screenshot of World Wide Web Services and Security pane expanded showing Digest Authentication selected.

Instruções

Como habilitar a autenticação Digest e desabilitar a autenticação anônima

  1. 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).
  2. 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.

  3. Role até a seção Segurança no painel Página Inicial e clique duas vezes em Autenticação.
    Image of Home pane in Security section with Authentication application highlighted.

  4. No painel Autenticação, selecione Autenticação Digest e, no painel Ações, clique em Habilitar.

  5. No painel Autenticação, selecione Autenticação Anônima e clique em Desabilitar no painel Ações.
    Image of Authentication pane displaying Anonymous Authentication option highlighted.

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()