サーバーに対して認証済みバインドを実行する際に問題が発生しています。問題はコードにあるようには見えませんが、サーバーの問題である可能性があります。
ちょうどあなたが知っているので;
- Apache/PHP で LDAP が有効になっている
- user@domain.com として接続しています
- ドメイン コントローラーで LDAP が実行されており、ファイアウォールにエントリがある (Windows Server 2008 R2)
- 匿名バインドを実行できます
このスクリプトを使用して匿名でバインドできます。
$ldapconn = ldap_connect("machinename.domain.com")
or die("Could not connect to LDAP server.");
if ($ldapconn) {
// binding anonymously
$ldapbind = ldap_bind($ldapconn);
if ($ldapbind) {
echo "LDAP bind anonymous successful...";
} else {
echo "LDAP bind anonymous failed...";
}
}
ただし、このスクリプトを使用して認証済みバインドを実行しようとすると失敗します。
// Authenticated Bind
$ldaprdn = 'username@domain.com'; // ldap rdn or dn
$ldappass = 'password'; // associated password
// connect to ldap server
$ldapconn = ldap_connect("machinename.domain.com")
or die("Could not connect to LDAP server.");
if ($ldapconn) {
// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
// verify binding
if ($ldapbind) {
echo "LDAP bind successful...";
} else {
echo "LDAP bind failed...";
}
}
どこが間違っていますか?