dolibarr-bugtrack
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dolibarr-bugtrack] [bug #33015] Utilisation incorrecte de LDAP


From: Bruno Bonfils
Subject: [Dolibarr-bugtrack] [bug #33015] Utilisation incorrecte de LDAP
Date: Thu, 07 Apr 2011 14:07:13 +0000
User-agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; fr; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16

URL:
  <http://savannah.nongnu.org/bugs/?33015>

                 Summary: Utilisation incorrecte de LDAP
                 Project: Dolibarr
            Submitted by: asyd
            Submitted on: Thu 07 Apr 2011 02:07:12 PM GMT
                Severity: 3 - Normal
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
                 Release: 3.0
        Operating System: None

    _______________________________________________________

Details:

Bonjour,

actuellement l'authentification en LDAP s'effectue de la manière suivante :

construction du DN utilisateur avec : $dolibarr_main_auth_ldap_login_attribute
= $username . $dolibarr_main_auth_ldap_dn

Ce qui implique que les utilisateurs soient stockés de manière à plat
(c'est dire dans la même OU) et avec dolibarr_main_auth_ldap_login_attribute
comme attribut pour le RDN.

Pour ma part, et comme dans de nombreuses entreprises, les utilisateurs sont
stockés de manière hiérarchique.

La manière classique d'une authentification LDAP s'effectue de la manière
suivante :

configuration host*
configuration port*
configuration basedn*
configuration binddn
configuration bindpassword
configuration filter (avec comme valeur par defaut (uid=%1%)

Puis, pour authentifier un utilisateur, avec le déroulement suivant :

- connect
- bind si binddn et bindpasswd sont spécifiés
- recherche dans basedn avec le filtre spécifié, où %1% est remplacé par
le nom d'utilisateur
- si count(resultat_recherche)!=1 erreur
- sinon, faire un bind avec le DN obtenu par la recherche, et le mot de passe
fourni pas l'utilisateur

J'ai modifié le fichier includes/login/function_ldap.php pour obtenir :

      // Forge LDAP user and password to test from config setup

      // Looking for a LDAP object mathing ldapuserattr = usertotest, patch
asyd
      $ldap->connect_bind(); /* why the fuck I need to connect_bind *here */
      $userSearchFilter = "(" . $ldapuserattr . "=" . $usertotest . ")";
      $userSearch = $ldap->search($ldapdn, $userSearchFilter);

      if (count($userSearch) > 0) {
         $ldap->searchUser = $userSearch[0]['dn'];
         print_r($ldap->searchUser);
      }
/*

      $ldap->searchUser=$ldapuserattr."=".$usertotest.",".$ldapdn; 
*/
      $ldap->searchPassword=$passwordtotest;

et cela fonctionne comme décrit précédemment.

Cependant, il faut également faire un autre patch pour que les entrées LDAP
crées par Dolibarr utilisent un autre RDN (Dans mon cas CN) que celui
spécifié par dolibarr_main_auth_ldap_login_attribute






    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?33015>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]