Domanda

Ho sentito che su Windows è possibile accedere da un browser Web al server Web senza passare attraverso il solito login inserendo nome utente e password ma utilizzando direttamente le credenziali di Windows, utilizzando il protocollo NTLM.

Come viene raggiunto? Il server Web deve supportare alcune autenticazioni aggiuntive?

Aggiornamento: sto chiedendo un server Web generico, non solo IIS. Come fare ad esempio su Apache?

È stato utile?

Soluzione

Il server web deve solo essere configurato per supportare l'autenticazione di Windows (che sarà NTLM, o - meglio - Kerberos se sia il client che il server sono W2K o successivi). Credo che IIS o Apache possano essere configurati per farlo.

Anche il browser deve supportare questo - almeno IE lo fa (non sono sicuro degli altri, potrebbe essere possibile). modifica: sembra che Firefox abbia un po 'di supporto anche per questo, e Safari su MacOS

modifica: per dettagli su apache, moduli google per l'autenticazione NTLM. Esistono anche moduli Kerberos. come per le altre risposte, questo funziona davvero solo su una Intranet - non solo perché il browser deve trovarsi in una zona Intranet (vale solo per IE), ma perché qualsiasi firewall che interviene in genere smetterà di funzionare e perché i trust tra domini necessari saranno probabilmente non esiste. È anche un po 'più complicato far funzionare se il server apache è su UNIX, e specialmente se ci sono anche server Kerberos su UNIX nel mix, ma è ancora possibile.

Altri suggerimenti

Sarà perfetto solo in una situazione specifica; vale a dire che il server web deve supportare NTLM (ad esempio, IIS) e deve trovarsi in una zona in cui il client è configurato per essere attendibile (La "zona Intranet" nel linguaggio IE, a meno che l'utente finale non abbia modificato le proprie impostazioni)

Se il server Web e il PC client si trovano su una rete protetta da Active Directory o simili, è possibile impostare "Sicurezza integrata di Windows" in IIS sul server Web per il sito Web che accede automaticamente a tutti i client IE (consentiti).

Come indicato in precedenza, NTLM viene in genere utilizzato se il back-end è gestito da Windows (MS Active Directory). Tuttavia, ci sono anche moduli disponibili per Apache che si collegheranno a questo: mod_ntlm .

Poiché si tratta del proprio protocollo, è necessario che il browser sia in grado di comprendere questo protocollo e rispondere alle sfide di autenticazione. Non so quali browser supportino questo off-hand, ma la mia ipotesi sarebbe che la maggior parte lo faccia.

Dalla mia esperienza, Kerberos è più un metodo preferito, ma non ci ho lavorato molto, quindi sfortunatamente non ho molti consigli in merito.

In una nota a margine, ricordo di aver letto da qualche parte che JRE ha anche modi di collegarsi a NTLM sul tuo server web al fine di ottenere informazioni di identità per l'utente autenticato. Come affermato in precedenza, .NET supporta anche questo.

Inoltre, Firefox non supporta NTLM per impostazione predefinita, ma può essere configurato utilizzando il seguente tut: http://www.crossedconnections.org/w/?p=89

Se hai impostato le impostazioni IIS per richiedere l'autenticazione, i tuoi utenti dovranno effettuare il login per accedere alla pagina. Hanno quindi tutti i diritti (se non un'interfaccia) su qualsiasi cosa su quel server che farebbero se si connettessero normalmente (dalla console).

Oltre a questo, non sono sicuro di cosa ti riferisca.

Sì, questo è possibile. Viene spesso utilizzato nelle applicazioni Intranet in cui si trovano gli utenti. windows utilizza NTLM o Kerberos per autorizzare l'utente a fronte di un servizio centrale, in genere Active Directory sulla piattaforma Windows. Sulla piattaforma .NET è possibile accedere alle informazioni dell'utente corrente tramite l'istanza System.Threading.Thread.CurrentPrincipal.Identity .

Più tardi ho trovato una domanda abbastanza simile Retrieve NTLM Dati utente di Active Directory su Rails senza IIS con buone risposte.

Potresti anche voler dare un'occhiata a Jespa. Sembra un po 'più semplice rispetto a Kerberos ma offre buone capacità ntlm sso.

Stavo cercando ulteriori informazioni su Kerberos (perché NTLM, anche v2, diventa obsoleto con AD 2008), e ho trovato questo articolo, spiegando come farlo funzionare con Apache (come lo hai menzionato). http://blog.scottlowe.org/2006/ 08/10 / basata su Kerberos-sso-con-apache /

Questa domanda è probabilmente obsoleta (o almeno risolta), ma se può aiutare qualcuno ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top