8 votos

La autenticación de Apache HTTPd contra varios servidores LDAP con expirado cuentas

Estamos usando mod_authnz_ldap y mod_authn_alias en Apache 2.2.9 (como se envía en Debian 5.0, 2.2.9-10+lenny7) para autenticar contra múltiples dominios de Active Directory para el alojamiento de un repositorio de Subversion. Nuestra configuración actual es:

# Turn up logging
LogLevel debug

# Define authentication providers
<AuthnProviderAlias ldap alpha>
  AuthLDAPBindDN "CN=Subversion,OU=Service Accounts,O=Alpha"
  AuthLDAPBindPassword [[REDACTED]]
  AuthLDAPURL ldap://dc01.alpha:3268/?sAMAccountName?sub?
</AuthnProviderAlias>

<AuthnProviderAlias ldap beta>
  AuthLDAPBindDN "CN=LDAPAuth,OU=Service Accounts,O=Beta"
  AuthLDAPBindPassword [[REDACTED]]
  AuthLDAPURL ldap://ldap.beta:3268/?sAMAccountName?sub?
</AuthnProviderAlias>

# Subversion Repository
<Location /svn>
  DAV svn
  SVNPath /opt/svn/repo
  AuthName "Subversion"
  AuthType Basic
  AuthBasicProvider alpha beta
  AuthzLDAPAuthoritative off
  AuthzSVNAccessFile /opt/svn/authz
  require valid-user
</Location>

Estamos encontrando problemas con los usuarios que tienen cuentas en Alpha y Beta, especialmente cuando sus cuentas en Alfa son vencidos (pero siguen presentes; la política de la empresa es que las cuentas de vivir por lo menos un mínimo de 1 año). Por ejemplo, cuando el usuario x (que tiene en cuenta caducada en Alfa, y una cuenta válida en Beta), el registro de errores de Apache informa de lo siguiente:

[Tue May 11 13:42:07 2010] [debug] mod_authnz_ldap.c(377): [client 10.1.1.104] [14817] auth_ldap authenticate: using URL ldap://dc01.alpha:3268/?sAMAccountName?sub?
[Tue May 11 13:42:08 2010] [warn] [client 10.1.1.104] [14817] auth_ldap authenticate: user x authentication failed; URI /svn/ [ldap_simple_bind_s() to check user credentials failed][Invalid credentials]
[Tue May 11 13:42:08 2010] [error] [client 10.1.1.104] user x: authentication failure for "/svn/": Password Mismatch
[Tue May 11 13:42:08 2010] [debug] mod_deflate.c(615): [client 10.1.1.104] Zlib: Compressed 527 to 359 : URL /svn/

Intenta autenticarse como un inexistente usuario (nobodycool) resultados en el comportamiento correcto de la consulta de ambos servidores LDAP:

[Tue May 11 13:42:40 2010] [debug] mod_authnz_ldap.c(377): [client 10.1.1.104] [14815] auth_ldap authenticate: using URL ldap://dc01.alpha:3268/?sAMAccountName?sub?
[Tue May 11 13:42:40 2010] [warn] [client 10.1.1.104] [14815] auth_ldap authenticate: user nobodycool authentication failed; URI /svn/ [User not found][No such object]
[Tue May 11 13:42:40 2010] [debug] mod_authnz_ldap.c(377): [client 10.1.1.104] [14815] auth_ldap authenticate: using URL ldap://ldap.beta:3268/?sAMAccountName?sub?
[Tue May 11 13:42:44 2010] [warn] [client 10.1.1.104] [14815] auth_ldap authenticate: user nobodycool authentication failed; URI /svn/ [User not found][No such object]
[Tue May 11 13:42:44 2010] [error] [client 10.1.1.104] user nobodycool not found: /svn/
[Tue May 11 13:42:44 2010] [debug] mod_deflate.c(615): [client 10.1.1.104] Zlib: Compressed 527 to 359 : URL /svn/

¿Cómo puedo configurar el Apache para consultar correctamente Beta si se encuentra con una cuenta caducada en Alfa?

4voto

Glomek Puntos 12183

El AuthzLDAPAuthoritative off directiva permitirá la autenticación de caída a través de la siguiente módulo sólo si el usuario no coincide con un DN en la consulta. Actualmente, aunque el usuario esté vencido, parece que su cuenta todavía será devuelto como resultado, cuando la consulta LDAP que se realiza.

No sé lo suficiente sobre el ActiveDirectory esquema LDAP para dar una respuesta definitiva, pero si se puede añadir un filtro a la AuthLDAPURL directiva que filtra caducado cuentas debe resultar en el nombre de usuario que no coincidan con ninguna de DN en la consulta. Esto debe resultar en la autenticación de la caída a través del siguiente módulo.

-1voto

user2784896 Puntos 23

¿Cómo puedo usar los grupos de LDAP aquí? por ejemplo, en el ejemplo de abajo, el grupo de "ccusers" es en LDAP alfa, y "CMRI_SDS" es en LDAP belta. Puedo escribir como golpe?

#Require valid-user
Require ldap-group CN=ccusers,OU=UNIX Security Groups,OU=CTD_CM_RMG,OU=Corporate Clients   V2,DC=office,DC=adroot,DC=bmogc,DC=net
Require ldap-group CN=CMRI_SDS,OU=Groups,OU=CMRI,DC=ibg,DC=adroot,DC=bmogc,DC=net

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: