Спустя 1 день, 7 часов, 8 минут, 7 секунд (5.04.2009 - 16:03) Kuzya написал(а):
Всё ещё пытаюсь решить свою проблему через LDAP-поиск. Почти приблизился к решению. Не совсем хорошо (а точнее почти никак) разбираюсь в работе с ActiveDirectory через PHP. Сейчас суть моей задачи в том что бы при выходе авторизовать пользователя и в сессию положить его имя, id и группы в которые он входит. Используя LDAP я смог нормально подключится и проверить существования пользователя (функцией ldap_bind). А когда стало нужно извлечь данные о пользователе то я запоролся. Вот используемый код :
(Имя пользователя "one", пароль "123abc!", имя машины "dipl", имя домена "diplom.local")
PHP |
$ldap_addr = "192.168.244.5"; $g_res = ldap_connect($ldap_addr); if($g_res) { print "Connected to ladp-server<br />"; } else { print "can`t connect to addr {$ldap_addr}"; exit; }
$bind_user = ldap_bind($g_res, "one@diplom.local", "123abc!"); if ($bind_user) { print "User binded!<br />"; } else { print "can`t bind user!<br />"; exit; }
$sr=ldap_search($g_res,"dc=dipl,dc=diplom,dc=local", "(samaccountname=one)", array("*") ); $info = ldap_get_entries($g_res, $sr); var_dump($info); |
Всё хорошо работает до вызова ldap_search. Проблема в строке "dc=dipl,dc=diplom,dc=local". Если честно то я даже не знаю что туда писать. Нашёл расшифровки для всего того что можно в ней указать (o,cn,dc и т.д.) но не знаю что в эти параметры поместить и какие из них обязательны. Я знаю имя машины и домена, их и пишу. Но при любом случае функция выдаёт ошибку:
"Warning: ldap_search() [function.ldap-search]: Search: No such object in ... on line ..."
Помогите пожалуйста, второй день мучаюсь.
P.S. в редакторе запросов AD нужный мне запрос выглядит вот так: "(&(objectCategory=person)(objectClass=user)(name=one))"
Помощь нужна очень срочно! Буду крайне благодарен хотя бы за подсказки.