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
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 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 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 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 coisas:
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 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 .
|
||||||||||
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()