Autenticação do Windows no IIS no servidor local com URL totalmente qualificado
9
Eu tenho um aplicativo Web configurado no IIS 7 configurado com autenticação do Windows. Posso me autenticar na máquina por meio de seu URL totalmente qualificado de qualquer outra máquina e ele usa o domínio adequado. No entanto, quando tento conectar-me à máquina por meio do domínio totalmente qualificado (em outro serviço ou apenas via URL no IE), o prompt de Login do Windows tenta forçar o uso do computador como domínio, e não o domínio apropriado para efetuar login. Tentativa de especificar o domínio com domain\usernameou [email protected]falha.
Devo observar que a visualização do aplicativo Web via localhostna máquina funciona, mas o uso do site.company.com/webserviceURL de estilo completo não funciona na máquina local, porque o domínio de login está errado. O que posso fazer para usar o domínio de login adequado?
Isso ocorre devido a um recurso de segurança conhecido como LoopbackCheck.
Mensagem de erro ao tentar acessar um servidor localmente usando seu alias FQDN ou CNAME após a instalação do Windows Server 2003 Service Pack 1: "Acesso negado" ou "Nenhum provedor de rede aceitou o caminho de rede especificado" http://support.microsoft .com / kb / 926642
Existem duas resoluções:
Método 1 (recomendado): Crie os nomes de host da Autoridade de Segurança Local que podem ser referenciados em uma solicitação de autenticação NTLM. Para fazer isso, execute as seguintes etapas para todos os nós no computador cliente:
Clique em Iniciar, clique em Executar, digite regedit e, em seguida, clique em OK.
Localize e clique na seguinte subchave do Registro: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ MSV1_0
Clique com o botão direito do mouse em MSV1_0, aponte para Novo e clique em Valor de Sequências Múltiplas.
Na coluna Nome, digite BackConnectionHostNames e pressione ENTER.
Clique com o botão direito do mouse em BackConnectionHostNames e clique em Modificar.
Na caixa Dados do valor, digite o CNAME ou o alias DNS, usado para os compartilhamentos locais no computador e, em seguida, clique em OK.
Nota: Digite cada nome de host em uma linha separada.
Nota: Se a entrada de registro BackConnectionHostNames existir como um tipo REG_DWORD, você deverá excluir a entrada de registro BackConnectionHostNames.
Saia do Editor do Registro e reinicie o computador.
Método 2: Desabilitar a verificação de loopback de autenticação, definindo a entrada de registro DisableLoopbackCheck na subchave de registro HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa como 1. Para definir a entrada de registro DisableLoopbackCheck como 1, execute as seguintes etapas no computador cliente:
Clique em Iniciar, clique em Executar, digite regedit e, em seguida, clique em OK.
Localize e clique na seguinte subchave do Registro: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa
Clique com o botão direito do mouse em Lsa, aponte para Novo e clique em Valor DWORD.
Digite DisableLoopbackCheck e, em seguida, pressione ENTER.
Clique com o botão direito do mouse em DisableLoopbackCheck e clique em Modificar.
O que fez o truque para mim foi a 2ª opção - DisableLoopbackCheckingemHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
Ícaro
1
Posso dizer, com base em alguma experiência na configuração do SSO, que o IE passará automaticamente um tíquete kerberos para logon apenas se o site e o cliente estiverem juntos na intranet ou se estiver na zona confiável. Se o IE vir http://site.company.com/webservice, ele assumirá que o site está na Internet e não passará credenciais para logon.
Duas coisas que descobrimos que funcionam para permitir o FQDN na intranet são fornecer ao servidor da Web um certificado e usar SSL ou adicioná-lo à Zona Confiável.
Espero que isso ajude em relação à sua configuração.
Isso não resolve o problema. Eu já tentei adicionar o FQDN à zona confiável, sem sucesso. Eu acho que isso resolve um problema diferente. Adicioná-lo à zona confiável permite autenticação automática , o que eu não preciso - estou bem em especificar credenciais, mas o problema é que ele não está aceitando meu domínio especificado para credenciais de logon - está preso no nome do computador.
DisableLoopbackChecking
emHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
Posso dizer, com base em alguma experiência na configuração do SSO, que o IE passará automaticamente um tíquete kerberos para logon apenas se o site e o cliente estiverem juntos na intranet ou se estiver na zona confiável. Se o IE vir http://site.company.com/webservice, ele assumirá que o site está na Internet e não passará credenciais para logon.
Há algumas informações úteis neste link sobre IIS, IE e Kerberos. http://blogs.msdn.com/b/friis/archive/2009/12/31/things-to-check-when-kerberos-authentication-fails-using-iis-ie.aspx
Duas coisas que descobrimos que funcionam para permitir o FQDN na intranet são fornecer ao servidor da Web um certificado e usar SSL ou adicioná-lo à Zona Confiável.
Espero que isso ajude em relação à sua configuração.
fonte