gpt4 book ai didi

php - ldap_add() : Add: Server is unwilling to perform

转载 作者:可可西里 更新时间:2023-11-01 13:22:49 25 4
gpt4 key购买 nike

我刚刚开始使用 LDAP 和 Windows Server 2012。我已经设法让我的 PHP 代码使用管理员帐户绑定(bind)到 Active Directory,但我似乎可以使用 ldap_add 函数创建一个新用户。

我正在运行 Windows Server 2012 R2 和 IIS 8。我已经安装了带有企业根证书的证书颁发机构,并且我能够使用 ldp.exe 和 SSL 连接来连接到 AD。

我查看了 Google 以及“可能的重复线程”,但在过去的几个小时里,我一直在寻找,但没有一个能为我提供有效的答案。

当我使用以下 PHP 代码时:

<?php

$ldaprdn = 'netclass\Administrator';
$ldappass = 'password here';

$ldapconn = ldap_connect('ldap://server.netclass.co.uk')
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...";
}


// prepare data
$info["givenname"] = "Ronnie Brown";
$info["samaccountname"] = "br01";
$info["objectclass"] = "person";

// add data to directory
$r = ldap_add($ldapconn, "cn=Ronnie,dc=netclass,dc=co,dc=uk", $info); //Line 28

}
?>

我得到输出:

LDAP bind successful...
Warning: ldap_add(): Add: Server is unwilling to perform in C:\inetpub\wwwroot\adduser.php on line 28

我尝试通过更改启用 SSL:

$ldapconn = ldap_connect('ldap://server.netclass.co.uk')

$ldapconn = ldap_connect('ldaps://server.netclass.co.uk')

但是我得到以下错误:

Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP server in C:\inetpub\wwwroot\adduser.php on line 12
LDAP bind failed...
Warning: ldap_add(): Add: Can't contact LDAP server in C:\inetpub\wwwroot\adduser.php on line 28

最佳答案

我今天想出了答案。

我在/etc/ldap/ldap.conf 中添加了以下行

TLS_REQCERT never

在此之后我能够连接但仍然收到错误消息:

Server Unwilling to Perform

这是因为我试图将密码纯文本设置为:

$ldaprecord["unicodepwd"] = 'MyPassword1234'

您需要先对其进行编码,这样一旦我将代码更改为这样它就可以工作了:

## Create Unicode password
## Assumes that given password is in UTF-8 encoding!
## Adjust it to the actual encoding of the password
$pwdtxt = "MyPassword1234";
$newPassword = '"' . $pwdtxt . '"';

$newPass = iconv( 'UTF-8', 'UTF-16LE', $newPassword );

$ldaprecord["unicodepwd"] = $newPassw;

希望这对某人有帮助!

关于php - ldap_add() : Add: Server is unwilling to perform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22646448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com