как подцепиться к Active Directory как к ldap?
От: DrColombo Россия http://www.geocities.com/dr_colombo/
Дата: 15.03.02 15:16
Оценка:
Что нужно настроить или в чем может быть проблема, заключающаяся в следующем: мне нужно подцепиться к Active Directory, использую протокол LDAP (сделать это нужно на PHP и на Perl), но даже элементарный запрос к PDC в броузере ldap://pdc хоть и показывает адресную книгу, но на все запросы к ней выдает ошибку такого рода:
Your computer, your Internet service provdier, or the specified directory service may be disconnected. Check your connections and try again.
Да и при подключении к PDC как LDAP серверу, подкючение происходит нормально, а на все запросы к нему — опять "посылает". Все это тестирую под аккаунтом Domain Admin'а, так что с секьюрити, думаю, проблем не должно быть.

WBR \DrColombo
WBR \DrColombo
Re: как подцепиться к Active Directory как к ldap?
От: zaiats_2k Россия  
Дата: 15.03.02 15:24
Оценка:
Уж сколько раз твердили миру... — кинь кусок кода, не заставляй людей напрягать свои телепатические способности .
0 программистов ругал сердитый шеф,
потом уволил одного, и стало их FF!
Re[2]: как подцепиться к Active Directory как к ldap?
От: DrColombo Россия http://www.geocities.com/dr_colombo/
Дата: 15.03.02 17:29
Оценка:
Здравствуйте zaiats_2k, Вы писали:

Z2>Уж сколько раз твердили миру... — кинь кусок кода, не заставляй людей напрягать свои телепатические способности

Код — стандартный пример из хелпа PHP:

<?php
// basic sequence with LDAP is connect, bind, search, interpret search
// result, close connection

echo "<h3>LDAP query test</h3>";
echo "Connecting ...";
$ds=ldap_connect("localhost"); // must be a valid LDAP server!
echo "connect result is ".$ds."<p>";

if ($ds) {
echo "Binding ...";
$r=ldap_bind($ds); // this is an "anonymous" bind, typically
// read-only access
echo "Bind result is ".$r."<p>";

echo "Searching for (sn=S*) ...";
// Search surname entry
$sr=ldap_search($ds,"o=My Company, c=US", "sn=S*");
echo "Search result is ".$sr."<p>";

echo "Number of entires returned is ".ldap_count_entries($ds,$sr)."<p>";

echo "Getting entries ...<p>";
$info = ldap_get_entries($ds, $sr);
echo "Data for ".$info["count"]." items returned:<p>";

for ($i=0; $i<$info["count"]; $i++) {
echo "dn is: ". $info[$i]["dn"] ."<br>";
echo "first cn entry is: ". $info[$i]["cn"][0] ."<br>";
echo "first email entry is: ". $info[$i]["mail"][0] ."<p>";
}

echo "Closing connection";
ldap_close($ds);

} else {
echo "<h4>Unable to connect to LDAP server</h4>";
}
?>

На phpbuilder.com говорят, что все типа просто: пользуйте функции LDAP и вы легко и просто подцепитесь к AD. Что-то ни легко и не просто на деле-то оказывается
К обычному LDAP серверу да, цепляется и вытаскивает данные на ура, а вот к AD — никак.
WBR \DrColombo
Re[3]: как подцепиться к Active Directory как к ldap?
От: Lexey Россия  
Дата: 16.03.02 20:59
Оценка:
Здравствуйте DrColombo, Вы писали:

DC>Здравствуйте zaiats_2k, Вы писали:


Z2>>Уж сколько раз твердили миру... — кинь кусок кода, не заставляй людей напрягать свои телепатические способности

DC>Код — стандартный пример из хелпа PHP:

DC><?php

DC>// basic sequence with LDAP is connect, bind, search, interpret search
DC>// result, close connection

DC>echo "<h3>LDAP query test</h3>";

DC>echo "Connecting ...";
DC>$ds=ldap_connect("localhost"); // must be a valid LDAP server!
DC>echo "connect result is ".$ds."<p>";

DC>if ($ds) {

DC> echo "Binding ...";
DC> $r=ldap_bind($ds); // this is an "anonymous" bind, typically
DC> // read-only access

Проблема скорее всего как раз из-за анонимного бинда. AD не должна давать делать к себе анонимные запросы, чего она скорее всего и делает. Попробуй тут bind с аутентификацией.
Re[4]: как подцепиться к Active Directory как к ldap?
От: Аноним  
Дата: 12.07.05 07:18
Оценка:
Здравствуйте, Lexey, Вы писали:

L>Здравствуйте DrColombo, Вы писали:


DC>>Здравствуйте zaiats_2k, Вы писали:


Z2>>>Уж сколько раз твердили миру... — кинь кусок кода, не заставляй людей напрягать свои телепатические способности

DC>>Код — стандартный пример из хелпа PHP:

DC>><?php

DC>>// basic sequence with LDAP is connect, bind, search, interpret search
DC>>// result, close connection

DC>>echo "<h3>LDAP query test</h3>";

DC>>echo "Connecting ...";
DC>>$ds=ldap_connect("localhost"); // must be a valid LDAP server!
DC>>echo "connect result is ".$ds."<p>";

DC>>if ($ds) {

DC>> echo "Binding ...";
DC>> $r=ldap_bind($ds); // this is an "anonymous" bind, typically
DC>> // read-only access

L>Проблема скорее всего как раз из-за анонимного бинда. AD не должна давать делать к себе анонимные запросы, чего она скорее всего и делает. Попробуй тут bind с аутентификацией.


Попробовал ldap_bind с аутенификацией зарегистрированного в домене AD пользователя. Проходит, ldap_bind возвращает 1-цу.
Но теперь надо — получить список всех пользователей в AD. На любые стандартные запросы из манов и проч.:
$dn = "o=My Company, c=US";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("ou", "sn", "givenname", "mail");
$sr=ldap_search($ds, $dn, $filter, $justthese);

$sr = ldap_search($ldapconn, “o=My Company, c=RU”, “sn=S*”)

Возвращается Operations Error.

Т.е. дело может быть в неправильном синтаксисе запросов, поэтому вопрос — какой правильный синтаксис для таких запросов?
Что нужно там писать, если надо выбрать скажем 1. Всех пользователей AD и 2. Информацию по какому-то одному пользователю, найдя его по логину.
Какие-нибудь ссылки на это подскажите, если есть где об этом почитать...
Спасибо!
Re[3]: как подцепиться к Active Directory как к ldap?
От: AlExis Glinski Беларусь www.offsiteteam.com
Дата: 13.01.06 17:39
Оценка:
Здравствуйте, DrColombo, Вы писали:

DC>Возвращается Operations Error.


У меня та же фигня, на любые запросы возвращается Operations Error. Нашлось ли решение этой проблемы ???
Re[5]: как подцепиться к Active Directory как к ldap?
От: andik  
Дата: 16.01.06 08:32
Оценка:
Здравствуйте, <Аноним>, Вы писали:

DC>>>echo "<h3>LDAP query test</h3>";

DC>>>echo "Connecting ...";
DC>>>$ds=ldap_connect("localhost"); // must be a valid LDAP server!
DC>>>echo "connect result is ".$ds."<p>";

DC>>>if ($ds) {

DC>>> echo "Binding ...";
DC>>> $r=ldap_bind($ds); // this is an "anonymous" bind, typically
DC>>> // read-only access

L>


А>Т.е. дело может быть в неправильном синтаксисе запросов, поэтому вопрос — какой правильный синтаксис для таких запросов?

А>Что нужно там писать, если надо выбрать скажем 1. Всех пользователей AD и 2. Информацию по какому-то одному пользователю, найдя его по логину.
А>Какие-нибудь ссылки на это подскажите, если есть где об этом почитать...
А>Спасибо!

Попробуй сделать соединение не через localhost, а через имя машины или по ip адресу.
Помню, что иногда от типа соединения (имя машина или ip) можно получить разные результаты.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.