docker - 在 Sonarqube Docker 容器中设置 LDAPS 登录时遇到问题

标签 docker ldap sonarqube

我正在使用 docker hub 中的默认镜像在 docker 容器中运行 Sonarqube。 Sonar 库工作正常。我现在正在使用 LDAPS 进行系统登录,但似乎无法让它工作。我创建了一个 centos:latest 容器并在那里运行 sonarqube。我这样做是为了可以使用 ldapsearch、vim、telnet、update-ca 等。我使用 openssl 添加服务器证书。我用ldapsearch测试了一下,成功如下:

[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 中的相关 ldap 配置:

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[o.s.s.p.ServerPluginRepository] 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[o.s.p.l.LdapSettingsManager] 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[o.s.p.l.LdapContextFactory] 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[o.s.p.l.LdapContextFactory] 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[o.s.p.l.LdapUsersProvider] Requesting details for user usernamehere
2016.04.15 20:26:55 DEBUG web[o.s.p.l.LdapSearch] 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[o.s.p.l.LdapContextFactory] 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[o.s.p.l.LdapUsersProvider] 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 使用的 jre 的 java cacerts 中。

有什么想法吗?

最佳答案

我发现了问题。我需要将 ldap.bindDN 更改为 ldap.bindDn。 :)

关于docker - 在 Sonarqube Docker 容器中设置 LDAPS 登录时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36660116/

相关文章:

docker - Jenkins Artifactory插件

sql-server - 升级到 WSL2 后映射卷时 MSSQL 容器无法启动

module - Sitecore:配置 LightLDAP.SitecoreADRoleProvider 时使用集成安全性

java - Sonar如何计算圈复杂度?

java - SONAR 提示改变条件,因此它并不总是评估为 "false"

docker - 无法连接到在 VSTS 中运行的 Docker 容器

docker - 为什么会产生悬空的图像?

ldap - 是否可以通过 telnet 发送 LDAP "requests"?

memory - 嵌入式/内存LDAP服务器解决方案

c# - 包含 c# 和 javascript 的项目上的 Sonar runner