2

我们刚刚在测试环境中升级到 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}))
4

3 回答 3

3

I have found this blog page, that is describing the changes in the LDAP addin

https://blogs.msdn.microsoft.com/visualstudioalm/2015/11/13/support-for-active-directory-and-single-sign-on-sso-in-the-sonarqube-ldap-plugin/

It confirms the problems i was having and the issues i still have today with duplicate user accounts.

Hope this helps someone else.

Nico

于 2016-06-10T13:27:55.957 回答
0

我有一个类似的问题,并通过在 SonarQube 中创建一个与 WindowsAuthenticationHelper 发现的组匹配的组来解决。

In your case this means that you need a SonarQube group that is called Sonar Admins@Domain or Sonar Users@Domain.

When you log in again, the user will be added to this group automatically.

于 2016-06-10T09:23:03.357 回答
0

A new Active Directory plugin is available which you can use instead of the LDAP one. Note as of this post it is still a release candidate (RC). This version is not displayed in the Update Center.

https://github.com/SonarQubeCommunity/sonar-activedirectory/

The plugin is available for download on the releases tab.

Wes

于 2016-06-10T17:34:18.953 回答