Compartilhar via


Diretrizes de solução de problemas de autenticação Kerberos

Este guia fornece conceitos fundamentais para você seguir ao solucionar problemas de autenticação Kerberos.

Importante

Este artigo fornece diretrizes gerais. Talvez seja necessário adaptar os procedimentos e exemplos apresentados aqui para funcionar para sua configuração específica.

Lista de verificação de solução de problemas

O protocolo Kerberos depende de vários componentes e serviços de infraestrutura. Se algum desses componentes ou serviços estiver indisponível ou não estiver funcionando, você poderá enfrentar problemas de autenticação.

1. Verificar eventos e logs

Verifique os logs de eventos para obter indicações de um problema. Use o Visualizador de Eventos para examinar os logs de segurança e sistema nos sistemas envolvidos na operação de autenticação:

  • O cliente de autenticação
  • O servidor ou serviço de destino
  • O controlador de domínio

Em particular, procure eventos de fontes que possam estar relacionados à autenticação Kerberos ou aos serviços dos quais ele depende, como as seguintes fontes:

  • Kerberos
  • Central de Distribuição de Chaves (KDC)
  • LSA (LsaSrv)
  • Netlogon

No servidor de destino, verifique se há auditorias de falha no log de segurança. Essas falhas podem mostrar que o protocolo Kerberos é usado quando ocorre uma falha de autenticação.

Alguns eventos ou erros indicam problemas específicos. Se qualquer um dos computadores afetados registrou qualquer um dos seguintes eventos ou erros, selecione o link para obter informações mais detalhadas de solução de problemas.

Evento ou erro Informações sobre solução de problemas
ID do evento 4, erro KERB_AP_ERR_MODIFIED O cliente não conseguiu descriptografar o ticket de serviço. Como mais de um problema pode causar esse erro, verifique se há eventos relacionados. Por exemplo, essa cadeia de caracteres pode significar que os relógios do cliente e do servidor de destino estão fora de sincronia ou que o SPN não é exclusivo. Em um ambiente de vários domínios, o nome da conta de serviço pode não ser exclusivo na floresta (ou em outras florestas confiáveis).
Para obter mais informações, consulte O cliente kerberos recebeu um erro KRB_AP_ERR_MODIFIED do servidor e o Kerberos gera erro KDC_ERR_S_PRINCIPAL_UNKNOWN ou KDC_ERR_PRINCIPAL_NOT_UNIQUE.
ID do evento 4, Erro KERB_AP_ERR_SKEW Verifique se os relógios do computador estão sincronizados
ID do evento 14 Erro de "etype sem suporte" ao acessar um recurso em um domínio confiável
ID do evento 16 ou ID do evento 27 A ID do evento KDC 16 ou 27 será registrada se o DES para Kerberos estiver desabilitado
Erros de ID de evento 27 KDC em controladores de domínio do Windows Server 2003
Erro 1069 Logons de serviço falham devido a SPNs (Nomes Principais de Serviço) configurados incorretamente
ID do evento 5719, Erro 1311 ou Erro 1355 ID do evento 5719, Erro 1311 ou Erro 1355 – Controlador de domínio ou domínio não encontrado

Se você verificar um problema que sabe como corrigir, primeiro corrija esse problema e tente se autenticar novamente antes de continuar.

2. Verificar a infraestrutura

um. Verifique se o aplicativo cliente e o serviço de destino não estão no mesmo computador

Por padrão, se o aplicativo cliente e o serviço de destino estiverem instalados em um único computador, Kerberos será desabilitado. Se não for possível instalar o aplicativo cliente e o serviço de destino em computadores separados, você precisará alterar configurações específicas relacionadas à segurança no Windows. Além disso, talvez seja necessário alterar uma chave do Registro. Para obter mais informações sobre os problemas relacionados a esse cenário e as configurações específicas que o afetam, consulte a mensagem de erro ao tentar acessar um servidor localmente.

Se você fez alterações, tente se autenticar novamente antes de continuar.

b. Verifique se o computador cliente, o servidor de destino e os servidores de recursos estão associados aos domínios apropriados

Se necessário, adicione o computador cliente ou o servidor de destino a um domínio apropriado. Em seguida, tente novamente autenticar.

Observação

Nesse contexto, "domínios apropriados" são domínios dentro de uma única floresta ou dentro de um conjunto de florestas que têm relações de confiança.

c. Verificar a integridade do servidor de destino e seus serviços de suporte

Verifique se os serviços de aplicativo ou front-end (como serviços Web) e serviços de back-end (como o serviço SQL Server) estão em execução.

Observação

Você pode receber uma mensagem que parece com "Um serviço gerou o Erro 1069: o serviço não foi iniciado devido a uma falha de logon". Se você receber essa mensagem, veja Logons de serviço falham devido a SPNs definidos incorretamente.

d. Verifique se as portas corretas estão disponíveis

Verifique todos os firewalls (incluindo o Firewall do Windows em cada computador) entre o computador cliente, o controlador de domínio e o servidor de destino. Verifique se o tráfego é permitido nas portas a seguir.

Observação

Esta lista usa o porta do servidor:porta do cliente,porta do servidor formato.

  • DHCP: 67 (UDP), 67 (UDP)
  • DNS: 49152 -65535 (TCP, UDP), 53 (TCP, UDP)
  • HTTPS, incluindo autenticação baseada em certificado: 443 (TCP), 443 (TCP)
  • Kerberos: 49152 -65535 (TCP, UDP), 88 (TCP, UDP)
  • Alteração de senha kerberos: 49152 -65535 (TCP), 464 (TCP, UDP)
  • LDAP, incluindo o Localizador DC: 49152 -65535 (TCP, UDP), 389 (TCP, UDP)
  • LDAP SSL: 49152 -65535 (TCP), 636 (TCP)
  • SMB: 49152 -65535 (TCP, UDP), 445 (TCP)
  • Mapeador de ponto de extremidade RPC: 49152 -65535 (TCP), 135 (TCP)
  • RPC para LSA, SAM, NetLogon: 49152 -65535 (TCP), 49152-65535 (TCP)
  • W32Time: 49152 -65535 (UDP), 123 (UDP)

Se você fizer alterações em qualquer configuração de firewall, tente se autenticar novamente.

e. Verifique se os controladores de domínio estão disponíveis

Quando o cliente tenta entrar em contato com um serviço ou aplicativo (conhecido como "servidor de destino"), o cliente e o servidor de destino exigem um controlador de domínio para facilitar a autenticação, a autorização e a delegação.

No computador cliente, abra uma janela do Prompt de Comando com privilégios elevados e execute o seguinte comando:

nltest /dsgetdc:<DomainName> /force /kdc

Observação

Neste comando, <DomainName> representa o nome do domínio do computador do qual você está consultando.

O nltest comando recupera uma lista de controladores de domínio disponíveis (embora a lista possa não incluir todos os controladores de domínio disponíveis). Registre os nomes de domínio totalmente qualificados e endereços IP desses controladores de domínio para uso em procedimentos posteriores.

Se o cliente ou o servidor de destino não puder contatar um controlador de domínio, você receberá uma mensagem semelhante à seguinte (às vezes rotulada como "erro 1355"):

O domínio especificado não existe ou não pôde ser contatado.

Se você receber essa mensagem, consulte a ID do Evento 5719, o Erro 1311 ou o Erro 1355 – Controlador de domínio ou domínio não encontrado para obter mais informações de solução de problemas. Caso contrário, continue por essa lista de verificação.

f. Verifique se o DNS está funcionando entre o cliente e o servidor de destino

No computador cliente, abra uma janela do Prompt de Comando administrativo e execute o seguinte comando:

nslookup <TargetName>

Observação

Neste comando, <TargetName> representa o nome NetBIOS do servidor de destino.

Se o nslookup comando resolver corretamente o nome do servidor de destino, a configuração de DNS estará correta. Se o comando não resolver o nome do servidor de destino, siga estas etapas para verificar a configuração do adaptador de rede do computador cliente:

  1. No computador cliente, execute o seguinte comando:

    ipconfig /all
    
  2. Na saída do comando, determine qual adaptador de rede está em uso. Verifique as seguintes configurações do adaptador:

    • Endereço IP do cliente

    • Máscara de sub-rede

    • Gateway padrão

    • Sufixo DNS específico da ligação

    • Endereços IP do servidor DNS

      Registre os endereços IP e observe qual servidor DNS é preferencial e qual é secundário. Essas informações são úteis para solução de problemas posteriores.

    Se qualquer uma dessas configurações estiver incorreta, corrija-as ou entre em contato com o administrador DNS para obter assistência. Se você fez alterações, execute nslookup <TargetName> novamente.

Se o DNS ainda não funcionar corretamente, siga estas etapas:

  1. Execute o seguinte comando no computador cliente:

    nslookup <ClientName> <DNSIPAddress>
    

    Observação

    Neste comando, <ClientName> representa o nome NetBIOS do computador cliente e <DNSIPAddress> representa o endereço IP de um dos servidores DNS que o cliente está configurado para usar. Primeiro, use o endereço IP do servidor DNS preferencial que você registrou no procedimento anterior. Se o comando não funcionar, tente novamente usando o endereço IP do servidor DNS secundário do cliente.

    Por exemplo, se o nome do computador cliente for "client1" e o endereço IP do servidor DNS preferencial do cliente for 10.0.0.1, execute o seguinte comando:

    nslookup client1 10.0.0.1
    
  2. Execute o mesmo comando no servidor de destino. Agora ele se assemelha ao seguinte comando:

    nslookup <TargetName> <DNSIPAddress>
    

    Observação

    Neste comando, <TargetName> representa o nome NetBIOS do servidor de destino e <DNSIPAddress> representa o endereço IP de um dos servidores DNS que o servidor de destino está configurado para usar. Primeiro, use o endereço IP do servidor DNS preferencial que você registrou no procedimento anterior. Se o comando não funcionar na primeira vez que você executá-lo, tente novamente usando o endereço IP do servidor DNS secundário do servidor de destino.

    Por exemplo, se o nome do servidor de destino for "WebServer1" e o endereço IP do servidor DNS preferencial do servidor de destino for 10.0.0.1, execute o seguinte comando:

    nslookup WebServer1 10.0.0.1
    

    A tabela a seguir resume os possíveis resultados das nslookup consultas e suas implicações.

    Consulta alvo
    Tem sucesso
    Consulta alvo
    Falhar
    Consulta de cliente
    É bem-sucedido
    Nenhum problema de DNS Problema que afeta o destino ou pelo menos um servidor DNS
    Consulta de cliente
    falha
    Problema que afeta o cliente ou pelo menos um servidor DNS Problema que afeta um ou mais servidores DNS

Se os resultados da consulta indicarem que você tem um problema de DNS, consulte os seguintes artigos para obter mais ajuda:

Se você resolver o problema de DNS, mas o problema de Kerberos permanecer, tente os seguintes métodos de solução.

g. Verifique se os relógios do computador estão sincronizados

O computador cliente ou o servidor de destino pode armazenar em cache tíquetes para uso futuro. No entanto, cada tíquete tem carimbos de data/hora que determinam seu tempo de vida útil (TTL). O serviço do centro de distribuição de chaves Kerberos, que é executado nos controladores de domínio, define os carimbos de data/hora.

A diferença de tempo entre o controlador de domínio e o computador cliente ou o servidor de destino deve ser inferior a cinco minutos. Normalmente, se os relógios não forem sincronizados, o Windows poderá ressincronizá-los automaticamente. Há dois casos em que você pode ter que tomar medidas:

  • Os relógios estão fora de sincronia por mais de 48 horas.
  • O relógio fora de sincronização não usa um controlador de domínio em seu domínio como um servidor de tempo ou não usa o mesmo servidor de tempo que esses controladores de domínio.

Para resolver esse problema, o computador afetado precisa verificar novamente a rede para servidores de tempo e, em seguida, ressincronizar seu próprio relógio. Para habilitar essas ações, abra uma janela do Prompt de Comando administrativo e execute o seguinte comando:

w32tm /resync /computer:<Target> /rediscover

Observação

Neste comando, Target <> representa o computador que você está configurando. A opção /rediscover instrui o computador a verificar a rede em busca de novas ou atualizadas fontes de tempo.

Para obter mais informações sobre as opções disponíveis para o comando, consulte as w32tmferramentas e as configurações do serviço tempo do Windows: parâmetros de linha de comando para W32Time.

Se você ressincronizar relógios, tente se autenticar novamente.

h. Verificar o status do Windows Update

Verifique se todos os controladores de domínio, o computador cliente e o servidor de destino têm atualizações relevantes do Windows.

Se você instalou as atualizações, reinicie os computadores afetados e tente se autenticar novamente.

i. Verificar o status da atualização do aplicativo

Verifique se os aplicativos cliente e servidor estão atualizados no computador cliente e no servidor de destino. Se você instalar atualizações, reinicie os computadores afetados e tente se autenticar novamente.

j. Reiniciar os computadores

Se você ainda não reiniciou o computador cliente, o servidor de destino ou o controlador de domínio, reinicie-os agora. Depois que os computadores são reiniciados, tente se autenticar novamente.

Se sua infraestrutura estiver ok e você ainda tiver um problema, continue para os procedimentos de solução de problemas mais avançados.

3. Coletar dados de rastreamento e tíquete

Os procedimentos a seguir usam a ferramenta Monitor de Rede gratuita. Baixe e instale a ferramenta no computador cliente e no servidor de destino. Para obter um exemplo de como usar o Monitor de Rede para coletar dados de rastreamento e identificar mensagens Kerberos, consulte erros kerberos em capturas de rede.

um. Coletar registros de rede simultâneos

No computador cliente, siga estas etapas:

  1. Execute uma dessas ações:

    • Reinicie o computador cliente.
    • Saia da conta que você está usando para solucionar problemas e entre novamente.
    • Feche o aplicativo cliente e, em seguida, reabra-o.
  2. Inicie o rastreamento. Para fazer isso, siga estas etapas:

    1. Selecione Iniciar e digite netmon.
    2. Nos resultados da pesquisa, clique com o botão direito do mouse no Microsoft Network Monitor 3.4 e selecione Executar como administrador (selecione Sim na janela Controle de Conta de Usuário).
    3. No Monitor de Rede, selecione Iniciar.
  3. Abra uma janela do Prompt de Comando administrativo e execute os seguintes comandos em sequência:

    ipconfig /flushdns
    nbtstat -RR
    klist purge
    klist -li 0x3e7 purge
    

No servidor de destino, siga estas etapas:

  1. Abra o Monitor de Rede como Administrador e selecione Iniciar.

  2. Abra uma janela do Prompt de Comando administrativo e execute os seguintes comandos em sequência:

    ipconfig /flushdns
    nbtstat -RR
    klist purge
    klist -li 0x3e7 purge
    

Tente reproduzir o problema e, em seguida, pare e salve os rastreamentos tanto no computador cliente quanto no servidor de destino. Para fazer isso, no Monitor de Rede, selecione Parar e, em seguida, selecione Salvar como.

b. Registrar informações do ticket

Depois de reproduzir o problema e parar o rastreamento, verifique os tíquetes Kerberos que foram gerados durante a gravação dos dados de rastreamento. No prompt de comando no computador cliente e no servidor de destino, execute o seguinte comando:

klist tickets

Esse comando gera uma lista de tickets. Você pode copiar essas informações para outro aplicativo (como o Bloco de Notas) para poder usá-la em procedimentos de solução de problemas posteriores.

4. Verifique os dados de rastreamento de mensagens Kerberos

Você pode usar o Monitor de Rede para examinar, filtrar e pesquisar dados em arquivos de captura. Em particular, procure eventos rotulados usando "KerberosV5". Esses eventos fornecem informações de status. Eles também podem listar os nomes ou endereços IP dos controladores de domínio que foram contatados e o SPN (nome da entidade de serviço) do serviço que o cliente tentou acessar.

As descrições de evento que contêm cadeias de caracteres semelhantes às seguintes fazem parte das funções kerberos típicas:

  • KerberosV5:KRB_Error -KDC_ERR_PREAUTH_REQUIRED
  • Solicitação KerberosV5:AS
  • Resposta KerberosV5:AS
  • Solicitação KerberosV5:TGS
  • Resposta KerberosV5:TGS
  • Solicitação KerberosV5:AP
  • Resposta KerberosV5:AP

Observação

Você também pode usar o Monitor de Rede para verificar os dados de rastreamento para informações de tíquete em solicitações HTTP GET. Se as informações do tíquete estiverem ausentes na solicitação GET, houve um problema ao usar a autenticação Kerberos.

As descrições de evento que contêm cadeias de caracteres semelhantes às seguintes significam que há um problema. A lista a seguir inclui alguns dos erros mais comuns. Se você vir uma dessas cadeias de caracteres, observe todos os nomes de servidor, endereços IP e SPNs para uso posterior.

  • KDC_ERR_PRINCIPAL_NOT_UNIQUE ou KDC_ERR_S_PRINCIPAL_UNKNOWN. O SPN solicitado está associado a mais de uma conta ou não está associado a nenhuma conta. Para obter ajuda para resolver qualquer um desses problemas, consulte erro KDC_ERR_S_PRINCIPAL_UNKNOWN ou KDC_ERR_PRINCIPAL_NOT_UNIQUE gerado pelo Kerberos.

  • KRB_AP_ERR_MODIFIED. O cliente não conseguiu descriptografar o ticket de serviço. Mais de um problema pode causar esse erro. Revise os dados de rastreamento para outros erros que acompanham KRB_AP_ERR_MODIFIED. Verifique os logs de eventos para a ID de Evento 4 e outros eventos relacionados, conforme descrito em 1. Verificar eventos e logs.

  • ERB_AP_ERR_SKEW. Os relógios do cliente e do servidor de destino estão fora de sincronia. Para obter mais informações, consulte Verifique se os relógios do computador estão sincronizados.

  • KDC_ERR_ETYPE_NOTSUPP. Um ou mais dos componentes envolvidos na autenticação usam um tipo de criptografia desabilitado para outros componentes. Verifique os logs de eventos para obter mais informações sobre quais componentes e quais tipos de criptografia estão envolvidos, conforme descrito em 1. Verificar eventos e logs.

Problemas comuns e soluções

HTTP 400 – Problema de solicitação incorreta (cabeçalho de solicitação muito longo)

Se um usuário pertencer a um grande número de grupos (por exemplo, mais de 1.000 grupos), o Kerberos poderá negar o acesso do usuário porque ele não processa corretamente a solicitação. Para obter mais informações sobre esse problema, consulte os seguintes artigos:

Problemas de serviço

Problemas de serviço normalmente envolvem o SPN e a conta de serviço. Por exemplo, o SPN pode estar incorreto, ausente, configurado na conta incorreta ou configurado em mais de uma conta. A lista de verificação de solução de problemas neste artigo a. Colete rastreamentos de rede simultâneos anteriormente neste artigo. Se você já determinou um problema SPN comum, consulte os seguintes artigos:

Problemas de SSO (logon único)

O logon único é um método de autenticação que permite que os usuários entrem usando um conjunto de credenciais para vários sistemas ou aplicativos em uma única intranet. Para funcionar corretamente, o serviço de destino (ou o componente front-end do serviço de destino) e o cliente devem ter as configurações corretas. Para obter informações sobre como solucionar essas configurações, consulte Solucionar problemas de logon único do Kerberos.

Problemas de delegação

Quando o serviço de destino tem componentes de front-end e back-end separados, o Kerberos pode delegar credenciais de cliente (incluindo permissões de acesso) a uma conta de serviço. Em termos simples, o cliente acessa o serviço front-end e, em seguida, o serviço front-end acessa o serviço de back-end em nome do cliente.

O Kerberos dá suporte a três tipos de delegação:

  • Delegação irrestrita. Depois que o cliente acessa o serviço front-end, o serviço front-end pode acessar qualquer outro serviço em nome do cliente. Essa configuração é a mais fácil de implementar, mas também é a menos segura. Não recomendamos o uso de delegação não restrita porque ela não limita com quais serviços a conta autenticada pode interagir.
  • Delegação restrita. O serviço front-end mantém uma lista de serviços que ele pode acessar em nome de um cliente.
  • Delegação restrita baseada em recursos (RBCD). O serviço de back-end mantém uma lista autorizada de serviços front-end que podem solicitar acesso ao serviço de back-end em nome de um cliente.

Observação

Se você tiver um problema ao usar a delegação restrita junto com o CIFS, consulte A delegação restrita para CIFS falha com o erro ACCESS_DENIED.

Importante

  • Não configure delegação limitada e RBCD no mesmo conjunto de servidores front-end e back-end.

    Delegação restrita e RBCD são configurações diferentes e são mutuamente exclusivas. Quando um serviço front-end solicita um tíquete para um serviço de back-end, o KDC primeiro verifica se o serviço front-end possui delegação restrita. Se a delegação restrita não estiver configurada para o serviço front-end, o KDC verificará o serviço de back-end para delegação restrita baseada em recursos. Devido a essa sequência, a delegação restrita tem precedência sobre a delegação baseada em recursos.

  • Por padrão, o Microsoft Edge não dá suporte à delegação não restrita. Se você estiver usando a delegação sem restrições, consulte a autenticação de salto duplo sem restrições Kerberos com o Microsoft Edge (Chromium) para obter mais informações sobre a configuração necessária.

  • A delegação não restrita não é recomendada porque não restringe com quais serviços a conta autenticada pode interagir.

Tipos de topologia com suporte

Os diferentes tipos de delegação colocam requisitos diferentes em sua topologia. A tabela a seguir lista três tipos comuns de topologia e quais tipos de delegação (se houver) têm suporte para cada tipo.

Tipo de topologia Delegação sem restrições Delegação restrita RBCD
Todos os serviços residem em um único domínio Com suporte (não recomendado) Suportado Suportado
Os serviços de front-end e back-end residem em domínios diferentes Com suporte (não recomendado) Sem suporte Suportado
Os serviços de front-end e back-end residem em florestas diferentes (confiáveis) * Com suporte (não recomendado) Sem suporte Suportado*

* Verifique se a conta de serviço do serviço front-end consegue se autenticar através da confiança com o controlador de domínio confiável.

Solução de problemas de tipos de delegação específicos

Os detalhes de configuração para delegação diferem dependendo do tipo de delegação que você está usando e do tipo de conta que o serviço front-end usa. Para solucionar mais problemas de delegação, consulte os seguintes artigos, conforme apropriado:

Usando um cenário de teste de análise de log para solucionar problemas de autenticação Kerberos

Para obter testes e solução de problemas avançados do Kerberos, consulte Usar um cenário de teste de análise de log para solucionar problemas de autenticação Kerberos.