Только что изучил OpenLDAP сегодня, и я хочу интегрироваться с PHP. Что я сделал, так это установил OpenLDAP, так выглядит моя структура:
Затем я хочу интегрировать этот LDAP в PHP, но я не знаю, как получить информацию для этой конфигурации (пробовал с этим безуспешно):
protected $baseDn = "dc=maxcrc,dc=com";
protected $dn = "cn=Manager,ou=group,o=accounts,dc=maxcrc,dc=com";
protected $groupOU = "ou=group";
protected $peopleOU = "ou=People";
protected $peopleOU = "ou=People";
Может ли кто-нибудь помочь в этом? это мой полный код для ldapconnection
<?php
include_once('settings.php');
class LDAP_Connector {
protected $baseDn = "dc=maxcrc,dc=com";
// Distinguished name for the admin.
protected $dn = "cn=Manager,ou=group,o=accounts,dc=maxcrc,dc=com";
// The ou of groups.
protected $groupOU = "ou=group";
// The ou of people.
protected $peopleOU = "ou=People";
protected $ldapconn;
public function __construct() {
global $ldapHost, $ldapPort, $ldapUser, $ldapPassword;
message("Creating LDAP connector");
$this->ldapconn = ldap_connect($ldapHost, $ldapPort);
if ($this->ldapconn) {
message("LDAP Connected - ".$this->ldapconn);
}
else {
message("LDAP failed to connect");
}
}
public function authenticate($username, $password) {
$r = false;
global $ldapHost, $ldapPort, $ldapUser, $ldapPassword;
if ($this->ldapconn) {
$bind = ldap_bind($this->ldapconn, $this->dn, $ldapPassword);
if ($bind) {
//$uid = $ldapUser;
$uid = $username;
// Filter on the uid.
$filter = "(mail=". $uid . ")";
// Return the userPassword.
$attr = array("userpassword","rpDisabledState");
// Get the record for the user.
$result = ldap_search($this->ldapconn, $this->peopleOU . "," . $this->baseDn, $filter, $attr);
//message( "result = ".print_r($result, true) );
$entries = ldap_get_entries($this->ldapconn, $result);
//message( print_r($entries, true));
$ldapEncodedPW = "{SHA}".base64_encode(pack("H*", $password));
$userDisabled = $entries[0]["rpdisabledstate"][0];
message("User ".$username." state is ".$userDisabled);
if ($userDisabled) {
message("username ".$username." is disabled ");
}
if ($entries[0]["userpassword"][0]==$ldapEncodedPW && !$userDisabled) {
$r = true;
}
else {
message("Passwords do not match or the account has been disabled.");
message("Password (provided) = ".$ldapEncodedPW);
message("Password (ldap) = ".$entries[0]["userpassword"][0]);
}
}
}
return $r;
}
}
?>
Надеюсь, что кто-то может помочь мне с этим, я сложил неделю для этого штука ((
С Уважением,
T
Задача ещё не решена.
Других решений пока нет …