Apache mod_auth_kerb y grupos de usuarios LDAP

12

He estado considerando implementar mod_auth_kerben nuestros servidores web internos para habilitar SSO. El único problema obvio que puedo ver es que es un enfoque de todo o nada, ya sea que todos los usuarios de su dominio pueden acceder a un sitio o no.

¿Es posible combinar mod_auth_kerbcon algo como mod_authnz_ldapverificar la membresía de un grupo en particular en LDAP? ¿Supongo que la KrbAuthoritativeopción tendría algo que ver con esto?

Además, según tengo entendido, el módulo establece el nombre de usuario username@REALMdespués de la autenticación, pero, por supuesto, en el directorio los usuarios se almacenan solo como nombre de usuario. Además, algunos sitios internos que ejecutamos como trac ya tienen un perfil de usuario vinculado a cada nombre de usuario. ¿Hay alguna manera de resolver esto, tal vez quitando el bit de dominio después de la autenticación de alguna manera?

Kamil Kisiel
fuente
Solo una pregunta con respecto a la implementación, ¿está utilizando un ADS de Windows para el reino kerberos o alguna otra implementación?
Jeremy Bouse el
OpenDirectory de Apple que viene con MIT Kerberos v5
Kamil Kisiel el
De acuerdo ... No he trabajado con OpenDirectory de Apple antes. Pude hacer que Apache se autenticara usando NTLM contra Windows ADS usando sus credenciales de estación de trabajo y luego restringiéndolo a grupos específicos.
Jeremy Bouse el
Sin quitar el dominio del nombre de usuario, puede usar un atributo alternativo en la consulta LDAP para buscar una entidad de usuario, por ejemplo, el atributo "userPrincipalName" en Ms ActiveDirectory.
Yves Martin

Respuestas:

13

Ahora es posible en mod_auth_kerb 5.4 quitar el reino de REMOTE_USER con la siguiente directiva de configuración:

KrbLocalUserMapping On

styro
fuente
Wow, parece que esto se lanzó en 2008, pero no se menciona (la versión o el parámetro) en su sitio web.
Kamil Kisiel el
7

El punto principal de la separación authn / authz en 2.2 es que puede autenticarse con un mecanismo y autorizar con otro. La autenticación le proporciona una configuración de REMOTE_USER, contra la cual puede usar authz_ldap. Además, authn_ldap busca un usuario (convirtiendo REMOTE_USER en un DN si lo encuentra, utilizando los criterios de búsqueda que debe especificar, por ejemplo, buscando CN). Luego, cuando se ha encontrado un DN, puede especificar requisitos en el objeto LDAP. Por ejemplo, si todos los usuarios que acceden a un recurso deben estar en la misma unidad organizativa, debe especificar

require ldap-dn ou = Gerentes, o = La Compañía

Martin v. Löwis
fuente
¿Es posible modificar la variable REMOTE_USER antes de que pase a la etapa de autorización? Por ejemplo, ¿para quitar la porción REALM del nombre de usuario Kerberos para buscar en una base de datos LDAP?
Kamil Kisiel el
No por medio de la configuración. Sin embargo, es relativamente fácil hacerlo en el código fuente del módulo Apache. Busque asignaciones para solicitar-> usuario y ajústelas; luego reconstruya el módulo con apxs2 -c. OTOH, podría ser más fácil poner los nombres de Kerberos en LDAP, bajo un atributo separado, y hacer que el módulo ldap busque al usuario por ese atributo.
Martin v. Löwis
2

Debian estable ahora viene con la versión 5.4 de mod_auth_kerb .

Si tiene una versión anterior, esta página explica cómo se puede usar mod_map_user en combinación con mod_auth_kerb y mod_authnz_ldap.

jcharaoui
fuente