Configuración de un site de apache con autenticación contra LDAP

Pongo aquí un ejemplo que hemos usado alguna vez para proteger un repositorio de subversion con users/passwords de una rama de un LDAP. En este caso, lo único que cabe destacar es que el query (AuthLDAPURL) filtra por el atributo 'uid' para sacar una lista de usuarios de este y al autenticar cogerá este además de el atributo 'userPassword' para la contraseña. En el snippet en sí, hay también un ejemplo de como excluir "uids" de las busquedas (project2). No explico mucho más del snippet, ya que el que lo vaya a usar lo verá bastante claro y además, este snippet lo he creado para guardar el ejemplo en algún lado y que no se pierdamás que para otra cosa :] Ruego sepan perdonarme por esto :P!
NameVirtualHost *:3690
<VirtualHost *:3690>
 
<Location /svn>
      DAV svn
      SVNParentPath /var/svn
      #
      #  # Protegidas _todas_ las peticiones
      #  # Require valid-user
      #
      # Uncomment the following 3 lines to enable Basic Authentication
      AuthBasicAuthoritative Off
      AuthBasicProvider ldap
      AuthType Basic
      AuthName "Subversion Repository"
#      AuthUserFile /etc/apache2/dav_svn.passwd
 
      AuthLDAPBindDN "cn=admin,dc=dominio,dc=org"
      AuthLDAPBindPassword tupass
      AuthLDAPURL "ldap://192.168.1.1:389/ou=People,dc=dominio,dc=org?uid?sub"
      AuthzLDAPAuthoritative off
 
      Require valid-user
</Location>
 
# Per-project configuration
 
<Location /svn/project1>
  AuthBasicProvider ldap
  AuthType Basic
  AuthName "Project One subversion repository"
#  AuthUserFile /etc/apache2/dav_svn.passwd
 
  AuthLDAPBindDN "cn=admin,dc=dominio,dc=org"
  AuthLDAPBindPassword tupass
  AuthLDAPURL "ldap://192.168.1.1:389/ou=People,dc=dominio,dc=org?uid?sub"
  AuthzLDAPAuthoritative off
  Require valid-user
</Location>
 
<Location /svn/project2>
  AuthBasicProvider ldap
  AuthType Basic
  AuthName "Project Two subversion repository"
#  AuthUserFile /etc/apache2/dav_svn.passwd
 
  AuthLDAPBindDN "cn=admin,dc=dominio,dc=org"
  AuthLDAPBindPassword tupass
# In this query we exclude USERX from the results
  AuthLDAPURL "ldap://192.168.1.1:389/ou=People,dc=dominio,dc=org?uid??!(uid=USERX)"
  AuthzLDAPAuthoritative off
  Require valid-user
</Location>
 
</VirtualHost>
Lenguaje: 
html4strict
Tags:

Comentarios

cperez:

Así lo tengo montado en sam a la espera de ponerlo en producción. Con lo último que me estuve peleando fue para dar acceso de sólo lectura, para poner los repos de proyectos pasados a disposición del resto de usuarios.

Peace, Love & Free Software