我正在与处理虚拟服务器托管和 LDAP 服务器配置的服务提供商合作。
我的工作是创建一个 PHP 应用程序,它使用 LDAP 在登录时创建一个用户(为了简单起见)。
经过与服务商的多次分享,我终于实现了通过以下方式联系 LDAP 服务器:
ldapsearch -x -LLL -h vmdc2.local -D email@local -w myPassword -b"CN=xxx,OU=APPLICATIF,OU=GROUPES,OU=UTILISATEUR,DC=enterprise,DC=local"
它来自ldap-utils Linux 数据包。此查询返回良好的结果。
所以我创建了一个简单的脚本,尝试使用以前的 DN 在 CLI 中列出用户,以在 PHP 中进行工作证明。
<?php
// create connection to LDAP server
$ldapconn = ldap_connect("ldap://vmdc2.local")
or die("Impossible to connect to the LDAP server.");
$ldapbind = ldap_bind($ldapconn, 'email@local', 'myPassword');
// check binding
if ($ldapbind) {
echo "Successfully connected to LDAP !" . PHP_EOL;
$dn = 'CN=xxx,OU=APPLICATIF,OU=GROUPES,OU=UTILISATEUR,DC=enterprise,DC=local';
$sr = ldap_list($ldapconn, $dn, 'cn=*');
if (false === $sr) {
die('Impossible to use the dn: ' . $dn . PHP_EOL);
}
$info = ldap_get_entries($ldapconn, $sr);
if ($info['count'] === 0) die('No entries :(');
for ($i=0; $i < $info["count"]; $i++) {
echo $info[$i]["cn"][0] . PHP_EOL;
}
} else {
$var = '';
ldap_get_option($ldapconn, LDAP_OPT_ERROR_STRING, $var);
echo "Connection to LDAP failed..." . PHP_EOL . $var . PHP_EOL;
}
脚本输出No entries :(
我的问题
如何在同一个 DN 上从 PHP 获得不同的结果?
可以在谁呼叫他的功能中配置 LDAP 服务器如何应答?
这是我第一次反对 LDAP,所以我迷路了:/ 非常欢迎您的帮助!