【问题标题】:SonarQube 5.6 LDAP Group authenticationSonarQube 5.6 LDAP 组认证
【发布时间】:2016-06-08 12:13:20
【问题描述】:

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

【问题讨论】:

    标签: active-directory ldap sonarqube sonarqube5.6


    【解决方案1】:

    我找到了这个博客页面,它描述了 LDAP 插件的变化

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

    它确认了我遇到的问题以及我今天仍然遇到的重复用户帐户的问题。

    希望这对其他人有所帮助。

    尼哥

    【讨论】:

      【解决方案2】:

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

      在您的情况下,这意味着您需要一个名为 Sonar Admins@DomainSonar Users@Domain 的 SonarQube 组。

      当您再次登录时,该用户将自动添加到该组中。

      【讨论】:

      • 嗯,我以为我试过了,但失败了,我现在从 LOG 文件中复制了全名,这似乎可行,所以我只需更改组的名称就可以了希望。
      • 重命名组还不够好,这就是我对此的初始测试失败的原因。使用@Domain 名称创建一个新组确实有效。这样做的缺点是我需要将所有组分配重新应用到新组。
      【解决方案3】:

      一个新的 Active Directory 插件可用,您可以使用它来代替 LDAP 插件。请注意,在这篇文章中,它仍然是一个候选版本 (RC)。此版本未显示在更新中心。

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

      插件可在发布选项卡上下载。

      韦斯

      【讨论】:

      • “此插件仅适用于 Windows 操作系统”(来自 github 自述文件)
      猜你喜欢
      • 2017-10-11
      • 2016-11-30
      • 1970-01-01
      • 2017-05-31
      • 2012-10-09
      • 2013-01-26
      • 2016-12-03
      • 2016-08-11
      • 1970-01-01
      相关资源
      最近更新 更多