我正在测试对sonarqube5.6的升级,并安装了ldap 2.0插件&将相关配置转发到测试5.6安装程序。
相关的配置是
sonar.security.realm=LDAP
ldap.url=ldaps://xxxx:636
ldap.bindDn=uid=xxxx,ou=xxxx,dc=xxxx,dc=xxxx
ldap.bindPassword=xxxx
ldap.user.baseDn=dc=xxxx,dc=com
ldap.user.request=(&(objectClass=person)(mail={login}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail我在conf/sonar.properties中有以下设置
sonar.log.level=DEBUG在启动时我看到了
2016.07.26 23:57:29 INFO web[o.s.p.l.LdapContextFactory] Test LDAP connection on ldaps://xxxx:636: OK
2016.07.26 23:57:29 INFO web[org.sonar.INFO] Security realm started如果我尝试登录,我会在登录屏幕上得到“身份验证失败”。日志文件只说明了其他问题。
2016.07.26 23:57:47 DEBUG web[http] GET / | time=67ms
2016.07.26 23:57:47 DEBUG web[http] GET / | time=187ms
2016.07.26 23:57:47 DEBUG web[http] GET /sessions/new | time=89ms
2016.07.26 23:57:53 DEBUG web[http] POST /sessions/login | time=71ms同样的配置也适用于声呐4.5.7和ldap 1.4。
欢迎关于如何进一步调查的想法。
发布于 2016-07-27 06:46:10
如果在升级过程中忘记了声纳-7770配置,您很可能会遇到已知的问题--身份验证失败。请注意,针对此问题发出了一个升级说明:
特别是,不要忘记将"conf/sonar.properties“中的相关SonarQube插件及其相关配置(如果存在"sonar.security.realm”和"sonar.security.localUsers“)复制到新的SonarQube实例中,否则迁移后将被锁定在外。
因此,在升级期间,这种LDAP配置非常重要,甚至也是如此。如果您没有做到这一点,那么这里最简单的方法就是正确设置与LDAP相关的配置来重放升级。
上下文
请记住,在升级期间,SonarQube更新数据集,并将新信息存储在数据库中(基于新特性)。在您的示例中,问题是升级是使用部分配置(没有设置sonar.security.realm和sonar.security.localUsers)完成的,SonarQube无法确定用户是否是本地用户,因此默认情况下将用户视为本地用户。本地用户不是针对外部身份验证提供程序进行身份验证,而是在本地进行身份验证,这确实是我们在日志中看到的(而且它显然失败了,因为密码驻留在LDAP服务器中,而不是SonarQube数据库中)。
发布于 2016-12-22 14:34:48
我通过手动更新SonarQube的用户数据库表来修正它,并断言所有其他用户都是由LDAP管理的,只有管理员是本地用户:
UPDATE sonarqube_production.users SET user_local = 0, external_identity_provider = 'ldap' WHERE id != 'admin';发布于 2017-10-04 09:25:43
上面对Schakko查询的小修正,应该使用login而不是id。
UPDATE users SET user_local = 0, external_identity_provider = 'ldap' WHERE login != 'admin';https://stackoverflow.com/questions/38601224
复制相似问题