首页 > 解决方案 > dn 上的 ldapsearch 工作,但不能使用 php

问题描述

我正在与处理虚拟服务器托管和 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 :(

我的问题

这是我第一次反对 LDAP,所以我迷路了:/ 非常欢迎您的帮助!

标签: phpldapdn

解决方案


推荐阅读