Así que me di a la tarea de configurar
Subversion con Apache2 para que puedan autentificarse mediante LDAP, esta guía la desarrolle en Debian pero fácilmente puede ser adaptada para Ubuntu u otras distribuciones derivadas de Debian.
Instalando la paquetería necesaria
Para empezar se deben descargarse los paquetes necesarios para tener Apache2 y sus respectivos módulos para que se pueda trabajar con Subversion.
# apt-get install subversion apache2 libapache2-svn subversion-toolsLuego debemos crear el repositorio
# mkdir /var/svn/proyecto# svnadmin create /var/svn/proyectoEs necesario cambiar el propietario y permisos de escritura para el servidor Apache2
# chown www-data.www-data -R /var/svn/proyecto/# chmod 777 -R /var/svn/proyecto/Habilitando los módulos para Apache2Se deben habilitar los módulos de Subversion, DAV y autenticación por medio de LDAP para Apache2.
#a2enmod dav#a2enmod dav_svn # a2enmod authnz_ldap Debemos forzar la carga de módulos a Apache2
# /etc/init.d/apache2 force-reload # /etc/init.d/apache2 restartGenerando un certificado auto firmadoAhora es necesario dar soporte SSL, pero también es necesario descargarnos una herramienta para generar un certificado auto firmado de forma muy sencilla.
# apt-get install ssl-cert Creamos el directorio donde estará alojado nuestro certificado auto firmado.
# mkdir /etc/apache2/sslCon el paquete ssl-cert viene la herramienta make-ssl-cert para crearnos el certificado auto firmado.
# make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pemConfigurando un Virtual Host para tener soporte SSLCopiamos un virtual host hacia la carpeta de sitios disponibles
# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl Editamos el virtual host
# nano /etc/apache2/sites-enabled/sslY al principio del archivo debemos realizar los cambios que presento a continuación
NameVirtualHost *:443SSLEngine onSSLCertificateFile /etc/apache2/ssl/apache.pemAhora habilitamos el virtual host con soporte para ssl
# a2enmod sslY reiniciamos Apache2, para que reconozca nuestros cambios
# /etc/init.d/apache2 force-reloadSi queremos probar que todo esta bien debemos ingresar a la dirección https://ip-hostname y nos dará una advertencia diciendo que estamos accediendo a un sitio que usa un certificado auto firmado, entonces debemos agregar la excepción para ingresar al sitio.
Configurando Apache2 para SubversionAntes que nada debemos crear, un archivo con política de grupos, para asignar a cada usuario su respectivo repositorio de proyecto.
# nano /etc/apache2/acceso.authz
[groups]# Se agregan los usuarios creados en el servidor LDAPgrupo-ldap = daniel.herrera, carlos.ramirez[proyecto:/]@grupo-ldap=rwAhora se procede a crear el virtual host del proyecto en Apache editando el siguiente archivo.
# nano /etc/apache2/mods-enabled/dav_svn.confSe agrega la siguiente entrada adaptada a nuestro ejemplo de repositorio.
<Location /svn/proyecto>DAV svnSVNPath /var/svn/proyectoAuthType BasicAuthName "Repositorio de prueba de Proyecto"AuthzSVNAccessFile /etc/apache2/acceso.authzRequire valid-userSSLRequireSSLAuthBasicProvider ldapAuthzLDAPAuthoritative offAuthLDAPBindDN "cn=admin,dc=dominio,dc=com"AuthLDAPBindPassword contraseña-servidor-ldapAuthLDAPURL "ldap://ip-hostname/ou=users,dc=dominio,dc=com?cn"
</Location>Terminado esto solo basta con reiniciar Apache
# /etc/init.d/apache2 restartAccedemos a https://ip-hostname/svn/proyecto Nos pedirá un usuario y contraseña validos definidos en el archivo de políticas de grupo, y así se podrá tener acceso al proyecto.