A autenticação de janelas do IIS ASP.Net não funciona

1

Eu tenho um aplicativo da web de intranet.

Embora eu tenha definido "Autenticação do Windows = Habilitada" (e todas as outras Autenticações estão desabilitadas), quando o aplicativo tenta acessar recursos, ele é tratado como se fosse executado pelo mesmo usuário que executa o processo do Pool de Aplicativos .

Existe algum problema aqui ou não entendi corretamente como a Autenticação do Windows funciona?
Se eu fiz errar, há outra maneira de fazer o aplicativo ser executado como o usuário cliente?

    
por Yehuda Shapira 20.06.2012 / 16:04

2 respostas

2

Recursos remotos? Se estiver usando o Kerberos, existem algumas advertências para que funcione corretamente. Para que um computador IIS represente um usuário ao acessar recursos remotos, ele precisa gerar um token de nível de delegação para o usuário.

Se o pool de aplicativos estiver sendo executado em uma identidade personalizada (geralmente é nesses cenários), a conta precisa ter a capacidade de executar a delegação sem restrições. Na guia Delegação da conta em Usuários e Computadores do Active Directory, selecione "Confiar este usuário para delegação a qualquer serviço (somente Kerberos)".

Se você não vir a guia Delegação, significa que um SPN não foi atribuído à conta. Isso precisa ser corrigido primeiro usando o comando setspn.exe.

A conta de identidade do IIS precisa ter o privilégio "Atuar como parte do sistema operacional" (privilégio SetTCB) no (s) servidor (es) IIS.

Baixe a ferramenta Configuração de delegação e adicione-a como um aplicativo no site. Ele permite navegar até o URL do aplicativo e gerar um relatório que determina se a delegação está configurada corretamente.

Também é muito fácil para o código verificar o tipo de token para determinar se é um token de delegação ou não e registrar essas informações em um arquivo.

Resumo (transição de protocolo Kerberos e delegação restrita)
link

Como: Usar representação e delegação no ASP.NET 2.0
link

Download do DelegConfig
link

link

    
por 20.06.2012 / 17:18
1

Você precisa adicionar a representação ao seu web.config:

<identity impersonate="true" />

link

    
por 20.06.2012 / 16:05