无法使用LDAP进行身份验证

无法使用LDAP进行身份验证,ldap,sonarqube,Ldap,Sonarqube,我在使用LDAP身份验证时遇到问题。查看日志,它似乎绑定正常,但当我尝试登录时,它看起来根本不像是命中ldap,我得到的身份验证失败 在日志中,我看到: 2017.03.28 17:17:46 INFO web[org.sonar.INFO] Security realm: LDAP 2017.03.28 17:17:46 INFO web[o.s.p.l.LdapSettingsManager] User mapping: LdapUserMapping{baseDn=ou=people,

我在使用LDAP身份验证时遇到问题。查看日志,它似乎绑定正常,但当我尝试登录时,它看起来根本不像是命中ldap,我得到的身份验证失败

在日志中,我看到:

2017.03.28 17:17:46 INFO  web[org.sonar.INFO] Security realm: LDAP
2017.03.28 17:17:46 INFO  web[o.s.p.l.LdapSettingsManager] User mapping: LdapUserMapping{baseDn=ou=people,o=intra,dc=sears,dc=com, request=(&(objectClass=*searsorgperson)(uid={0})), realNameAttribute=cn, emailAttribute=mail}
2017.03.28 17:17:46 INFO  web[o.s.p.l.LdapSettingsManager] Groups will not be synchronized, because property 'ldap.group.baseDn' is empty.
2017.03.28 17:17:46 DEBUG web[o.s.p.l.LdapContextFactory] Initializing LDAP context {java.naming.provider.url=ldap://trprdirqr3.intra.searshc.com:389/ou=people,o=intra,dc=sears,dc=com, java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, com.sun.jndi.ldap.connect.pool=true, java.naming.security.authentication=simple, java.naming.referral=follow}
2017.03.28 17:17:46 INFO  web[o.s.p.l.LdapContextFactory] Test LDAP connection on ldap://trprdirqr3.intra.searshc.com:389/ou=people,o=intra,dc=sears,dc=com: OK
2017.03.28 17:17:46 INFO  web[org.sonar.INFO] Security realm started
我的配置包含以下内容:

# General Configuration
sonar.security.realm=LDAP
sonar.authenticator.createUsers=true
sonar.authenticator.class: org.sonar.plugins.ldap.LdapAuthenticator
sonar.security.savePassword=true
sonar.security.updateUserAttributes=true
ldap.url=ldap://trprdirqr3.intra.searshc.com:389/ou=people,o=intra,dc=sears,dc=com


# User Configuration
ldap.user.baseDn=ou=people,o=intra,dc=sears,dc=com
ldap.user.request=(&(objectClass=*searsorgperson)(uid={login}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail

根据我的LDAP管理员的说法,它在第一次出现时会进行一次异常检查,但之后不会再进行其他检查。因此,出于某种原因,当我登录时,它似乎没有击中LDAP服务器。除了管理员之外,我没有任何本地ID设置。

您没有配置经过身份验证的用户来执行搜索

也就是说,第一个测试,匿名绑定测试连接性。但要搜索用户DN,您需要的不仅仅是匿名权限。然后,一旦找到DN,绑定为登录用户。但首先需要提供可以搜索的代理用户的LDAP DN及其密码

此外,ObjectClass搜索筛选器中还有一个星号(通配符):

ldap.user.request=(&(objectClass=*searsorgperson)(uid={login}))


还是那个格式化符号?我不确定ObjectClass通常可以通过这种方式进行搜索。)

您在身份验证尝试期间检查过SonarQube调试日志吗?如果需要用这些更新您的问题,+关于SonarQube和LDAP插件版本的信息我已经检查过了,我看到的唯一内容是:2017.03.29 14:38:08 DEBUG web[http]POST/sessions/login | time=180msIn我们的LDAP系统anonymous拥有搜索权限。根据文档,如果不指定#ldap.bindDn,它将使用匿名进行搜索,对吗?