Antes de tudo, não sei qual site é mais adequado para essa pergunta, seja SO, SF ou SU, então sinta-se à vontade para sugerir a migração!
Eu tenho um requisito para restringir a delegação entre várias máquinas para habilitar a representação de identidade entre diferentes serviços.
Aqui estão as diferentes máquinas:
Machine1
- Possui o IIS 8.0 com um AppPool em execução na conta de serviço local Local System
Machine2
- tem o SQL Server 2008 R2 com o SSRS sendo executado na conta de serviço local Network Service
Machine3
- Possui o SQL Server 2008 R2 e espelha vários bancos de dados de Machine2
O aplicativo que estou desenvolvendo precisa ser capaz de representar a identidade do cliente para permitir o acesso ao back-end do SQL Server e ao Reporting Services. Há também um requisito para representar o usuário para permitir que o aplicativo carregue arquivos para um local de rede compartilhado.
Todas as máquinas são executadas no mesmo domínio.
Eu me sentei com um administrador de domínio e habilitei Enable this computer for delegation to any service (kerberos only)
para todas as três máquinas. A razão para isso é porque eu tentei restringir a delegação a certos serviços sem sucesso.
Eu não alterei nenhum SPN, já que meu entendimento é que o SQL Server criará automaticamente os SPNs necessários para realizar o trabalho.
Com o meu aplicativo, especifiquei no arquivo web.config
o seguinte para ativar a representação:
<authentication mode="Windows" />
<identity impersonate="true"/>
O IIS tem apenas a autenticação do Windows ativada.
O problema
A delegação parece não estar funcionando como quando o aplicativo é implantado no IIS, surgem problemas de autenticação (ou seja, erros 401) ao tentar acessar o serviço do SSRS e ao tentar carregar um arquivo para o compartilhamento de rede.
A questão
Há mais alguma coisa que estou ausente / preciso verificar para que a delegação funcione nas máquinas e quais serviços eu preciso ativar para permitir os requisitos acima.
Por favor, note que li muitas perguntas sobre a delegação que não resolveram o meu problema.