Apenas para definir minhas suposições:
- Você deseja que a identidade do usuário do aplicativo da Web seja usada no SQL
- Isso faz com que você precise usar o Kerberos (para autenticação de salto duplo)
- Limitando você a navegadores compatíveis com Kerberos (IE, Chrome, Firefox (com alterações de configurações))
- Significa que você precisa configurar um Nome Principal de Serviço para o aplicativo da web contra o dom \ web
- Você está usando o IIS 6 ou 7 como o servidor da web
- O gerenciamento de identidades do seu aplicativo da web foi criado para oferecer suporte ao Kerberos, pois ele é um provedor de associação ASP .NET criado com base no Windows Auth
Então, como você mencionou o SPN, presumo que tenha registrado um usando algo semelhante a este:
setspn -S http/webapp.fqdn.tld dom\web
Você então ativou a delegação na conta de usuário dom \ web? Para que o salto duplo funcione, a conta do usuário que está executando o aplicativo da Web precisa ter permissão para passar essas credenciais novamente. Nas propriedades da conta de usuário no domínio, localize a guia Delegação e ative "Delegação de confiança para qualquer serviço (kerberos)".
Quando tudo estiver correto, verifique se o site do IIS está configurado para passar pelo Auth do Windows e não usar a conta NT USER \ Anonymous.
Neste ponto, você pode verificar se o Kerberos e o IIS estão todos configurados corretamente executando klist
na linha de comando. Isso resultará em todos os problemas de tickets do Kerberos para o usuário atualmente conectado. Procure um que tenha Server: http/webapp.fqdn.tld
e verifique se forwardable
e ok_as_delegate
estão definidos.
A seguir (como sugerido acima), adicione um grupo de usuários que provavelmente usarão o aplicativo no SQL e darão permissão ao banco de dados conforme necessário.
... é quase 01:00. Acho que posso dar um descanso às minhas sugestões por enquanto. Espero que algo aí te ajude, vou tentar adicionar mais amanhã no trabalho. (Estou na Nova Zelândia, daí o estranho fuso horário).