ID do artigo: 871179 - Última revisão: terça-feira, 4 de dezembro de 2007 - Revisão: 5.1

O erro "HTTP Erro 401.1 - Não autorizado: Acesso negado devido a credenciais inválidas" é exibido ao tentar acessar um site que faz parte de um pool de aplicativos do IIS 6.0

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Sintomas

Ao tentar acessar um site dos IIS (Serviços de Informações da Internet da Microsoft) 6.0 configurado para usar apenas a Autenticação integrada do Windows, você é solicitado a fornecer suas credenciais de usuário. Ao tentar fazer logon, o aviso de logon é exibido novamente. Depois de tentar fazer logon três vezes, a seguinte mensagem de erro é exibida:
HTTP Erro 401.1 - Não autorizado: Acesso negado devido a credenciais inválidas.

Causa

Este comportamento pode ocorrer se as seguintes condições forem verdadeiras:
  • O site do IIS 6.0 faz parte de um pool de aplicativos do IIS.
  • O pool de aplicativos está em execução em uma conta local ou em uma conta de usuário do domínio.
  • O site está configurado para usar apenas a Autenticação Integrada do Windows.
Nesta situação, quando a Autenticação Integrada do Windows tentar usar a autenticação Kerberos, esta talvez não funcione. Para usar a autenticação Kerberos, um serviço deve registrar o SPN (Nome da Entidade de Serviço) na conta do serviço de diretório Active Directory em que o serviço está em execução. Por padrão, o Active Directory registra o nome do computador NetBIOS (network basic input/output system). O Active Directory também permite que o Serviço de rede ou a conta Sistema local usem Kerberos.

Resolução

Caso este comportamento ocorra quando o pool de aplicativos estiver em execução em uma conta local, execute as etapas na seção "Solução alternativa".

Para resolver este comportamento, quando o pool de aplicativos estiver em execução em uma conta de usuário do domínio, defina um SPN HTTP com o nome NetBIOS e o FQDN (Nome de Domínio Totalmente Qualificado) da conta de usuário do domínio na qual o pool de aplicativos está em execução. Para fazer isto, execute as seguintes etapas em um controlador de domínio:

Importante Um SPN de serviço só pode ser associado a uma única conta. Por isso, caso use a resolução sugerida, nenhum dos demais pools de aplicativos em execução em uma outra conta de usuário do domínio pode ser usado apenas com a Autenticação integrada do Windows.
  1. Instale a ferramenta Setspn.exe. Para obter a versão Microsoft Windows 2000 da ferramenta, visite o seguinte site da Microsoft (em inglês):
    http://www.microsoft.com/downloads/details.aspx?FamilyID=5fd831fd-ab77-46a3-9cfe-ff01d29e5c46&displaylang=en (http://www.microsoft.com/downloads/details.aspx?FamilyID=5fd831fd-ab77-46a3-9cfe-ff01d29e5c46&displaylang=en)
    A versão Microsoft Windows Server 2003 da ferramenta da linha de comando Setspn.exe está disponível nas Ferramentas de Suporte do Windows Server 2003 incluídas no CD do Windows Server 2003. Para instalar as ferramentas, clique duas vezes no arquivo Suptools.msi na pasta Support/Tools.
  2. Inicie um prompt de comando e altere o diretório no qual o Setspn.exe está instalado.
  3. No prompt de comando, digite os seguintes comandos. Pressione ENTER depois de cada um:
    setspn.exe -a http/nome_NetBIOS_do_computador_IIS Nome_do_domínio\Nome_do_usuário

    setspn.exe -a http/FQDN_do_computador_IIS Nome_do_domínio\Nome_do_usuário
    Observação Nome_do_usuário é a conta de usuário na qual o pool de aplicativos está em execução.
Depois de definir o SPN do serviço HTTP para a conta de usuário do domínio na qual o pool de aplicativos está em execução, é possível se conectar com êxito ao site sem que as credenciais de usuário sejam solicitadas.

Como Contornar

Como solução alternativa para este comportamento, caso você tenha vários pools de aplicativos executando em contas de usuário de domínio diferentes, é necessário forçar o IIS a usar NTLM como mecanismo de autenticação se quiser usar apenas a Autenticação Integrada do Windows. Para fazer isto, execute as seguintes etapas no servidor que está executando o IIS:
  1. Inicie um prompt de comando.
  2. Localize e altere o diretório que contém o arquivo Adsutil.vbs. Por padrão, o diretório é C:\Inetpub\Adminscripts.
  3. Digite o seguinte comando e pressione ENTER:
    cscript adsutil.vbs set w3svc/NTAuthenticationProviders "NTLM"
  4. Para verificar se a propriedade de metabase NtAuthenticationProviders está definida para NTLM, digite o seguinte comando e pressione ENTER:
    cscript adsutil.vbs get w3svc/NTAuthenticationProviders
    O seguinte texto deve retornar:
    NTAuthenticationProviders       : (CADEIA_DE_CARACTERES) "NTLM"

Situação

Este comportamento é próprio do projeto.

Mais Informações

Se você definir o SPN usando apenas o FQDN do servidor que está executando o IIS, será solicitado que você informe as credenciais de usuário após 30 minutos. O tempo limite de 30 minutos ocorre devido a forma como o Internet Explorer armazena em cache as informações sobre o DNS (Sistema de Nome de Domínio). Após 30 minutos, o Internet Explorer é revertido para o nome NetBIOS. Portanto, é necessário verificar se você também registrou o SPN usando o nome NetBIOS do servidor, executando o IIS para evitar que as credenciais de usuário sejam solicitadas. Para obter mais informações, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):
263558  (http://support.microsoft.com/kb/263558/ ) Como o Internet Explorer usa o cache das entradas de host DNS
Para verificar os SPNs registrados da conta de usuário, na qual o pool de aplicativos está em execução, inicie um prompt de comando, digite o seguinte comando no diretório em que Setspn.exe está instalado e pressione ENTER:
setspn.exe -l Nome_do_usuário
Uma lista dos SPNs registrados da conta de usuário é retornada.

Referências

Para obter informações adicionais sobre como usar a Autenticação Integrada do Windows com os pools de aplicativos do IIS, visite a seção "Worker Process Identity Restrictions with Kerberos" do seguinte site da Microsoft (em inglês):
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/523ae943-5e6a-4200-9103-9808baa00157.mspx (http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/523ae943-5e6a-4200-9103-9808baa00157.mspx)
Para obter informações adicionais sobre falhas de autenticação ou de controle de acesso no IIS, é possível baixar o Authentication and Access Control Diagnostics 1.0. O seguinte arquivo está disponível para download no Centro de Download da Microsoft (em inglês):
http://www.microsoft.com/downloads/details.aspx?FamilyId=E90FE777-4A21-4066-BD22-B931F7572E9A&displaylang=en (http://www.microsoft.com/downloads/details.aspx?FamilyId=E90FE777-4A21-4066-BD22-B931F7572E9A&displaylang=en)
Observação A ferramenta AuthDiag foi projetada para ajudá-lo, caso uma das seguintes mensagens de erro seja exibida:
  • 401.1 falha de logon
  • 401.3 ACL
A ferramenta AuthDiag poderá ser usada quando você enfrentar problemas com o Kerberos.

A informação contida neste artigo aplica-se a:
  • Microsoft Internet Information Services 6.0
Palavras-chave: 
kbtshoot kbprb KB871179