I've following problem with my php script:
PHP Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP server in ....
ldap_connect()
says "Success" but ldap_bind()
fails, how to fix that issue?
I've following problem with my php script:
PHP Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP server in ....
ldap_connect()
says "Success" but ldap_bind()
fails, how to fix that issue?
Connect opens the session. Bind is what actually authenticates you. Thus you connected but did not login with valid credentials.
Had this error on RHEL7 ( CentOS7 ) due to SELinux restricting ports HTTPD can use.
LDAP ports 389 and 636 are not on the default allow list, you can unblock with:
setsebool -P httpd_can_network_connect 1
You can test for the restriction by trying a socket to the LDAP server:
fsockopen('LDAP-Server-IP', 389);
It will give 'Permission Denied' showing it's blocked and not a credentials issue.
Also check your SELinux audit log file for other things being blocked.
Sometime the problem will depend of your environment(Linux, Windows...) Try to bind with one of this options:
$connect = ldap_connect("ldap://".$ldap_server);
$auth_user = 'CN=XXX,OU=XXX,DC=XXX,DC=com';
$bind = ldap_bind($connect, $auth_user , $auth_pass);
or
$bind = ldap_bind($connect, 'YourDomaine\\'.$auth_user , $auth_pass);
the ldap_bind() function asks for a three parameters:
if you bind using only the resource id :-
// $ldap=ladap_connect(*hostname*,*port*);
// ldap_connect() returns a resource id
ldap_bind() returns a boolean value(true or false)
ldap_bind($ladp); //annonymous bind
$lb=ldap_bind($ldap,"uid=xxx,ou=something,o=hostname.com","password"); //used to authenticate
this should work if not then you are using invalid credentials.