2

PHPを使用して、LDAPを使用してActiveDirectoryの認証を検証しようとしています。

有効なユーザー名とパスワード、ドメイン、およびLDAPサーバーを知っています。

$ldapconn = ldap_connect($ldapserver)動作し、「ldaplink」リソースを返します。

しかし、私が呼ぶとき、ldap_bind($ldapconn, $ldaprdn, $password)それは失敗します。

の設定をたくさん試しましたが、うまくいく設定$ldaprdnが見つかりません。いくつかの例:

$ldaprdn = $username;

$ldaprdn = $username.'@'.$domain;

$ldaprdn = $domain.'\\'.$username;

$ldaprdn = "uid=$username,cn=users,dc=$ldapserver,dc=$domain,dc=com"

$ldaprdn = "uid=$username,dc=$domain,dc=com"

$ldaprdn = "uid=$username,dc=com"

$ldaprdn = "uid=$username,dc=$domain"

それは何も機能せず、ldap_error($ldapconn)常に「無効なクレデンシャル」を返します。

ログインとパスワードは明らかに正しいです、私はWindowsでログインすることができます。私が何を使うことができるかについて何か考えはありますか?

4

1 に答える 1

2

この種のものをデバッグすることは本当にトリッキーです。アクセスできる場合はLDAPサーバーのログを使用するか、http://jxplorer.org/などを試して、接続しようとしているユーザーの実際のdn/contextに関する詳細情報を取得してください。おそらく、その一部が欠落しているか、完全に正しくありません。

また、ユーザー名/パスワードにコマンドラインでエスケープする必要のある文字が含まれている場合は、PHPスクリプトでそれらをエスケープしていないことを確認してください。

于 2013-02-25T15:23:35.517 に答える