Pergunta

Eu tenho um site que funciona corretamente no IIS 6.0:Ele autentica os usuários com credenciais do Windows e, ao conversar com o serviço que atinge o banco de dados, passa as credenciais.

No IIS 7.0, as mesmas configurações não passam as credenciais e o banco de dados é atingido por NT AUTHORITY\ANONYMOUS.

Tem algo que estou perdendo?Desativei o acesso ANÔNIMO em meu site do IIS 7.0, mas não consigo fazer funcionar.

Estas são as configurações que estou usando no IIS 6.0 e 7.0:

<authentication mode="Windows">
<identity impersonate="true">

O que mudou de 6.0 para 7.0?

Foi útil?

Solução

Houve mudanças entre IIS7 e IIS6.0.Encontrei para você uma postagem no blog que pode realmente ajudá-lo (clique aqui para ver).

Você está executando seu aplicativo no Modo Integrado ou no Modo Clássico?Pelo que vi, colocar o atributo Impersonate como true deve exibir um erro 500 com a seguinte mensagem de erro:

Erro do Servidor Interno.Este é o erro HTTP 500.19:A página solicitada não pode ser acessada porque os dados de configuração relacionados para a página são inválidos.

Aqui está a solução alternativa proposta:

Gambiarra:

1) Se o seu aplicativo não depender de se passar pelo usuário solicitante nos estágios iniciantes e autenticaterequest (os únicos estágios em que a representação não é possível no modo integrado), ignore esse erro adicionando o seguinte ao web.config do seu aplicativo:

<validation validateIntegratedModeConfiguration="false"

/>

2) Se o seu aplicativo depender da representação no BeginRequest e Authenticaterequest, ou você não tiver certeza, vá para o modo clássico.

Eu esperava que isso fosse útil para entender como o IIS 7.0 funciona agora.

Outras dicas

O seu servidor IIS está configurado para ser confiável para delegação pelo SQLServer?Já me deparei com isso antes com o WebDAV, onde precisávamos que o servidor executando o IIS fosse confiável para o servidor de arquivos para autenticar em nome do servidor de arquivos.

Interessante...Eu tenho o problema oposto - Não ser capaz para fazer com que a autenticação seja passada do navegador do cliente, através do servidor web e para o banco de dados dentro de uma grande rede corporativa através de firewalls.

Também sinto que a autenticação "de ponta a ponta" no banco de dados é uma má ideia e um risco potencial à segurança.Não há nada que impeça o usuário final de carregar o SQL Query e se conectar diretamente ao seu banco de dados, então é melhor ter seu esquema bloqueado!

@Esteban - Esclarecido meu não é muito útil para ajudar você responder.

Normalmente, se você estiver fazendo autenticação de salto duplo como essa, o Kerberos normalmente estará envolvido, a menos que a primeira autenticação seja Básica.

Eu verificaria a autenticação nos servidores IIS 6 e garantiria que fosse a mesma no IIS 7.

Se a caixa do IIS 6 estiver definida como Windows Integrado, será necessário verificar as configurações do Kerberos - SPNs, Delegação etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top