在Sonarqube Docker容器中设置用于login的LDAPS时遇到麻烦

我使用docker hub的默认图像在Docker容器中运行Sonarqube。 Sonarqube工作正常。 我现在正在使用LDAPS进行系统login,似乎无法使其工作。 我创build了一个centos:最新的容器,并在那里运行sonarqube。 我这样做,所以我可以有ldapsearch,vim,telnet,update-ca等。我用openssl来添加服务器证书。 我使用ldapsearch进行testing,以下是成功的:

[root@bf9accb5647d linux-x86-64]# ldapsearch -x -LLL -H ldaps://dir.example.com -b "dc=example,dc=com" -D "uid=svcSonar,ou=SvcAccts,ou=People,dc=example,dc=com" -W '(uid=usernamehere)' cn Enter LDAP Password: ****** dn: uid=usernamehere,ou=Users,ou=People,dc=example,dc=com cn: User Name 

这里是我在sonar.properties中的相关ldapconfiguration:

 sonar.security.realm=LDAP ldap.url=ldaps://dir.example.com ldap.bindDN=uid=svcSonar,ou=SvcAccts,ou=People,dc=example,dc=com ldap.bindPassword=mypassword ldap.user.baseDn=ou=Users,ou=People,dc=example,dc=com ldap.user.request=(uid={login}) 

以下是与TRACE和DEBUG相关的sonar.log条目:

 2016.04.15 16:32:35 INFO web[osspServerPluginRepository] Deploy plugin LDAP / 1.5.1 / 8960e08512a3d3ec4d9cf16c4c2c95017b5b7ec5 2016.04.15 20:19:07 INFO web[org.sonar.INFO] Security realm: LDAP 2016.04.15 20:19:07 INFO web[osplLdapSettingsManager] User mapping: LdapUserMapping{baseDn=ou=Users,ou=People,dc=example,dc=com, request=(uid={0}), realNameAttribute=cn, emailAttribute=mail} 2016.04.15 20:19:07 DEBUG web[osplLdapContextFactory] Initializing LDAP context {java.naming.provider.url=ldaps://dir.example.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} 2016.04.15 20:19:07 INFO web[osplLdapContextFactory] Test LDAP connection on ldaps://dir.example.com: OK 2016.04.15 20:19:07 INFO web[org.sonar.INFO] Security realm started . . . 2016.04.15 20:26:55 DEBUG web[osplLdapUsersProvider] Requesting details for user usernamehere 2016.04.15 20:26:55 DEBUG web[osplLdapSearch] Search: LdapSearch{baseDn=ou=Users,ou=People,dc=example,dc=com, scope=s ubtree, request=(uid={0}), parameters=[usernamehere], attributes=[mail, cn]} 2016.04.15 20:26:55 DEBUG web[osplLdapContextFactory] Initializing LDAP context {java.naming.provider.url=ldaps://di r.example.com, java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, com.sun.jndi.ldap.connect.pool=true, java.na ming.security.authentication=simple, java.naming.referral=follow} 2016.04.15 20:26:55 DEBUG web[osplLdapUsersProvider] User usernamehere not found in <default> 

我做了以下证书:

 echo "" | openssl s_client -connect server:port -prexit 2>/dev/null | sed -n -e '/BEGIN\ CERTIFICATE/,/END\ CERTIFICATE/ p' > ldap.pem update-ca-trust force-enable cp ldap.pem /etc/pki/ca-trust/source/anchors/ update-ca-trust extract 

我也使用keytool将ldap.pem添加到正在被Sonarqube使用的java cacerts。

有任何想法吗?

我发现了这个问题。 我需要将ldap.bindDN更改为ldap.bindDn。 🙂