[Top][All Lists]
[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/
- [Dolibarr-bugtrack] [bug #33015] Utilisation incorrecte de LDAP,
Bruno Bonfils <=