【发布时间】:2019-11-25 19:47:35
【问题描述】:
我正在使用 ldap_add 将记录插入 Active Directory,但我在 PHP 文件中的 ldap_add 行中收到 Warning: ldap_add(): Add: Server is unwilling to perform。
奇怪的是,我可以在同一目录上使用“cn=some name”过滤器执行 ldap_search,但是当我使用 ldap_add 时它会失败。
我阅读了很多关于同一问题的 StackOverflow 问题,其中大多数都尝试使用 MD5 哈希密码和/或从未在 ldap.conf 文件中使用 TLS_REQCERT,我都尝试过,但都没有成功。
这是我在 ldap_connect 和 ldap_bind 之后的代码,在此之前一切正常-
(对于我正在使用的连接 - ldap_connect("ldaps://MyIP:636"))
if ($ldapbind) {
echo "LDAP bind successful...";
//This part works fine and I'm able to do ldap_search with cn filter on the same directory
$searchResult = ldap_search($ldapconn,'OU=Users,OU=Testing OU,DC=My,DC=Domain,DC=Net', "(cn=manish test)") or die ("Error in search query: ".ldap_error($ldapconn));
$data = ldap_get_entries($ldapconn, $result);
echo '<h1>Dump all data</h1><pre>';
print_r($data);
echo '</pre>';
//ldap_search ends
//ldap_add part begins
$data['cn'] = 'mk test02';
$data['sn'] = 'test02';
$data["objectclass"][0] = "top";
$data["objectclass"][1] = "person";
$data['givenName'] = 'mkss';
$data['displayName'] = 'mk test02';
$data['name'] = 'mk test02';
$data['sAMAccountName'] = 'mk_test02';
$data['userPrincipalName'] = 'mk_test02@SomeName.Net';
$data['mail'] = 'manish.k@domain.com';
$data['userPassword'] = "{MD5}".base64_encode(pack("H*",md5('Password1!')));
//Also tried using just- $data['userPassword'] = md5('Password1!');
$adInsert = ldap_add($ldapconn, "OU=Users,OU=Testing OU,DC=My,DC=Domain,DC=Net", $data);
echo 'error- '.ldap_error($ldapconn);
if (!$adInsert)
{
echo '<p>AD Insert failed</p>';
exit;
}
}
我收到 Warning: ldap_add(): Add: Server is unwilling to perform 和 AD Insert failed(来自我自己的错误消息)。
【问题讨论】:
标签: php active-directory ldap