LDAP не подключается

Я использую OpenLDAP и пытаюсь подключиться (и привязать) к ldap, используя приведенный ниже PHP-код с другого сервера, и его ошибка. Но с помощью этого кода его подключение (и привязка) успешно с того же сервера.

$ldaphost = "server_name";  // 127.0.0.1 when using same server and changing the value when using different server 

$ldapport = 389;

$ldapconn = ldap_connect($ldaphost, $ldapport);


if ($ldapconn) {
    echo 'Connected <br/>';

    $userdn = "cn=manager,ou=Team,dc=example,dc=com";
    $password = "password";

    $bind = ldap_bind($ldapchtgoponn, $userdn, $password);

    if ($bind) {
        echo "Bind Successful";
    } else {
        echo "Error in bind";
    }
}

Нужно ли мне что-то настраивать для подключения к LDAP с другого сервера?


person Debashis    schedule 13.07.2013    source источник


Ответы (1)


не уверен, используете ли вы OpenLDAP или другой сервер, совместимый с ldap, но для OpenLDAP (slapd) вам не нужно выполнять какие-либо специальные шаги по настройке, чтобы иметь возможность подключаться к серверу с удаленного компьютера — сервер прослушивает всю доступную сеть интерфейсы на портах 389 (ldap://) и 636 (ldaps:// — ldap over SSL).

Подробнее о конфигурации сети для slapd можно прочитать здесь.

Я подозреваю, что у вас проблемы с сетью, разрешением DNS или брандмауэром.

Попробуйте использовать telnet для проверки сетевого подключения из терминального клиента или командной строки, например:

telnet YOUR_SERVER_ADDRESS 389

Вы должны получить кучу чепухи от сервера ldap, а клиент telnet должен ждать вашего дальнейшего ввода. Если вы видите что-либо еще, например отказ в подключении, и клиент telnet завершает работу, это означает, что ваш обмен данными блокируется брандмауэром или вы не можете связаться с удаленным компьютером. Или вы настроили клиент slapd на прослушивание только определенных интерфейсов или IP-адресов.

Я рекомендую попробовать команду telnet с IP-адресом вместо имени хоста DNS, чтобы устранить любые возможные проблемы, связанные с DNS.

person Robert Rossmann    schedule 13.07.2013
comment
Да, я использую openLDAP. Добавил эту информацию в сообщение выше. - person Debashis; 13.07.2013
comment
Каков результат телнета? Вы пробовали это с удаленной машины? - person Robert Rossmann; 13.07.2013
comment
Да, пробовал телнет с удаленной машины. Отображает «соединение отклонено». - person Debashis; 13.07.2013
comment
Не могли бы вы предложить, как это исправить? Это будет полезно и для других. - person Debashis; 13.07.2013
comment
Откройте порты 389 и 636 на брандмауэре. Проверьте брандмауэр на вашем сервере, а также убедитесь, что нет выделенного брандмауэра, блокирующего соединение в сети — если вы находитесь в сети компании, он может быть. Это очень специфично для ОС, поэтому я не могу предложить ничего конкретного. Проверьте документацию по вашей ОС, чтобы узнать об этих шагах. Также проверьте конфигурацию slapd, настроен ли сервер на прослушивание всех сетевых интерфейсов, как уже описано в моем ответе. - person Robert Rossmann; 13.07.2013