web-dev-qa-db-ja.com

PHP警告:ldap_bind():サーバーにバインドできません:LDAPサーバーに接続できません

私は私のphpスクリプトで次の問題を抱えています:

PHP警告:ldap_bind():サーバーにバインドできません:...でLDAPサーバーに接続できません。

ldap_connect()は「成功」と言いますが、ldap_bind()は失敗します。その問題を修正するにはどうすればよいですか?

9
Pascal Bayer

接続するとセッションが開きます。バインドは、実際にユーザーを認証するものです。したがって、接続しましたが、有効な資格情報でログインしませんでした。

6
geoffc

HTTPDが使用できるポートをSELinuxが制限しているため、RHEL7(CentOS7)でこのエラーが発生しました。

LDAPポート389および636は、デフォルトの許可リストにありません。次の方法でブロックを解除できます。

setsebool -P httpd_can_network_connect 1

LDAPサーバーへのソケットを試すことで、制限をテストできます。

fsockopen('LDAP-Server-IP', 389);

資格情報の問題ではなく、ブロックされていることを示す「許可が拒否されました」が表示されます。

また、SELinux監査ログファイルで他のものがブロックされていないか確認してください。

7
WhoIsRich

問題は環境(Linux、Windows ...)によって異なる場合があります。次のいずれかのオプションでバインドしてみてください。

$connect = ldap_connect("ldap://".$ldap_server);
$auth_user = 'CN=XXX,OU=XXX,DC=XXX,DC=com';
$bind = ldap_bind($connect, $auth_user , $auth_pass);

または

$bind = ldap_bind($connect, 'YourDomaine\\'.$auth_user , $auth_pass);
1
Kevin FERRANDON