ViewVc Configuration 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 ViewVC, il est primordiale de sécuriser l'accès, tout comme sous SVN. Il est donc nécessaire de modifier les configurations:

  • Exposition de ViewVC sous Apache, voir Publication sous Apache.
  • Prise en compte des autorisations d'accès définies sous SVN.

Les threads suivants ont été consultés afin de mettre en place la configuration:

Cependant le fichier viewvc.conf, à la racine de l'installation de ViewVC, contient tous les commentaires nécessaires à la mise en place.

Hand-icon.png Votre avis

Nobody voted on this yet

 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 ViewVC 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 ViewVC:

  • 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

Le fichier /etc/apache2/sites-enabled/000-default contient la configuration de ViewVC sous Apache. Celle-ci est complétée afin de référencer l'annuaire LDAP.

ScriptAlias /viewvc/repos /var/opt/viewvc/bin/cgi/viewvc.cgi
<Location "/viewvc/repos">
    #Options Indexes FollowSymLinks
    #AllowOverride None
    #Order deny,allow

    AuthType Basic
    AuthName "ViewVC Repository access"
    AuthBasicProvider ldap
    AuthLDAPURL ldap://localhost:389/ou=people,dc=ejnserver,dc=fr?uid
    require valid-user
</Location>

Lock-icon.png Droits d'accès

Après avoir référencés les repository, voir Installation avec installation par la paramètre svn_roots, il faut spécifier le mode d'authentification et l'emplacement du fichier des restrictions d'accès dans le fichier de configuration viewvc.conf. Il est possible de spécifier les restrictions pour chacun des repository individuellement.

##---------------------------------------------------------------------------
## ViewVC recognizes per-root configuration overrides, too.  To
## override the value of a configuration parameter only for a single
## root, create a configuration section whose names is of the form
## root-ROOTNAME/CONFIGSECTION.  ROOTNAME here is the name of the root
## as defined explicitly in cvs_roots or svn_roots or implicitly as the
## basename of a root path in root_parents.  Options found in this new
## configuration section override for this one root the corresponding
## options found in the base configuration section CONFIGSECTION
## ("options", "authz-*", etc.) as interpreted after per-vhost
## overrides (if any) have been applied.
##
## NOTE: Per-root overrides may only be applied to the following
## sections:
##
##    options
##    utilities
##    authz-*
##
## WARNING: Do not use per-root overrides if your ViewVC instance is
## served via the standalone.py server option!  Doing so could cause
## ViewVC to be unable to function properly (or at all).
##
## Here is an example showing how to enable Subversion authz-based
## authorization for only the single root named "svnroot":
##
## [root-svnroot/options]
## authorizer = svnauthz
##
## [root-svnroot/authz-svnauthz]
## authzfile = /path/to/authzfile
##
[root-repo1/options]
authorizer = svnauthz
[root-repo1/authz-svnauthz]
authzfile = /var/opt/svn/repo1/conf/authz

[root-repo2/options]
authorizer = svnauthz
[root-repo2/authz-svnauthz]
authzfile = /var/opt/svn/repo2/conf/authz

Pour mémoire, le référencement des repositories s'effectue ainsi:

## svn_roots: Specifies each of the Subversion roots (repositories) on
## your system and assigns names to them. Each root should be given by
## a "name: path" value. Multiple roots should be separated by commas
## and can be placed on separate lines.
##
## Example:
## svn_roots = svnrepos: /opt/svn/,
##             anotherrepos: /usr/local/svn/repos2
##
svn_roots = repo1: /var/opt/svn/repo1,
            repo2: /var/opt/svn/repo2