Что нужно настроить или в чем может быть проблема, заключающаяся в следующем: мне нужно подцепиться к 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, Вы писали:
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>";
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?
Здравствуйте 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. На любые стандартные запросы из манов и проч.:
Т.е. дело может быть в неправильном синтаксисе запросов, поэтому вопрос — какой правильный синтаксис для таких запросов?
Что нужно там писать, если надо выбрать скажем 1. Всех пользователей AD и 2. Информацию по какому-то одному пользователю, найдя его по логину.
Какие-нибудь ссылки на это подскажите, если есть где об этом почитать...
Спасибо!
Re[3]: как подцепиться к Active Directory как к ldap?
Здравствуйте, <Аноним>, Вы писали:
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) можно получить разные результаты.