我正在尝试通过LDAP验证用户并获取经过身份验证的用户对象。为此,我使用Symfony3安装了其ldap组件。
要安装ldap组件,我使用了这样的编写器:
composer require symfony/ldap
只是为了测试我正在使用这个免费测试AD。 所以现在我处于组件工作的位置,我可以扩展它的类。
查看组件使用文档首先要连接到AD:
$ldap = new LdapClient('ldap.forumsys.com', 389, 3, false, true);
当我var_dump($ldap)
这就是我得到的:
object(Symfony\Component\Ldap\LdapClient)#359 (1) {
object(Symfony\Component\Ldap\Ldap)#360 (1) {
object(Symfony\Component\Ldap\Adapter\ExtLdap\Adapter)#361 (3) {
array(6) {
["host"] "ldap.forumsys.com"
["port"] 389
["version"] 3
["useSsl"] false
["useStartTls"] true
["optReferrals"] false
}
}
}
}
第二步是使用DN和用户密码验证上述连接:
$ldap->bind('ou=mathematicians,dc=example,dc=com', 'password');
根据ldap.forumsys.com的DN是:
-> cn=read-only-admin,dc=example,dc=com
||
-> ou=mathematicians,dc=example,dc=com
我不确定但是侦测是第二个,无论我尝试了两个,每个用户的密码也是密码。
这是symfony抛出此错误的时候:
The options "optReferrals", "useSsl", "useStartTls" do not exist. Defined
options are: "connection_string", "debug", "encryption", "host", "options",
"port", "referrals", "version".
不理解它并且不确定它为什么不起作用。
我也找到了这个文档:
[Symf Ldap Doc][3]
这两个文档是否显示如何连接在一起如何链接它们??
答案 0 :(得分:0)
bind应该是这样的:
$ldap->bind('cn=read-only-admin,dc=example,dc=com', 'password');
下面的第二个编辑。
我错了,我想你需要像这样打电话:
$ldap = new LdapClient('ldap.forumsys.com', 389, 3, false, false, false);
如果您需要使用FR3DLdapBundle的参考,请在我做的设置look at my blog上设置它。