Compartilhar via


Autenticação anônima <anonymousAuthentication>

Visão geral

O elemento <anonymousAuthentication> controla como o IIS (Serviços de Informações da Internet) 7 processa solicitações de usuários anônimos. Você pode modificar o elemento <anonymousAuthentication> para desabilitar a autenticação anônima ou configurar o IIS (Serviços de Informações da Internet) para usar uma conta de usuário personalizada para processar solicitações anônimas.

A autenticação anônima fornece aos usuários acesso às áreas públicas do seu site ou FTP sem solicitar um nome de usuário ou uma senha. Por padrão, a conta IUSR, que foi introduzida no IIS 7.0 e substitui a conta IUSR_computername do IIS 6.0, é usada para permitir acesso anônimo. Um aplicativo é um agrupamento de arquivos que entrega conteúdo ou fornece serviços por protocolos, como o HTTP. Quando você cria um aplicativo no IIS, o caminho do aplicativo se torna parte da URL do site.

Por padrão, o IIS 7 usa autenticação anônima. Você deve desabilitar a autenticação anônima para qualquer site, aplicativo Web ou serviço Web para o qual deseja habilitar outros métodos de autenticação, como autenticação básica ou do Windows.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <anonymousAuthentication> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <anonymousAuthentication> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <anonymousAuthentication> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <anonymousAuthentication> não foi modificado no IIS 7.5.
IIS 7.0 O elemento <anonymousAuthentication> foi introduzido no IIS 7.0.
IIS 6,0 O elemento <anonymousAuthentication> substitui as propriedades de metabase AuthFlags, AnonymousUserName e AnonymousUserPassword do IIS 6.0.

Instalação

O elemento <anonymousAuthentication> está incluído na instalação padrão do IIS 7.

Instruções

Como 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 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 of the Authentication pane with Anonymous Authentication selected.

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

  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 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 coisas:

    • Selecione Identidade do pool de aplicativos para usar a identidade definida para o pool de aplicativos e clique em OK.
      Screenshot of setting Anonymous user identity to Application pool identity.

    • 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 of a blank Set Credentials dialog.

      Observação

      Se você usar esse procedimento, conceda à nova conta privilégios mínimos somente no computador servidor IIS.

Configuração

O elemento <anonymousAuthentication> é configurável no nível do site e do aplicativo no arquivo Web.config.

Atributos

Atributo Descrição
enabled Atributo booliano opcional.

Especifica se a autenticação anônima está habilitada.

O valor padrão é true.
logonMethod Atributo de enumeração opcional.

O atributo logonMethod pode ser um dos valores possíveis a seguir. O padrão é ClearText.
Valor Descrição
Batch Esse tipo de logon destina-se a servidores em lote, onde os processos podem ser executados em nome de um usuário sem a intervenção direta deste usuário.

O valor numérico é 1.
ClearText Esse tipo de logon preserva o nome e a senha no pacote de autenticação, o que permite que o servidor faça conexões com outros servidores de rede enquanto representa o cliente.

O valor numérico é 3.
Interactive Esse tipo de logon destina-se a usuários que usarão interativamente o computador.

O valor numérico é 0.
Network Esse tipo de logon é indicado para servidores de alto desempenho na autenticação de senhas em texto não criptografado. As credenciais não são armazenadas em cache para esse tipo de logon.

O valor numérico é 2.
password Atributo String opcional.

Especifica a senha para autenticação anônima.

Observação: para evitar o armazenamento de cadeias de caracteres de senha não criptografadas em arquivos de configuração, use sempre AppCmd.exe ou o gerenciador do IIS para inserir senhas. Se você usar essas ferramentas de gerenciamento, as cadeias de caracteres de senha serão criptografadas automaticamente antes de serem gravadas nos arquivos de configuração XML. Isso fornece melhor segurança de senha do que armazenar senhas não criptografadas.
username Atributo String opcional.

Especifica o nome de usuário para autenticação anônima. Se você deixar esse valor em branco (ou seja, username=""), a autenticação anônima usará a identidade do pool de aplicativos para autenticar usuários anônimos.

O valor padrão é IUSR.

Elementos filho

Nenhum.

Exemplo de configuração

O exemplo de configuração a seguir configura a autenticação anônima para um site ou aplicativo Web do IIS 7 para usar uma conta local no servidor Web. (O IIS 7 usa automaticamente a criptografia AES para criptografar a senha.)

<security> <authentication>
   <anonymousAuthentication
      userName="User1"
      password="[enc:AesProvider:57686f6120447564652c2049495320526f636b73:enc]" />
   </authentication>
</security>

Exemplo de código

Os exemplos a seguir habilitam a autenticação anônima e alteram o nome de usuário e a senha padrão usados para autenticação anônima para uma conta chamada IUSR e uma senha de P@ssw0rd.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:"True" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /userName:"IUSR" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /password:"P@ssw0rd" /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"] = true;
         anonymousAuthenticationSection["userName"] = @"IUSR";
         anonymousAuthenticationSection["password"] = @"P@ssw0rd";
         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") = True
      anonymousAuthenticationSection("userName") = "IUSR"
      anonymousAuthenticationSection("password") = "P@ssw0rd"
      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 = true;
anonymousAuthenticationSection.Properties.Item("userName").Value = "IUSR";
anonymousAuthenticationSection.Properties.Item("password").Value = "P@ssw0rd";

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 = True
anonymousAuthenticationSection.Properties.Item("userName").Value = "IUSR"
anonymousAuthenticationSection.Properties.Item("password").Value = "P@ssw0rd"

adminManager.CommitChanges()