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 username@domain.comfalha.

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?

Respostas:


11

Eu estava tentando fazer a mesma coisa. Acesse um site no IIS local usando um FQDN e continue sendo informado para onde ir pelo IIS.

De qualquer forma, da minha pesquisa, você precisa desativar a verificação de loopback para sites locais do IIS.

Consulte a seguinte página de suporte da Microsoft .

No caso de a página faltar, fiz o seguinte (que é o que ele recomenda na postagem acima)

  1. Abra o editor de registro digitando regedit em Executar.
  2. Navegue para HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ MSV1_0
  3. Clique com o botão direito do mouse em MSV1_0 e clique em Novo e opte por torná-lo um valor de seqüência múltipla.
  4. Digite BackConnectionHostNames como nome da entrada e clique duas vezes nela para modificá-la.
  5. Digite os nomes de host que você precisa usar (code-journey.com, por exemplo).
  6. Reinicie o serviço IISAdmin ("Iniciar" -> "Ferramentas administrativas" -> "Serviços")

Espero que isto ajude.

cmb ..


4

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:

  1. Clique em Iniciar, clique em Executar, digite regedit e, em seguida, clique em OK.
  2. Localize e clique na seguinte subchave do Registro: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ MSV1_0
  3. Clique com o botão direito do mouse em MSV1_0, aponte para Novo e clique em Valor de Sequências Múltiplas.
  4. Na coluna Nome, digite BackConnectionHostNames e pressione ENTER.
  5. Clique com o botão direito do mouse em BackConnectionHostNames e clique em Modificar.
  6. 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.

  7. 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:

  1. Clique em Iniciar, clique em Executar, digite regedit e, em seguida, clique em OK.
  2. Localize e clique na seguinte subchave do Registro: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa
  3. Clique com o botão direito do mouse em Lsa, aponte para Novo e clique em Valor DWORD.
  4. Digite DisableLoopbackCheck e, em seguida, pressione ENTER.
  5. Clique com o botão direito do mouse em DisableLoopbackCheck e clique em Modificar.
  6. Na caixa Dados do valor, digite 1 e clique em OK.
  7. Saia do Editor do Registro.
  8. Reinicie o computador.

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.

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.


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.
Roviuser 18/10/12
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.