【发布时间】:2022-01-25 14:47:06
【问题描述】:
使用 PHP 函数 ldap_connect 它正在工作:
我的控制器:
/**
* @Route("/ldap", name="ldap")
*/
public function ldap(Request $request) {
$ldaprdn = 'cn=read-only-admin,dc=example,dc=com';
$ldappass = 'password';
$ldapconn = ldap_connect("ldap://ldap.forumsys.com")
or die("Impossible de se connecter au serveur LDAP.");
if ($ldapconn) {
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
// Connexion au serveur LDAP
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
var_dump($ldapbind);
// Vérification de l'authentification
if ($ldapbind) {
echo "Connexion LDAP OK ...";
} else {
echo "Connexion LDAP KO ...";
}
}
}
结果:bool(true)
但是如果我使用 Symfony Ldap 就不行了,你知道为什么吗?
我的控制器:
use Symfony\Component\Ldap\Ldap;
[...]
/**
* @Route("/ldap", name="ldap")
*/
public function ldap(Request $request) {
$host = 'ldap.forumsys.com';
$port = 389;
$version = 3;
$dn = 'cn=read-only-admin,dc=example,dc=com';
$pwd = 'password';
$ldap = Ldap::create('ext_ldap', [
'host' => $host,
'port' => $port,
'version' => $version,
]);
$ldap->bind($dn, $pwd);
var_dump($ldap);
}
结果:
["connection":"Symfony\Component\Ldap\Adapter\ExtLdap\Connection":private]=> resource(31) of type (ldap link) ["config":protected]=> array(8) { ["host"]=> string(17) "ldap.forumsys.com" ["version"]=> int(3) ["encryption"]=> string(4) "none" ["port"]=> int(389) ["connection_string"]=> string(28) "ldap://ldap.forumsys.com:389" ["debug"]=> bool(false) ["referrals"]=> bool(false) ["options"]=> array(3) { ["network_timeout"]=> string(2) "60" ["protocol_version"]=> int(3) ["referrals"]=> bool(false) } } } ["entryManager":"Symfony\Component\Ldap\Adapter\ExtLdap\Adapter":private]=> NULL } }
我使用online Ldap 测试服务器
【问题讨论】: