Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

06.04.2009, 09:10
|
|
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме: 140661
Репутация:
313
|
|
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))"
|
|
|

06.04.2009, 09:47
|
|
Участник форума
Регистрация: 05.11.2008
Сообщений: 105
Провел на форуме: 292722
Репутация:
71
|
|
при настройке LDAP я сталкивался с access-list. В которых прописывается доступ к полям! Так вот если неправильно этим пользоваться, то вполне вероятно получить такой результат! Советую капать в этом направлении!
|
|
|

06.04.2009, 12:26
|
|
ВАША реклама ТУТ!!
Регистрация: 01.07.2005
Сообщений: 647
Провел на форуме: 3478464
Репутация:
714
|
|
Это AD, если биндится и пользователя находит, значит дело не в "access-list". Советую поставить Softerra LDAP Browser, подключиться к AD с теми реквизитами которые ты использщуешь в PHP и произвосети поиск из неё. Она покажет шаблон поиска, который можно скопировать и использовать в функции... Там же и поля поглядишь и со структурой получше познакомишься. Сам долго поначалу тыкался когда парочку служб интегрировал..
__________________
My ICQ: 296@463@859 ONLY!! Please check your list!!
И здесь могла бы быть ВАША реклама!!!
|
|
|

06.04.2009, 18:32
|
|
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме: 140661
Репутация:
313
|
|
demond, спасибо за отзыв. Я в гугле видел подобную проблему. Там всё решилось через разрешение доступа хоста. У меня немного другое. Действительно проблема была в запросе.
Dronga! Спасибо огромное! Всё скачал, разобрался. Запрос
$sr=ldap_search($g_res,"CN=web_admin,CN=Builtin,DC =diplom,DC=local", "(objectClass=*)", array("*") );
(web_admin - Это группа к которой принадлежит пользователь)
выдал всё что мне нужно! Наконец-то я всё решил =))) Спасибо! сейчас просто методом подбора найду что требуется =)
P.S. а почему я выбрал +10 репутации Дронги, а прибавилось всего 3? =О
Последний раз редактировалось Kuzya; 06.04.2009 в 18:41..
|
|
|

06.04.2009, 18:51
|
|
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме: 140661
Репутация:
313
|
|
Dronga, а где мне в древе нужно порыться что бы узнать группу пользователя по его логину? Покопался сейчас, но могу только найти имя и фамилию (в списке членов определённой группы), а вот логин никак =(
Последний раз редактировалось Kuzya; 06.04.2009 в 18:54..
|
|
|

07.04.2009, 10:46
|
|
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме: 140661
Репутация:
313
|
|
Извиняюсь, туплю =)
|
|
|

07.04.2009, 16:41
|
|
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме: 140661
Репутация:
313
|
|
Всё, сделал окончательно. Вдруг кому пригодится. Вот запрос:
$sr=ldap_search($g_res,"CN=Users,DC=diplom,DC=loca l", "samaccountname=one", array("*") );
показываем все данные по пользователю указанного домена (diplom.local) =)
|
|
|

24.04.2009, 20:14
|
|
Новичок
Регистрация: 24.04.2009
Сообщений: 1
Провел на форуме: 588
Репутация:
1
|
|
Народ. Нужна ваша помощь. Я новичек в этом деле. Дело обстоит так. Вот код
PHP код:
<?php
$ldaphost = "ldap://vihor.vihor.local";
$ldapconn = ldap_connect($ldaphost);
if($ldapconn)
{
echo("Подключение установлено!<br>");
echo("$ldapconn<br>");
}
else
{
echo("Неа, не получается...<br>");
}
$ldaprdn1 = "uid=panin_d,ou=users,ou=vt,dc=vt,dc=local";
$ldaprdn2 = "ou=users,ou=vt,dc=vt,dc=local";
$ldaprdn3 = "panin_d@vt.local";
$ldaprdn4 = "ou=vt,dc=vt,dc=local";
$ldappass = "123";
$ldapbind = ldap_bind($ldapconn, $ldaprdn1, $ldappass);
if ($ldapbind) { echo "Привязка прошла успешно! $ldaprdn1"; } else { echo "Не удается привязаться к каталогу... $ldaprdn1"; }
$ldapbind = ldap_bind($ldapconn, $ldaprdn2, $ldappass);
if ($ldapbind) { echo "Привязка прошла успешно! $ldaprdn2"; } else { echo "Не удается привязаться к каталогу...$ldaprdn2"; }
$ldapbind = ldap_bind($ldapconn, $ldaprdn3, $ldappass);
if ($ldapbind) { echo "Привязка прошла успешно! $ldaprdn3"; } else { echo "Не удается привязаться к каталогу...$ldaprdn3"; }
$ldapbind = ldap_bind($ldapconn, $ldaprdn4, $ldappass);
if ($ldapbind) { echo "Привязка прошла успешно! $ldaprdn4"; } else { echo "Не удается привязаться к каталогу...$ldaprdn4"; }
ldap_close($ldapconn);
?>
Я не могу привязаться к папке. Ошибка такая: Unable to bind to server: Protocol error in... прошу помощи.
http://s57.radikal.ru/i158/0904/15/40342e9d1ccc.jpg вот ссылка скришота ldap-каталога.
Последний раз редактировалось scrat; 12.05.2009 в 07:43..
|
|
|

12.05.2009, 01:05
|
|
ВАША реклама ТУТ!!
Регистрация: 01.07.2005
Сообщений: 647
Провел на форуме: 3478464
Репутация:
714
|
|
1. Попробуй заменить имя контроллера на его IP.
2. Скорее всего проблема связана с неправильной установкой соединения. Смотри с версиями протокола какие есть завязки. И смотри специфичные для твоего LDAP-сервера примочки.
Какой LDAP-сервер используется?
__________________
My ICQ: 296@463@859 ONLY!! Please check your list!!
И здесь могла бы быть ВАША реклама!!!
Последний раз редактировалось Dronga; 12.05.2009 в 01:10..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|