Symfony3 ldap组件

时间:2016-06-09 16:00:22

标签: php ldap symfony

我正在尝试通过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]

这两个文档是否显示如何连接在一起如何链接它们??

1 个答案:

答案 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上设置它。