gpt4 book ai didi

PHP ldap_modify 访问不足

转载 作者:可可西里 更新时间:2023-11-01 12:59:14 25 4
gpt4 key购买 nike

我在 OpenLDAP 2.4.32 和 PHP 5.4.6 中使用 ldap_modify 时遇到访问不足错误。

给出错误的 php 函数如下所示:

function set_user($dn, $password, $data)
{
/* This function sets the users infomation */

// Get Configuration Items
$ldapServer = $this->config->item('ldapServer');
$ldapDCRoot = $this->config->item('ldapDCRoot');


// Connect to LDAP
$ldapConnection = ldap_connect($ldapServer);

if($ldapConnection)
{
$r = ldap_bind($ldapConnection, $dn, $password);
if ($r)
{
// Bind completed successfully
$r = ldap_modify($ldapConnection, $dn, $data);
return True;
}
die("Unsuccessful Bind");
}
die("Can't connect to LDAP");
}

$dn 是试图更改其信息及其密码的用户的完整 DN。 $data 是他们正在更新的值,现在数据只包含要更改的电话号码 $data['mobile'] = "newPhoneNumber"。除了数据从未真正写入这一事实外,这一切似乎都有效。

openldap 文件包含在下面,因为您可以看到 ACL 表明我应该能够写入它。

include     /etc/openldap/schema/corba.schema
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/duaconf.schema
include /etc/openldap/schema/dyngroup.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/java.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/ppolicy.schema
include /etc/openldap/schema/collective.schema

allow bind_v2

pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args

TLSCertificateFile /etc/pki/tls/certs/slapd.pem
TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem

access to *
by self write
by users read
by anonymous auth


database bdb
suffix "dc=example,dc=com"
checkpoint 1024 15
rootdn "cn=manager,dc=example,dc=com"
rootpw REDACTED

directory /var/lib/ldap

index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub

问题是,为什么 PHP 不能更新值,而是出现访问不足的错误?

最佳答案

要调试您的问题,我建议使用命令行工具 ldapmodify 发出相同的请求。您可能需要将它安装到您的系统(Redhat openldap-clients、Debian slapd)。

LDAP Utilities

通过设置调试级别 -d,您可以获得比 php 库提供的更多信息,了解您的调用返回访问不足错误的原因。

虽然我从未使用 ldapmodify 执行此操作,但我已将它与 ldapsearch 一起使用并取得了巨大成功。因此可能需要一些搜索或 ldapmodify --help 才能弄清楚如何使用它。

我想命令看起来像这样:

ldapmodify -d 7 -h ldap.server.com -D bind_dn -w bind_password -f /tmp/entrymods

关于PHP ldap_modify 访问不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13078022/

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