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?


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


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


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.