Autenticação Kerberos falhando com 401

3

Temos um aplicativo .NET MVC 3 implantado no IIS 7 em nosso servidor Windows 2008 (vamos chamá-lo de PROD). O aplicativo tem Anonymous e Windows Authentication habilitado - todos os outros estão desabilitados. Os provedores de autenticação especificados em applicationHost.config são Negotiate e NTLM, nesta ordem.

Ultimamente, começamos a ter problemas com autenticação neste aplicativo. Os usuários (que estão em um domínio diferente do servidor) conectando-se ao IE com a opção "Ativar autenticação integrada do Windows" marcada "Não autorizado. Erro HTTP 401. O recurso solicitado requer autenticação do usuário". mensagem mesmo que estejam fornecendo credenciais válidas. Ao acessar o aplicativo do Firefox, o problema não ocorre. Além disso, ao usar o IE com "Ativar Autenticação Integrada do Windows", desmarcado, tudo funciona bem.

Pelo que li sobre problemas semelhantes na Internet, descobri que temos alguns problemas com o Kerberos não sendo configurado corretamente. Acontece que a autenticação NTLM funciona muito bem. Verifiquei os SPNs e eles parecem estar configurados corretamente (há a configuração padrão, pois o nosso aplicativo está sendo acessado pelo nome netBios do servidor).

O engraçado é que temos outro servidor (vamos chamá-lo DEV) que hospeda exatamente o mesmo aplicativo e está exatamente no mesmo domínio e tem a mesma configuração de provedores de autenticação e autenticação e os pools de aplicativos são executados sob as mesmas contas e autenticação funciona bem. A única diferença é que o PROD teve o .NET 4 instalado recentemente, mas não acho que isso possa ser um problema. O PROD também hospeda esse aplicativo no IIS em um diretório virtual a seguir: Sites / XYZ / XYZ para que você acesse o site por url http://server:8666/XYZ . O aplicativo em DEV é hospedado no IIS diretamente em Sites / XYZ e é acessado por url http://server2:8666 .

Poderia, por favor, me avisar o que mais posso verificar? Eu tentei ativar o log do Kerberos, mas não encontrei nenhum log no visualizador de eventos depois de tentar acessar o aplicativo. Não tenho outras ideias sobre onde procurar e o que verificar.

    
por user155019 18.01.2013 / 12:46

1 resposta

3

Primeiro, confirmo que isso está ocorrendo em um cliente em que o IE mostra que o site está na zona Sites confiáveis e a zona Sites confiáveis está configurada para "Login automático com nome de usuário e senha atuais".

Em seguida, suspeito que o tamanho do cabeçalho de autorização http pode exceder os limites do IIS. A autorização integrada do Kerberos é bastante suscetível a esse problema, pois os limites do IIS são realmente muito baixos e não exige que muitas associações de grupo sobrecarreguem o token acima do limite.

Toda e qualquer solicitação inclui o token Kerberos do usuário no cabeçalho de autorização http. Como o token é codificado, ele é freqüentemente muito maior do que a memória real usada.

Você pode aumentar os valores usando o seguinte documento:

Configurações do Registro Http.sys para Windows
link

Eu usaria os seguintes valores:

MaxRequestBytes - definido como 1048576
MaxFieldLength - definido para 65534

Outro utilitário útil DelegConfig. Você pode incluir isso como um aplicativo em qualquer site da Web e conectar-se para obter um relatório útil sobre como sua autenticação do Kerberos está configurada. Isso precisaria ser testado como a conta da vítima (ou uma conta de teste adequadamente configurada que está exibindo o sintoma no domínio da vítima).

link

Você também pode precisar revisar:

Como usar os SPNs ao configurar aplicativos Web hospedados no Internet Information Services do link

Especificamente:

"No Active Directory, verifique se a caixa de seleção Conta é confidencial e não pode ser delegada está desmarcada para usuários que acessam o aplicativo."

"Verifique se todos os computadores que fazem parte do processo Kerberos têm uma resolução de nome consistente e estão conectados pela confiança do Kerberos. Por exemplo, verifique se os computadores envolvidos no processo Kerberos estão na mesma floresta ou fazem parte de um confiança Kerberos entre florestas ".

"Verifique se o tamanho do token não excede o valor definido para a propriedade MaxTokenSize." (MaxTokenSize deve ser configurado para 65535).

O Internet Explorer 6 não pode usar o protocolo de autenticação Kerberos para se conectar a um site que usa uma porta não padrão

Também há algumas dicas excelentes no artigo a seguir.

link

Em particular, verificar se o cliente está conectado ao SPN esperado, usando NetMon ou KerbSpy.

    
por 18.01.2013 / 14:08