SVN – Authentification

subversion_logo_hor-468x64

Configuration d’un SVN avec authentification multiple (2 domaines Active Directory)

Voici un exemple d’une configuration de vhost pour un SVN permettant d’authentifier des utilisateurs dans deux domaines Active Directory différents.

#Authentication providers
<AuthnProviderAlias ldap firstone>
        AuthLDAPBindDN "CN=svn-generic,OU=Service Accounts,DC=firstone,DC=com"
        AuthLDAPBindPassword jtCCkWW6
        AuthLDAPURL ldap://dc01.firstone.com:3268/?sAMAccountName?sub?
</AuthnProviderAlias>

<AuthnProviderAlias ldap secondone>
        AuthLDAPBindDN "CN=svn-generic,OU=Service Accounts,DC=secondone,DC=com"
        AuthLDAPBindPassword xh3J1VZX
        AuthLDAPURL ldap://dc01.secondone.com:3268/?sAMAccountName?sub?
</AuthnProviderAlias>

# Subversion Repository
<Location /data/lib-repository>
        DAV svn
        SVNPath /opt/svn/repo
        AuthName "Welcome on the SVN server of Lib"
        AuthType Basic
        AuthBasicProvider firstone secondone
        AuthzLDAPAuthoritative off

        #Permissions
        AuthzSVNAccessFile /data/conf/lib-repository/svnaccess

        require valid-user
</Location>

Nous indiquons tout d’abord les deux providers, c’est à dire, les chaînes de connexion permettant l’authentification d’un compte générique pour interroger l’AD et authentifier les comptes des utilisateurs. Puis, nous spécifions à l’intérieur des balises de notre <Location> les deux types d’authentification auprès de la variable AuthBasicProvider.

Il est important de mettre variable AuthzLDAPAuthoritative à off, afin que si l’authentification à la première instance échoue, la deuxième soit tout de même testé. Cela sera par exemple le cas de tous les utilisateurs présents dans le 2e domaine mais pas dans le 1er.

 

Configuration d’un SVN avec authentification multiple (1 domaine Active Directory et 1 fichier htpasswd)

Voici maintenant une configuration vhost pour SVN permettant d’authentifier des utilisateurs auprès d’un serveur LDAP OU auprès d’un fichier :

<Location "/">
        Dav svn
        SVNPath /data/lib-repository

        #Authentication
        AuthType Basic
        AuthName "Welcome on the SVN server of Lib"
        AuthBasicProvider file ldap

        AuthUserFile /data/conf/lib-repository/svn-htpasswd

        AuthzLDAPAuthoritative off
        AuthLDAPCompareDNOnServer on
        AuthLDAPURL ldap://dc01.domain.com:3268/DC=domain,DC=com?sAMAccountName?sub?(objectClass=*)
        AuthLDAPBindDN svn-generic@domain.com
        AuthLDAPBindPassword gGuFY4gx

        #Permissions
        AuthzSVNAccessFile /data/conf/lib-repository/svnaccess

        Require valid-user
</Location>

Dans ce cas-ci, la variable AuthBasicProvider se voit attribuer comme valeur : file et ldap. On soumet deux types différents d’authentification. On précise ensuite l’emplacement du fichier htpasswd permettant l’authentification des utilisateurs étant présents. Puis, il s’agit ensuite de configurer une chaîne de connexion classique à un domaine AD.

Il faudra bien mettre la variable AuthzLDAPAuthoritative à off pour ne pas restreindre l’authentification au seul domaine AD.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *