Symfony 3.1 为什么我不能在Symfony3上使用LDAP凭据登录?

Symfony 3.1 为什么我不能在Symfony3上使用LDAP凭据登录?,symfony-3.1,fr3dldapbundle,Symfony 3.1,Fr3dldapbundle,根据我的博客,我已经成功安装了带有Symfony3的FR3LdapBundle和FOSUserBundle,并且我能够针对这个测试LDAP服务器进行身份验证;但现在我正试图对我们的内部Active Directory服务器进行身份验证。 以下是配置中的更改(我故意破坏了配置信息): 以上是我唯一的改变。在我的开发日志中,当我登录时,我会收到以下重要消息: [2017-05-09 15:56:54] ldap_driver.DEBUG: ldap_search(ou=utilisateurs,d

根据我的博客,我已经成功安装了带有Symfony3的FR3LdapBundle和FOSUserBundle,并且我能够针对这个测试LDAP服务器进行身份验证;但现在我正试图对我们的内部Active Directory服务器进行身份验证。 以下是配置中的更改(我故意破坏了配置信息):

以上是我唯一的改变。在我的开发日志中,当我登录时,我会收到以下重要消息:

[2017-05-09 15:56:54] ldap_driver.DEBUG:  ldap_search(ou=utilisateurs,dc=somedom,dc=local, (&(&(ObjectClass=person))  (sAMAccountName=somedom\5cadministrateur)), [array]) {"action":"ldap_search","base_dn":"ou=utilisateurs,dc=somedom,dc=local","filter":"(&(&(ObjectClass=person))(sAMAccountName=somedom\\5cadministrateur))","attributes":[]} []
[2017-05-09 15:56:54] security.INFO: User somedom\administrateur not found on LDAP {"action":"loadUserByUsername","username":"somedom\\administrateur","result":"not found"} []
所以我想知道我是否需要一个特殊的配置?

登录为:

管理员

相反,在日志中,它显示您正试图以“somedom\administrator”身份登录,但您不需要添加域

我想这就是问题所在。你能试试吗?如果不行,我会让你试试别的


编辑#2

我还看到您的config.yml代码中有此设置:

attributes:
         - { ldap_attr: administrateur,  user_method: setUsername }
但应该是:

attributes:
         - { ldap_attr: samaccountname,  user_method: setUsername }
然后,如果使用LDAP浏览器,请验证用户是否存在于指定的
baseDn
中,并查找属性
sAMAccountName
,这是应在登录名字段中输入的用户字符串。

登录身份:

管理员

相反,在日志中,它显示您正试图以“somedom\administrator”身份登录,但您不需要添加域

我想这就是问题所在。你能试试吗?如果不行,我会让你试试别的


编辑#2

我还看到您的config.yml代码中有此设置:

attributes:
         - { ldap_attr: administrateur,  user_method: setUsername }
但应该是:

attributes:
         - { ldap_attr: samaccountname,  user_method: setUsername }

然后,如果使用LDAP浏览器,请验证用户是否存在于您指定的
baseDn
中,并查找属性
sAMAccountName
,这是您应该在登录名字段中输入的用户字符串。

当我没有指定域时,它会给我相同的错误。标识符无效。我认为您需要使用LDAP浏览器来确定您的
baseDn
是否正确。这里有一个指向免费版本的链接:浏览到您指定的
baseDn
,并验证用户是否在那里。通常在Active Directory中使用
cn=Users
。好的,我现在就试试这个。非常感谢。安装ldap浏览器并检查容器后,我可以说它们是有效的。至少正确的容器是:dc=somedom,dc=local。稍后我已经尝试了。请查看我的编辑2更改。您只需要正确的
baseDn
和属性。您还可以在google上搜索有关LDAP筛选器的更多信息。您可能需要稍微修改您的配置。当我没有指定域时,它会给我相同的错误。标识符无效。我认为您需要使用LDAP浏览器来确定您的
baseDn
是否正确。这里有一个指向免费版本的链接:浏览到您指定的
baseDn
,并验证用户是否在那里。通常在Active Directory中使用
cn=Users
。好的,我现在就试试这个。非常感谢。安装ldap浏览器并检查容器后,我可以说它们是有效的。至少正确的容器是:dc=somedom,dc=local。稍后我已经尝试了。请查看我的编辑2更改。您只需要正确的
baseDn
和属性。您还可以在google上搜索有关LDAP筛选器的更多信息。你可能需要稍微修改一下你的配置。Jérôme,如果我的编辑2解决了这个问题,你能单击我答案旁边的复选标记表示它是正确的吗?它已经完成了否?是的,你是对的。非常感谢。Jérôme,如果我的编辑#2解决了问题,请单击我答案旁边的复选标记以表明它是正确的。它已经完成了。否?是的,你是对的。非常感谢。