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

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

  3. Role até a seção Segurança no painel Página Inicial e clique duas vezes em Autenticação.

  4. No painel Autenticação, selecione Autenticação Anônima e clique em Desabilitar no painel Ações.
    Screenshot that shows the Authentication pane. Anonymous Authentication is enabled and selected.

Como alterar credenciais de autenticação anônima da conta IUSR

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

  3. Role até a seção Segurança no painel Página Inicial e clique duas vezes em Autenticação.

  4. No painel Autenticação, selecione Autenticação Anônima e clique em Editar... no painel Ações.

  5. 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.
      Screenshot that shows the Edit Anonymous Authentication Credentials dialog box. Application pool identity is selected.

    • 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.
      Screenshot that shows the Set Credentials dialog box.

      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

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

  3. Role até a seção Segurança no painel Página Inicial e clique duas vezes em Autenticação.

  4. No painel Autenticação, selecione Autenticação do Windows e, em seguida, clique em Habilitar no painel Ações.
    Screenshot that shows the Authentication pane. Windows Authentication is disabled and selected.

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