Соединение PHP LDAP

Я пытаюсь подключиться в LDAP с phpldap. У меня проблема с 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 , и таким образом я не могу. Есть ли у кого-нибудь советы по этой проблеме?

Когда вы пытаетесь выполнить ldap_bind вы только подключаетесь и определяете, проверяются ли учетные данные. Что вам нужно сделать, это добавить свой домен в имя пользователя и позволить ему подключаться. Затем, если вы хотите определить, является ли пользователь «технологическим» подразделением с 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"); }