我已经安装了FR3LdapBundle&根据我的博客成功使用Symfony3的FOSUserBundle,我能够对这个测试LDAP服务器进行身份验证;但现在我正在尝试对我们的内部Active Directory服务器进行身份验证。 这是配置中的更改(我故意限制了配置信息):
fr3d_ldap:
driver:
host: somehost
username: administrateur
password: somepass
port: 389
accountDomainName: somedom.local
accountDomainNameShort: somedom
user:
usernameAttribute: administrateur
baseDn: ou=utilisateurs,dc=somedom,dc=local
attributes:
- { ldap_attr: administrateur, user_method: setUsername }
- { ldap_attr: mail, user_method: setEmail }
filter: (&(ObjectClass=person))
以上是我所做的唯一改变。在我的DEV日志中,当我登录时,我收到以下重要消息:
[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"} []
所以我想知道我是否需要一个特殊的配置?
答案 0 :(得分:0)
登录为:
administrateur
相反,在日志中显示您尝试登录为" somedom \ administrateur",但您不需要添加域名。
我认为这就是问题所在。你可以尝试一下,如果它不起作用,我会让你尝试其他的东西。
编辑#2
我也看到你在config.yml代码中有这个设置:
attributes:
- { ldap_attr: administrateur, user_method: setUsername }
但应该是:
attributes:
- { ldap_attr: samaccountname, user_method: setUsername }
然后,如果您使用LDAP浏览器,请验证用户是否存在于您指定的baseDn
中,并查找属性sAMAccountName
,这是您应在登录名字段中输入的用户字符串