如何使用LDAP 2.0插件为SonarQube 5.6.3配置Active Directory?

时间:2016-10-19 19:02:36

标签: active-directory ldap sonarqube

我正在努力为Active Directory配置LDAP 2.0 plugin for Sonarqube 5.6.3 LTS。我阅读了所有插件文档,并在我们的环境中得到了这个:

# LDAP configuration
# General Configuration
sonar.security.realm=LDAP
sonar.security.savePassword=false
sonar.forceAuthentication=true
ldap.url=ldap://ad1.prod:1389
ldap.bindDn=CN=myUser,OU=Service-Accounts,DC=ad1,DC=prod
ldap.bindPassword=myPassword

# User Configuration
ldap.user.baseDn=DC=ad1,DC=prod
ldap.user.request=(&(objectClass=inetOrgPerson)(uid={login}))
ldap.user.realNameAttribute=displayName
ldap.user.emailAttribute=mail

当我开始Sonarqube时,我得到了:

INFO  web[org.sonar.INFO] Security realm: LDAP
INFO  web[o.s.p.l.LdapSettingsManager] User mapping: LdapUserMapping{baseDn=DC=ad1,DC=prod, request=(&(objectClass=inetOrgPerson)(uid={0})), realNameAttribute=displayName, emailAttribute=mail}
INFO  web[o.s.p.l.LdapSettingsManager] Groups will not be synchronized, because property 'ldap.group.baseDn' is empty.
INFO  web[o.s.p.l.LdapContextFactory] Test LDAP connection: FAIL
ERROR web[o.a.c.c.C.[.[.[/]] Exception sending context initialized event to listener instance of class org.sonar.server.platform.PlatformServletContextListener
java.lang.IllegalStateException: Unable to open LDAP connection
    at org.sonar.plugins.ldap.LdapContextFactory.testConnection

我尝试过调整配置但没有运气。任何对此更熟悉的人都有什么突出的地方?

2 个答案:

答案 0 :(得分:6)

更有效地搜索AD将类似于:

ldap.user.request=(&(objectClass=user)(sAMAccountName={login})) 

答案 1 :(得分:3)

基本问题是错误的LDAP端口:

ldap.url=ldap://ad1.prod:1389

应该是

ldap.url=ldap://ad1.prod:389

我从不打算质疑1389端口,即使这不是默认的LDAP端口,因为我从另一个工作应用程序复制/粘贴。我想我在这个过程中会发现一些东西。

另外,这个:

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

必须是这样的:

ldap.user.request=(sAMAccountName={0})

实际启用搜索AD。这是特定于实现的事情。