' .'' .'' .''; } } ldap_close($connect); } else print 'Не удалось подключиться к серверу LDAP.'; $i++; } print $result.'
Главная | Контакты | Настройки СМЕНИТЬ ПАЛИТРУ:

Главная > Технологии > Протокол

Поиск группы в LDAP Active Directory

Имеем. Лес доменов на базе Win2k/Win3k. Универсальную группу "AccessGroup" в корневом домене. Много пользователей во всех доменах леса.

Задача. Средствами PHP определить входит ли произвольный пользователь в эту самую "AccessGroup".

Пробуем вот такой скрипт:

Все замечательно работает пока в группе меньше 1000 членов. Как только число мемберов превышает 1000 (для Win2k3 - 1500), атрибут "member" приезжает пустой. Вместо него приезжает атрибут "member;Range=0-999" в котором содержатся первые 1000 членов группы. А как быть с остальными?

Догадываюсь (да и MSDN мои догадки подтверждает), что нужно как-то поиграться с параметром "Range=xx-xx". Hо вот куда его в LDAP запросе писать?


Поиск пользователей в Active Directory (W2000/2003 domain) через PHP+LDAP

$servers = array( "DC=ngd, DC=ru", "DC=kgp, DC=ngd, DC=ru", "DC=ztgp, DC=ngd, DC=ru", "DC=bmts-2, DC=ngd, DC=ru" ); $ip_addr = array( "10.52.1.100", "10.52.233.1", "10.52.234.1", "10.52.236.1" ); $person = iconv ('CP1251','UTF-8', $sql_seek ); $fields = array("name", "mail", "telephonenumber", "description"); $ldap_port = "389"; $filter = "(|(name=*$person*))"; $ldap_user ="***"; $ldap_pass = "***"; $i = 0; while ( isset($servers[$i]) && isset($ip_addr[$i]) ) { if ( $connect = ldap_connect( $ip_addr[$i] ) ) { ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3); $bind = ldap_bind($connect, $ldap_user, $ldap_pass); $read = ldap_search($connect, $servers[$i], $filter, $fields ); if ( $info = ldap_get_entries($connect, $read) ) { for( $ligne = 0; $ligne<$info["count"]; $ligne++) { $name = @iconv( 'UTF-8', 'CP1251', $info[$ligne][$fields[0]][0] ); $email = @$info[$ligne][$fields[1]][0]; $phone = @$info[$ligne][$fields[2]][0]; $desc = @iconv('UTF-8', 'CP1251', $info[$ligne][$fields[3]][0]); if ( isset($email) ) $result .= '

 '.$name.'

'.$email.'

 '.$phone.'

 '.$desc.'


';

Использован материал:

Главная > Технологии > Протокол