我们刚刚在测试环境中升级到 SonarQube 5.6。当前的 Sonar 5.2 在使用 LDAP 身份验证的生产环境中运行良好。
我可以使用我的 AD 凭据登录,但是当我通过本地管理员帐户检查我的权限时,我没有组成员身份。
此外,除了我在 Sonar 中的原始 LDAP 帐户之外,我现在还有一个语法为 username@domain.com 而不仅仅是用户名的第二个帐户。我的用户名帐户仍然具有预期的原始组成员身份,但新创建的 username@domain.com 没有。
当我尝试在声纳中手动分配组时,它们会在下次登录时被清除,我相信这是有意的。
我已经启用调试日志,这表明它实际上仍然从活动目录中找到 memberOf 组,但它没有将它们链接到我的帐户。Sonar 中仍然存在这些组。
2016.06.08 11:20:55 DEBUG web[o.s.p.l.w.WindowsUsersProvider] Requesting details for user: nico
2016.06.08 11:20:55 DEBUG web[o.s.p.l.w.WindowsAuthenticationHelper] Getting details for user: nico
2016.06.08 11:20:55 DEBUG web[o.s.p.l.w.AdConnectionHelper] Getting active directory bind string for domain: Domain
2016.06.08 11:20:55 DEBUG web[o.s.p.l.w.AdConnectionHelper] Active directory bind string for the domain Domain: LDAP://Domain/DC=domain,DC=com
2016.06.08 11:20:56 DEBUG web[o.s.p.l.w.WindowsAuthenticationHelper] Details for user nico: UserDetails{name=Nico (nico), email=Nico@domain.com, userId=nico@Domain}
2016.06.08 11:20:56 DEBUG web[o.s.p.l.w.WindowsAuthenticationHelper] Authenticating user: nico
2016.06.08 11:21:03 DEBUG web[o.s.p.l.w.WindowsAuthenticationHelper] Getting groups for user: Domain\nico
2016.06.08 11:21:03 DEBUG web[o.s.p.l.w.WindowsAuthenticationHelper] Groups for the user Domain\nico : [Sonar Admins@Domain, Sonar Users@Domain]
2016.06.08 11:21:03 DEBUG web[o.s.s.u.NewUserNotifier] User created: nico@Domain. Notifying NewUserHandler handlers...
我注意到日志是使用的用户名属性看起来不一致。有一次它说“正在验证用户:nico”,而在另一个“为 Domain\Nico 获取组”和最后“创建的用户 Nico@domain.com”中使用了 3 个不同的用户名。
这是我可以/应该控制的吗?或者这会是 SonarQube 的问题。
期待您的反馈意见。
尼科
这是我的 LDAP 配置
# LDAP configuration
# General Configuration
sonar.security.realm: LDAP
sonar.security.savePassword: true
sonar.authenticator.createUsers: true
sonar.security.localUsers: admin,sonar-build
ldap.url: ldap://ipadress:389
ldap.bindDn: CN=SonarUser,OU=Service Accounts,DC=domain,DC=com
ldap.bindPassword: {aes}xxx
# User Configuration
ldap.user.baseDn: DC=domain,DC=com
ldap.user.request: (&(objectClass=user)(sAMAccountName={login}))
ldap.user.realNameAttribute: cn
ldap.user.emailAttribute: mail
# Group Configuration
ldap.group.baseDn: DC=domain,DC=com
ldap.group.request: (&(objectClass=group)(memberUid={uid}))