
Temos vários sites hospedados no IIS usando autenticação do Windows. Alguns de nossos usuários conseguem fazer login em um dos sites, mas recebem um desafio de autenticação sem fim em outro (o segundo é usado em um iframe do primeiro). Descobrimos que os usuários que não conseguem fazer logon estão usando a autenticação Kerberos (outros NTLM). Todos os sites estão usando as mesmas configurações de autorização (useAppPoolCredentials definido como verdadeiro). Assim, os usuários podem acessar um site, mas não podem acessar o segundo com as mesmas configurações. O usuário de identidade do pool de aplicativos está no grupo de administradores e no grupo IIS_IUSRS. Também tentei usar a conta de usuário do domínio para fazer logon no site a partir da VM e recebi o mesmo prompt de autenticação interminável por causa do Kerberos. Li o artigo de Chiranth Ramaswamy sobre autenticação IIS, mas infelizmente não consegui encontrar uma solução para o problema. Existe alguma maneira de resolver o problema?
EDIT: Também temos um segundo servidor com os mesmos sites e configurações.
EDIT2: descobri que posso fazer logon se estiver usando a mesma conta de usuário de domínio se eunãoescreva o domínio no login. Assim, "UserName" funciona e "DomainName\UserName" não
Responder1
Bastante para solucionar problemas, e mais detalhes seriam úteis, incluindo como você configura o Curb, quais outros sites existem e URLs em uso.
Resumindo: acho que Kerb está quebrado. E para que funcione, você poderia usar um endereço IP em vez do nome. (Kerb só funciona se você usar um nome, não um endereço IP).
Suspeito que você não esteja decodificando os tickets no contexto da conta do pool de aplicativos (que, aliás, quase nunca deve ser um administrador).
Isso pode ser devido a um SPN duplicado ou algum outro aspecto do Curb sendo quebrado.
Também é possível que seja uma configuração do navegador do lado do cliente, como "Ativar autenticação integrada do Windows" versus um script PAC e/ou configurações de zona.
Então! Lista de compras:
Verifique a(s) zona(s) em que o site está sendo carregado se estiver usando o IE.
Verifique a configuração Habilitar Windows Integrado se estiver usando o IE.
Reinicie um cliente quebrado (ou pelo menos
klist purge
) e obtenha um rastreamento netmon ou wireshark de uma conexão com falha, do lado do cliente. Isto pode identificar alguns problemas de resposta do KDC, ou seja, erros Kerberos sendo retornados, o que fornece uma pista sobre o que pode estar quebrando o CurbSe você estiver usando useAppPoolCredentials, provavelmente você usou SetSPN. Verifique se há duplicatas de todos os SPNs envolvendo os nomes dos sites.
Por fim, se você não estiver usando delegação, considere remover useAppPoolCredentials de qualquer maneira, pois por padrão, a conta do sistema decodificará os tickets para todos os pools de aplicativos se não houver nenhuma substituição de SPN em vigor.
Responder2
Após reiniciar o servidor, descobri que useApplicationCredentials retornou para false. Mudei para true e reiniciei o IIS. Depois disso o problema não ocorre. Mas não tenho certeza se não é uma coincidência. Temos o mesmo problema no outro servidor. 4 máquinas com as mesmas configurações do IIS. 2 não funciona corretamente via Kerberos, dois funcionam. O SPN não foi configurado para nenhum deles. Além disso, os dois que funcionam possuem false em useApplicationCredentials.
Vou tentar o mesmo método: reiniciar useApplicationCredentials como true se não for e então iisreset. Mas tenho certeza de que isso não é um problema. Não consigo entender por que o Kerberos está funcionando se o SPN não estiver definido