PHP LDAP-соединение - PullRequest
       0

PHP LDAP-соединение

7 голосов
/ 10 февраля 2012

Я пытаюсь подключиться в LDAP с php-ldap.У меня проблема с использованием ldap_bind():

$username = 'josue.ruiz';
$password = 'pass';
$ldapconfig['host'] = '10.10.10.11';
$ldapconfig['port'] = 389;
$ldapconfig['basedn'] = 'dc=domain,dc=com';

$ds=ldap_connect($ldapconfig['host'], $ldapconfig['port']);
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);

$dn="cn=".$username.",ou=Technology,".$ldapconfig['basedn'];

if ($bind=ldap_bind($ds, $dn, $password)) {
    echo("Login correct");
} else {
    echo("Login incorrect");
}

Я получаю это сообщение:

Предупреждение: ldap_bind (): Невозможно привязать к серверу: неверные учетные данные в ...

Но когда я пытаюсь так:

ldap_bind($ds,'josue.ruiz@domain.com','pass'); 

Это работает нормально, но мне это не работает, потому что я хочу фильтровать по OU, и с этимкак я не могу.У кого-нибудь есть совет по этой проблеме?

1 Ответ

8 голосов
/ 11 февраля 2012

Когда вы пытаетесь сделать ldap_bind, вы только подключаетесь и определяете, подтверждают ли полномочия Что вам нужно сделать, это добавить свой домен к имени пользователя и позволить ему подключиться. Затем, если вы хотите определить, является ли пользователь подразделением «Technology» с ldap_search() Попробуйте сделать это следующим образом:

$domain = 'mydomain.com';
$username = 'josue.ruiz';
$password = 'pass';
$ldapconfig['host'] = '10.10.10.11';
$ldapconfig['port'] = 389;
$ldapconfig['basedn'] = 'dc=domain,dc=com';

$ds=ldap_connect($ldapconfig['host'], $ldapconfig['port']);
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);

$dn="ou=Technology,".$ldapconfig['basedn'];
$bind=ldap_bind($ds, $username .'@' .$domain, $password);
$isITuser = ldap_search($bind,$dn,'(&(objectClass=User)(sAMAccountName=' . $username. '))');
if ($isITuser) {
    echo("Login correct");
} else {
    echo("Login incorrect");
}
...