LDAP / SVN / apache et authentification

LDAP / SVN / apache et authentification - Sécurité - Systèmes & Réseaux Pro

Marsh Posté le 28-03-2017 à 15:24:15    

Bonjour,
 
Je suis développeur dans une entreprise depuis 15 ans maintenant, et je suis en charge depuis des années de gérer le dépot SVN , avec une authentification classique.
 
De plus en plus des gens viennent et partent , du coup on a choisi de déporter la gestion des users sur le S.I. qui possède un active directory.
 
J'ai donc tenté de configurer un dépot SVN de test pour gérer l'authentification par ldap et non plus par fichier classique mais j'avoue que je n'y comprends pas grand chose, ceci est totalement nouveau pour moi.
 
J'ai suivi les directives ici : http://www.jouvinio.net/wiki/index [...] ation_LDAP
et la description du module apache ici : https://httpd.apache.org/docs/2.2/f [...] _ldap.html
 
j'ai configuré mon dépot svn de la facon suivante :  
 


<Location /svntest>
 
DAV svn
 
SVNPath /var/svn/pgatest
AuthType Basic
AuthName "Subversion Repository TEST MODE"
#AuthUserFile /etc/apache2/dav_svn.passwd
 
#Require valid-user
AuthBasicProvider ldap
#AuthzLDAPAuthoritative on
AuthLDAPURL "ldap://avidc01.xxx.src.int/ou=ou_pga,dc=xxx,dc=src,dc=int?uid"
Require valid-user
 
</Location>


 
lorsque je commente la ligne ldap et que je décommente la ligne AuthUserFile( c'est à dire l'ancienne méthode ) , ca fonctionne bien. Tout est bien paramétré coté apache et svn.
 
Lorsque j'inverse, et que je me loggue, j'ai ensuite une internal server error ( error 500 ). J'ai beau activer les logs au niveau debug pour apache, je n'ai pas grand chose.
 
J'ai donc fait une capture wireshark et voici le résultat :
http://reho.st/i.imgur.com/DNppCiT.jpg
 
on voit que le bind est anonyme, et du coup la requete suivante ( search ) échoue. Ce qui génère derrière le 500 error ( pourri les logs du module apache pour le coup ).
 
J'ai donc essayé sous windows , d'abord avec l'outil ldap explorer tool 2 , puis finalement avec l'outil jxplorer et lors que je fais un connect anonyme :
 
http://reho.st/i.imgur.com/zSkoHxq.jpg
 
j'obtiens la même erreur que dans la capture wireshark:
 
http://reho.st/i.imgur.com/m5jiVVB.jpg
 
et lorsque je fais un connect avec user+pass :  
 
http://reho.st/i.imgur.com/qhqAuWZ.jpg
 
ca se connecte bien et je peux ensuite faire des search :  
 
http://reho.st/i.imgur.com/w68V3Ba.jpg
 
 
 
Ma question est donc la suivante : je suppose que je dois changer la syntaxe de mon url ldap pour ne pas faire un bind anonyme mais un bind avec user/pass mais je ne sais pas comment OU je dois activer des options du module authnz_ldap d'apache pour faire un bind avec user/pass mais je n'ai pas trouvé d'option proposant cela (ou alors j'ai mal lu ).
 
url : ldap://avidc01.xxx.src.int/ou=ou_pga,dc=xxx,dc=src,dc=int?uid
 
Merci d'avance pour votre aide :jap:


Message édité par xilebo le 28-03-2017 à 15:59:35
Reply

Marsh Posté le 28-03-2017 à 15:24:15   

Reply

Marsh Posté le 28-03-2017 à 15:27:48    

Ca a l'air pourtant expliquer :
https://httpd.apache.org/docs/2.4/m [...] _ldap.html
AuthLDAPURL  Specifies the LDAP server, the base DN, the attribute to use in the search, as well as the extra search filter to use.
AuthLDAPBindDN  An optional DN to bind with during the search phase.
AuthLDAPBindPassword  An optional password to bind with during the search phase.

Reply

Marsh Posté le 28-03-2017 à 16:02:26    

tout a fait, mais je ne veux pas fixer un login / pass dans la config, mais qu'il prenne dynamiquement le login / pass que je rentre lorsque je me log avec un navigateur.
 
A moins qu'il soit possible de spécifier dans l'option AuthLDAPBindDN / AuthLDAPBindPassword de prendre ce qui est saisi ?

Reply

Marsh Posté le 28-03-2017 à 16:10:51    

l'idée est plutôt de faire le bind avec l'utilisateur dans la conf pour s'authentifier dans le serveur ldap puis chercher l'utilisateur passé en paramètre puis s'il le trouve refaire un bind avec l'utilisateur passé en paramètre.

Reply

Marsh Posté le 28-03-2017 à 16:40:23    

oui tout a fait, je viens d en discuter avec mon S.I. , il est possible d'avoir un utilisateur dédié pour le bind. C'est surement ce qu'on va faire d'ailleurs, car les mots de passe des users standards changent tous les 3 mois , je risquerais d'invalider tous les dépots SVN le temps de mettre à jour la conf ^^
 
Sinon, ca fonctionne avec les options que tu m'as précisé, merci bien :)
 
J'ai du simplement également changer uid par userPrincipalName dans l'url ldap pour que ca fonctionne.
 
J'en suis maintenant à trouver comment filtrer avec un groupe dans le ldap pour ne tagguer que certains utilisateurs.
 
Merci pour ton aide :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed