
Estou usando o Application Request Routing 3.0 no Windows Server 2012 R2 para balancear a carga dos serviços Web internos em um pool de front-end do Lync 2013; Eu sounãousando-o para fazer proxy reverso de serviços da Web externos (há um proxy reverso separado para isso), estou usando-o apenas como balanceador de carga porque este cliente não tem nenhuma outra solução de balanceamento de carga disponível.
Configurei o DNS para apontar todas as URLs de serviços Web internos do Lync para o servidor ARR, defini um farm de servidores incluindo os dois servidores Front-End do Lync no pool e configurei o ARR para rotear todas as solicitações HTTP e HTTPS para este farm, independentemente da URL ou do nome do host; o site padrão no IIS no servidor ARR é configurado apenas para autenticação anônima.
As solicitações são roteadas corretamente, mas para todos os serviços Web autenticados do Lync (que são muitos), a autenticação falha miseravelmente.
Eu determinei que o problema está na autenticação Kerberos, e uma rápida pesquisa no Google encontrou muitas pessoas com problemas de autenticação ao publicar sites/serviços autenticados por meio de ARR com autenticação Kerberos; Tentei desabilitar manualmente o método de autenticação "negociar" no IIS nos servidores Lync, deixando apenas "NTLM", e com essas configurações tudo funciona bem; isso realmente mostra que o problema é causado pela autenticação Kerberos. No entanto, mexer na configuração do IIS em servidores Lync é totalmente incompatível, e qualquer alteração manual provavelmente será redefinida quando ocorrer uma atualização de configuração ou uma atualização do Lync for instalada, portanto, não posso simplesmente configurar manualmente o IIS dessa maneira.
Estou procurando uma maneira (com suporte!) De fazer a autenticação funcionar em serviços Web internos do Lync quando as solicitações são roteadas por meio de um servidor ARR.
Isso pode ser feito? Como?
Responder1
Depois de muita luta, não encontramos nenhuma maneira de fazer a autenticação Kerberos funcionar por meio de ARR; como solução alternativa, simplesmente removemos o servidor ARR do domínio: isso forçou-o a ignorar completamente a autenticação Kerberos e tudo começou a funcionar instantaneamente.
Estou aceitando esta resposta porque ela resolveu o problema e nos permitiu usar o ARR para balancear a carga dos serviços web internos do Lync, mas se/quando alguém encontrar uma resposta que possa realmente fazer a autenticação Kerberos funcionar, ficarei feliz em aceitá-la .
Responder2
O Kerberos exige que o SPN da conta de serviço que executa o Lync seja definido para a URL de solicitação proveniente do servidor ARR. Você precisaria definir o SPN para o nome do servidor e o FQDN interno usando um comando como:
setspn -S http/<servername> domain.com\<Svc_Acct>
setspn -S http/<servername>.domain.com domain.com\<Svc_Acct>
Um resumo muito bom dos SPNs pode ser encontradoaqui.
Além disso, você precisará modificar as propriedades do Active Directory do servidor ARR para que ele seja confiável para delegação. Isso é definido nas propriedades do objeto do servidor ARR em Usuários e Computadores AD. Na guia Delegação, marque o botão de opção "Confiar neste computador para delegação a qualquer serviço (somente Kerberos)".
Uma discussão sobre delegação pode ser encontradaaqui.