消息 「要求強(ER)認證」,如果你嘗試使用更新LDAP實體也出現:
- ldap_modify
- ldap_mod_replace
- ldap_modify_batch
不調用綁定功能與可選參數:
string $bind_rdn = NULL [, string $bind_password = NULL
此代碼將無法正常工作:
$ldap = ldap_connect($ldap_url);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
$bind = ldap_bind($ldap);
$userdata=array();
$userdata['userattribute'][0]='test';
ldap_modify ($ldap, "cn=myuser,dc=example,dc=com", $userdata);
此代碼的工作,請注意不同的呼叫綁定功能:
$ldap = ldap_connect($ldap_url);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
$bind = ldap_bind($ldap,'cn=admin,dc=example,dc=com','secretpassword');
$userdata=array();
$userdata['userattribute'][0]='test';
ldap_modify ($ldap, "cn=myuser,dc=example,dc=com", $userdata);
你連接使用LDAPS:// SSL端口上?如果你省略了ldaps:// - 那麼PHP會試圖做一個未加密的綁定 – 2011-05-16 11:27:43
打賭你Jon Starpeteig是正確的,我有完全相同的問題,直到我明白使用ldaps。檢查LDAP部分下的phpinfo()以確保它具有SASL支持 – David 2011-05-16 21:57:46
我知道ldaps://並且配置極其困難。從AD服務器導出證書,將它們複製到Linux機器上,將它們轉換爲pem,說服openssl使用它們...因此,我沒有使用ldaps://,據我所知AD服務器不會'要求安全的身份驗證,至少我們的客戶告訴我們這是一個基本的安裝...不幸的是,我不能檢查它自己,並在每個AD服務器上我嘗試了它的工作完美的腳本,除了上面提到的一個。 – 2011-05-17 13:39:23