WebSVN authentification LDAP

De EjnTricks

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.

Hand-icon.png Votre avis

Current user rating: 100/100 (1 votes)

 You need to enable JavaScript to vote


Icon-Configuration-Settings.png Configuration

Configuration-icon.png 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.

Lock-icon.png 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.

Examples-icon.png 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-icon.png 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-icon.png 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>

Lock-icon.png 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');