Подключите активный каталог или LDAP с PHP - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь подключить активный каталог или LDAP окна с приложением ( GLPI ), выполненным на PHP.

Параметры подключения:

Соединение с сервером:

$ds = ldap_connect($host, $port) // return true

@ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

@ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);

@ldap_set_option($ds, LDAP_OPT_DEREF, $deref_options);

Связать соединение с сервером и пользователем и пароль

ldap_bind ($ds, $ login, $ password)

возвращает мне:

"Невозможно связаться с сервером LDAP"

Я хочу знать, что может произойти с этим сообщением об ошибке, поскольку в первом методе оно возвращает мне значение true, что означает, что при подключении к серверу.

RootDN Это нормальнои имеет все разрешения пользователя, которого я использую.

Сервер по умолчанию в порядке, и я сделал ping и telnet.

Примечание: Я уже скачалLDAPExplorer и установленное соединение без проблем.

Ответы [ 3 ]

0 голосов
/ 11 декабря 2018

ldap_connect не не подключается к серверу, как четко указано в документах .Он просто создает ресурс и проверяет, являются ли данные значения правдоподобными.Фактическое соединение устанавливается с помощью первой команды, которая требует соединения с сервером.В этом случае ldap_bind.

Кстати: «первый метод» возвращает не true, а дескриптор ресурса.Только когда вы передадите что-то абсолютно не разбираемое, оно вернет false.Но никогда true

Я бы рекомендовал использовать LDAP-URI вместо варианта $host, $port, поскольку PHP-библиотека должна делать это внутренне.И это единственный способ установить LDAPS-соединение.

0 голосов
/ 13 декабря 2018

Хорошо, решение моей проблемы - обновить версию GLPI 9.3.0 до 9.3.3.

Предложения:

  • Что может произойти для пользователейдля этого проверьте сообщения, которые GLPI сообщает об ожидающих установочных пакетах.Поэтому я выбрал обновление, и соединение работало без проблем.

  • Для пользователей, которые не могут обновить версию, убедитесь, что пакеты apache ожидают установки или обновления, также в процессе установки вПри установке, будьте очень осторожны, устанавливая весь список, который кажется ожидающим.

Чтобы исправить некоторые ошибки, установив версию 9.3.3:

chown -R apache: apache glpi / files

chmod -R 755 glpi / files

chown -R apache: apache config

chmod -R 755 glpi / config

также:

setsebool -P httpd_can_network_connect_db 1

Спасибо.

0 голосов
/ 11 декабря 2018

Неужели недостающее: $ds = ldap_connect ... нравится, как оно в вашем коде?

Это должно быть что-то вроде:

$ds = ldap_connect($host, $port);

@ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

@ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);

@ldap_set_option($ds, LDAP_OPT_DEREF, $deref_options);

ldap_bind ($ds, $login, $password)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...