У меня работает сервер LDAP: ldap://129.168.0.117:389
или ldap://roshd.org:389
где roshd.org = 129.168.0.117
У меня есть эта конфигурация в config.php в phpldapadmin:
$servers = new Datastore();
$servers->newServer('ldap_pla');
$servers->setValue('server','name','My LDAP Server');
$servers->setValue('server','host','192.168.0.117');
$servers->setValue('server','port',389);
$servers->setValue('login','auth_type','session');
$servers->setValue('login','bind_id','cn=Manager,dc=roshd,dc=org');
$servers->setValue('login','bind_pass','secret');
$servers->setValue('auto_number','search_base','ou=People,dc=roshd,dc=org');
в моем sldap.conf:
...
database bdb
directory /usr/local/var/openldap-data
suffix "dc=roshd,dc=org"
rootdn "cn=Manager,dc=roshd,dc=org"
rootpw secret
...
но когда я пытаюсь войти в phpldapadmin, я получил эту ошибку. есть идеи?
Unable to connect to LDAP server My LDAP Server
Error: Can't contact LDAP server (-1) for user
error Failed to Authenticate to server
Invalid Username or Password.
Найди отличие:
$ server-> setValue ('сервер', 'хост', '192.168.0.117');
LDAP: //129.168.0.117: 389
Я подозреваю, что предполагается, что rootpw будет храниться в зашифрованном виде, и у вас есть открытый текст, и в этом случае ожидается, что, возможно, другой результат. (То есть хешированное значение секрета отправляется и сравнивается с секретом строки открытого текста.)
Если вы выполняете аутентификацию по самому ldap, вы можете проверить этот параметр: $servers->setValue('login','attr','uid');
/* If you specified 'cookie' or 'session' as the auth_type above, you can
optionally specify here an attribute to use when logging in. If you enter
'uid' and login as 'dsmith', phpLDAPadmin will search for (uid=dsmith)
and log in as that user.
Leave blank or specify 'dn' to use full DN for logging in. Note also that if
your LDAP server requires you to login to perform searches, you can enter the
DN to use when searching in 'bind_id' and 'bind_pass' above. */
// $servers->setValue('login','attr','dn');
В CentOS 7 я получаю ту же ошибку, поскольку SELinux ограничивает доступ к ldap из httpd ...
setsebool -P httpd_can_connect_ldap on
сделали свое дело ...
Я была такая же проблема. Вы можете проверить ниже.
Проверьте, есть ли у вас правильный IP-адрес в $ servers-> setValue ('server', 'host', 'ipaddress'); в файле ldap.conf. и перезапустите сервер tomcat. Ура.
Проверьте, существует ли пользователь, с которым вы пытаетесь войти, или не использует "ldapsearch -x" на терминале.