ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

LDAP-поиск
  #1  
Старый 06.04.2009, 09:10
Аватар для Kuzya
Kuzya
Участник форума
Регистрация: 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))"
 
Ответить с цитированием

  #2  
Старый 06.04.2009, 09:47
Аватар для demond
demond
Участник форума
Регистрация: 05.11.2008
Сообщений: 105
Провел на форуме:
292722

Репутация: 71
По умолчанию

при настройке LDAP я сталкивался с access-list. В которых прописывается доступ к полям! Так вот если неправильно этим пользоваться, то вполне вероятно получить такой результат! Советую капать в этом направлении!
 
Ответить с цитированием

  #3  
Старый 06.04.2009, 12:26
Аватар для Dronga
Dronga
ВАША реклама ТУТ!!
Регистрация: 01.07.2005
Сообщений: 647
Провел на форуме:
3478464

Репутация: 714


Отправить сообщение для Dronga с помощью ICQ
По умолчанию

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

  #4  
Старый 06.04.2009, 18:32
Аватар для Kuzya
Kuzya
Участник форума
Регистрация: 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..
 
Ответить с цитированием

  #5  
Старый 06.04.2009, 18:51
Аватар для Kuzya
Kuzya
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме:
140661

Репутация: 313
По умолчанию

Dronga, а где мне в древе нужно порыться что бы узнать группу пользователя по его логину? Покопался сейчас, но могу только найти имя и фамилию (в списке членов определённой группы), а вот логин никак =(

Последний раз редактировалось Kuzya; 06.04.2009 в 18:54..
 
Ответить с цитированием

  #6  
Старый 07.04.2009, 10:46
Аватар для Kuzya
Kuzya
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме:
140661

Репутация: 313
По умолчанию

Извиняюсь, туплю =)
 
Ответить с цитированием

  #7  
Старый 07.04.2009, 16:41
Аватар для Kuzya
Kuzya
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме:
140661

Репутация: 313
По умолчанию

Всё, сделал окончательно. Вдруг кому пригодится. Вот запрос:
$sr=ldap_search($g_res,"CN=Users,DC=diplom,DC=loca l", "samaccountname=one", array("*") );
показываем все данные по пользователю указанного домена (diplom.local) =)
 
Ответить с цитированием

  #8  
Старый 24.04.2009, 20:14
Аватар для Fault
Fault
Новичок
Регистрация: 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..
 
Ответить с цитированием

  #9  
Старый 12.05.2009, 01:05
Аватар для Dronga
Dronga
ВАША реклама ТУТ!!
Регистрация: 01.07.2005
Сообщений: 647
Провел на форуме:
3478464

Репутация: 714


Отправить сообщение для Dronga с помощью ICQ
По умолчанию

1. Попробуй заменить имя контроллера на его IP.
2. Скорее всего проблема связана с неправильной установкой соединения. Смотри с версиями протокола какие есть завязки. И смотри специфичные для твоего LDAP-сервера примочки.

Какой LDAP-сервер используется?
__________________
My ICQ: 296@463@859 ONLY!! Please check your list!!
И здесь могла бы быть ВАША реклама!!!

Последний раз редактировалось Dronga; 12.05.2009 в 01:10..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Paros - инструмент для исследования веб-приложений Kuzya Авторские статьи 2 10.04.2009 17:37
Перевод официальной документации Nikto 2 Kuzya Авторские статьи 2 25.03.2009 01:10
Nigma ищет музыку и химию PaLb14 Мировые новости 2 23.12.2008 19:06
Working with LDAP Dracula4ever Forum for discussion of ANTICHAT 0 20.05.2006 18:38



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ