WebSVN authentification LDAP
La sécurisation des sources SVN sous Apache est étudié dans l'article suivant: SVN authentification LDAP. Si ces sources sont exposées sous WebSVN, il est primordiale de sécuriser l'accès, tout comme sous SVN. Il est donc nécessaire de modifier les configurations:
- Exposition de WebSVN sous Apache, voir Publication sous Apache.
- Prise en compte des autorisations d'accès définies sous SVN.
Le thread suivant a été consulté afin de mettre en place la configuration:
Cependant le fichier config.php
, dans le répertoire include
de l'installation de WebSVN, contient tous les commentaires nécessaires à la mise en place.
Sommaire
Votre avis
Current user rating: 100/100 (1 votes)
|
|
Configuration
Configuration Apache
La mise en place de l'authentification LDAP est détaillé dans l'article Module Apache LDAP. Ce type de configuration s'effectue dans la configuration de l'exposition de WebSVN sous Apache.
Droits d'accès
Le fichier définissant les droits d'accès de SVN, voir Restriction Accès, doit être référencé lors de l'ajout des repositories.
Exemple
Cet exemple permet de donner un accès aux comptes LDAP déclarés sous l'OU ou=people,dc=ejnserver,dc=fr
. Deux repositories SVN sont exposés sous WebSVN:
- repo1: à l'emplacement /var/opt/svn/repo1
- repo2: à l'emplacement /var/opt/svn/repo2
Les fichiers de restriction d'accès se situent dans le fichier conf/authz
.
Configuration Apache 2.2.x
Le fichier /etc/apache2/sites-enabled/000-default
contient la configuration de WebSVN sous Apache. Celle-ci est complétée afin de référencer l'annuaire LDAP.
Alias /websvn "/var/opt/websvn/websvn/"
<Directory "/var/opt/websvn/websvn/">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
AuthType Basic
AuthName "WebSVN access"
AuthBasicProvider ldap
AuthLDAPURL LDAP_SEVER_URL
require valid-user
</Directory>
Où il faut remplacer LDAP_SEVER_URL par l'URL du serveur LDAP.
Configuration Apache 2.4.6
Lors d'une mise à jour du serveur Ubuntu, Apache a été mis à jour en version 2.4.6. Cependant, l'impact est assez conséquent, car il y a eu une refonte de la gestion des droits d'accès. Pour que l'authentification soit demandée, il est impératif de ne pas mettre l'instruction Require all granted
. La configuration est alors celle-ci.
Alias /websvn "/var/opt/websvn/websvn/"
<Directory "/var/opt/websvn/websvn/">
Options Indexes FollowSymLinks
AllowOverride None
# Old configuration for APACHE 2.2
# Order allow,deny
# Allow from all
# Require all granted
AuthType Basic
AuthName "WebSVN access"
AuthBasicProvider ldap
AuthLDAPURL ldap://localhost:389/ou=people,dc=ejnserver,dc=fr?uid
require valid-user
</Directory>
Droits d'accès
Après avoir référencés les repositories, voir Installation, il faut spécifier l'emplacement des restrictions d'accès dans le fichier de configuration config.php
. Nous utiliserons la syntaxe avec le nom du repository afin de référencer ces restrictions individuellement. En effet, celles-ci peuvent être différentes en fonction du repository.
$config->addRepository('REPO 1', 'file:///var/opt/svn/repo1');
$config->useAuthenticationFile('/var/opt/svn/repo1/conf/authz', 'REPO 1');
$config->addRepository('REPO 2', 'file:///var/opt/svn/repo2');
$config->useAuthenticationFile('/var/opt/svn/repo2/conf/authz', 'REPO 2');