Apache mod_auth_kerb e gruppi utenti LDAP


12

Ho pensato di implementare i mod_auth_kerbnostri server Web interni per abilitare SSO. L'unico problema evidente che posso vedere è che si tratta di un approccio tutto o niente, o tutti gli utenti del tuo dominio possono accedere a un sito o meno.

È possibile combinare mod_auth_kerbcon qualcosa come mod_authnz_ldapverificare l'appartenenza al gruppo in un determinato gruppo in LDAP? Immagino che l' KrbAuthoritativeopzione avrebbe qualcosa a che fare con questo?

Inoltre, a quanto ho capito, il modulo imposta il nome utente come username@REALMdopo l'autenticazione, ma ovviamente nella directory gli utenti sono memorizzati solo come nome utente. Inoltre, alcuni siti interni che gestiamo come trac hanno già un profilo utente collegato a ciascun nome utente. C'è un modo per risolverlo, forse togliendo il bit del regno dopo l'autenticazione in qualche modo?


Solo una domanda relativa all'implementazione, stai usando un ADS di Windows per il regno di Kerberos o qualche altra implementazione?
Jeremy Bouse,

OpenDirectory di Apple fornito con MIT Kerberos v5
Kamil Kisiel,

Okay ... Non ho mai lavorato con OpenDirectory di Apple prima. Sono stato in grado di ottenere l'autenticazione di Apache tramite NTLM su Windows ADS utilizzando le credenziali della workstation e limitandole a gruppi specifici.
Jeremy Bouse,

Senza rimuovere il dominio dal nome utente, è possibile utilizzare un attributo alternativo nella query LDAP per cercare l'entità utente, ad esempio l'attributo "userPrincipalName" in ActiveDirectory.
Yves Martin,

Risposte:


13

Ora è possibile in mod_auth_kerb 5.4 rimuovere il dominio da REMOTE_USER con la seguente direttiva di configurazione:

KrbLocalUserMapping On


Wow, sembra che questo sia stato rilasciato nel 2008, ma non ne ho parlato (la versione o il parametro) sul loro sito web.
Kamil Kisiel,

7

È l'intero punto della separazione authn / authz in 2.2 che è possibile autenticarsi con un meccanismo e autorizzare con un altro. L'autenticazione fornisce un'impostazione di REMOTE_USER, su cui è possibile utilizzare authz_ldap. Inoltre, authn_ldap cerca quindi un utente (convertendo REMOTE_USER in un DN se trovato, usando i criteri di ricerca che è necessario specificare, ad esempio la ricerca di CN). Quindi, quando è stato trovato un DN, è possibile specificare i requisiti sull'oggetto LDAP. Ad esempio, se tutti gli utenti che accedono a una risorsa devono trovarsi nella stessa unità organizzativa, si specifica

richiedono ldap-dn ou = Manager, o = La Società


È possibile modificare la variabile REMOTE_USER prima che venga passata alla fase di autorizzazione? Ad esempio, per rimuovere la parte REALM del nome utente Kerberos per la ricerca in un database LDAP?
Kamil Kisiel,

Non per mezzo di configurazione. Tuttavia, è relativamente facile farlo nel codice sorgente del modulo Apache. Cerca incarichi da richiedere-> utente e modificarli; quindi ricostruire il modulo con apxs2 -c. OTOH, potrebbe essere più semplice inserire i nomi Kerberos in LDAP, sotto un attributo separato, e fare in modo che il modulo ldap cerchi l'utente per quell'attributo.
Martin v. Löwis,

2

La piattaforma Debian ora viene fornita con la versione 5.4 di mod_auth_kerb .

Se sei bloccato con una versione precedente, questa pagina spiega come mod_map_user può essere utilizzato in combinazione con mod_auth_kerb e mod_authnz_ldap.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.