Pergunta

Ouvi dizer que no Windows você pode fazer login de um navegador da Web para o servidor da Web sem passar pelo login usual que entra no nome de usuário e na senha, mas usando as credenciais diretamente do Windows, usando o protocolo NTLM.

Como isso é alcançado? O servidor da Web precisa suportar alguma autenticação adicional?

Atualizar: Estou pedindo um servidor web genérico, não apenas o IIS. Como fazer isso no Apache, por exemplo?

Foi útil?

Solução

O servidor da web só precisa ser configurado para oferecer suporte à autenticação do Windows (que será NTLM ou - melhor - Kerberos se o cliente e o servidor forem W2K ou posterior). Eu acredito que o IIS ou o Apache podem ser configurados para fazer isso.

O navegador também precisa apoiar isso - pelo menos o IE o faz (não tenho certeza sobre os outros, pode ser possível). EDIT: Parece que o Firefox também tem algum apoio para isso, e Safari no macOS

EDIT: Para detalhes sobre o Apache, o Google Módulos para a autenticação NTLM. Os módulos Kerberos também existem. De acordo com outras respostas, isso realmente funciona apenas em uma intranet - não apenas porque o navegador precisa estar em uma zona intranet (apenas se aplica ao IE), mas porque qualquer firewall interveniente normalmente interrompe isso, e porque as relações de confiança interdominantes necessárias irão provavelmente não existe. Também é um pouco mais complicado fazer o trabalho se o servidor Apache estiver no UNIX, e especialmente se você também tiver servidores Kerberos no Unix no mix, mas ainda é possível.

Outras dicas

Só será fácil em uma situação específica; Nomeadamente, o servidor da web precisa suportar o NTLM (por exemplo, IIS), e precisa estar em uma zona em que o cliente está configurado para confiar (a "zona da intranet" na linguagem do IE, a menos que o usuário final tenha ajustado suas configurações)

Se o seu servidor da web e os PCs clientes estiverem em uma rede protegida pelo Active Directory ou similar, você poderá definir o 'Windows Integrated Security' no IIS no servidor da Web para o site que registra automaticamente todos os clientes do IE (que são permitidos).

Como afirmado anteriormente, o NTLM é normalmente usado se o seu back -end for gerenciado pelo Windows (MS Active Directory). No entanto, também existem módulos disponíveis para o Apache que se vincularão a isso: mod_ntlm.

Como esse é seu próprio protocolo, é necessário que o navegador seja capaz de entender esse protocolo e responder aos desafios de autenticação. Não sei quais navegadores apóiam isso fora de mão, mas minha suposição seria a maioria.

Pela minha experiência, Kerberos é mais um método preferido, mas eu não trabalhei muito com isso, então, infelizmente, não tenho muito conselhos no que diz respeito a isso.

Em uma nota lateral, lembro -me de ler em algum lugar que o JRE também tem maneiras de vincular o NTLM no seu servidor da Web para obter informações de identidade para o usuário autenticado. Como afirmado anteriormente, o .NET também tem suporte para isso.

Além disso, o Firefox não suporta o NTLM por padrão, mas pode ser configurado usando o seguinte TUT: http://www.crossedconnections.org/w/?p=89

Se você definir as configurações do IIS para exigir autenticação, seus usuários precisarão fazer login para acessar a página. Eles então têm algum direito (se não uma interface) para qualquer coisa nesse servidor que teriam se eles fizessem login da maneira normal (do console).

Fora isso, não tenho certeza do que você está se referindo.

Sim, isso é possível. É frequentemente usado em aplicativos intranet onde os usuários estão. Usos do Windows Ntlm ou Kerberos Para autorizar o usuário contra um serviço central, normalmente Active Directory na plataforma Windows. Na plataforma .NET, as informações atuais do usuário podem ser acessadas através do System.Threading.Thread.CurrentPrincipal.Identity instância.

Mais tarde eu encontrei uma pergunta bem semelhante Recuperar dados do usuário do Active Directory NTLM para Rails W/O IIS com boas respostas também.

Você também pode querer olhar para Jespa. Parece um pouco mais direto que Kerberos, mas fornece bons recursos do NTLM SSO.

Eu estava procurando mais informações sobre Kerberos (porque o NTLM, até o V2, ficar deprimido com 2008 dC), e encontrei este artigo, explicando como fazê -lo funcionar com o Apache (como você mencionou).http://blog.scotlowe.org/2006/08/10/kerberos com base em sso-with-apache/

Esta pergunta provavelmente está desatualizada (ou pelo menos resolvida), mas se puder ajudar alguém ...

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