SonarQube 5.6 LDAP 组身份验证
SonarQube 5.6 LDAP Group authentication
我们刚刚在测试环境中对 SonarQube 5.6 进行了升级。当前的 Sonar 5.2 在使用 LDAP 身份验证的生产环境中运行良好。
我可以使用我的 AD 凭据登录,但是当我通过本地管理员帐户检查我的权限时,我没有组成员资格。
此外,除了我在 Sonar 中的原始 LDAP 帐户外,我现在还有一个语法为 username@domain.com 的第二个帐户,而不仅仅是用户名。
我的用户名帐户仍然具有预期的原始组成员资格,但新创建的用户名@domain.com 没有。
当我尝试在声纳中手动分配组时,它们会在下次登录时被清除,我相信这是有意的。
我已经启用调试日志,这表明它实际上仍然可以从活动目录中找到 memberOf 组,但它不会 link 它们到我的帐户。
这些组仍然存在于 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...
我注意到日志中使用的用户名 属性 看起来不一致。
有一处是 "Authenticating user: nico",另一处是 "getting groups for Domain\Nico",最后是 "Created user Nico@domain.com"
使用了 3 个不同的用户名。
这是我 can/should 控制的东西吗?或者这是 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}))
我有一个类似的问题,通过在 SonarQube 中创建一个与 WindowsAuthenticationHelper 发现的组相匹配的组来解决。
在您的情况下,这意味着您需要一个名为 Sonar Admins@Domain
或 Sonar Users@Domain
.
的 SonarQube 组
当您再次登录时,用户将自动添加到该组。
我找到了这个博客页面,它描述了 LDAP 插件的变化
它证实了我遇到的问题以及我今天仍然遇到的重复用户帐户问题。
希望这对其他人有帮助。
妮可
一个新的 Active Directory 插件可用,您可以使用它来代替 LDAP 插件。请注意,截至目前 post,它仍然是候选版本 (RC)。此版本未显示在更新中心。
https://github.com/SonarQubeCommunity/sonar-activedirectory/
该插件可在发布选项卡上下载。
韦斯
我们刚刚在测试环境中对 SonarQube 5.6 进行了升级。当前的 Sonar 5.2 在使用 LDAP 身份验证的生产环境中运行良好。
我可以使用我的 AD 凭据登录,但是当我通过本地管理员帐户检查我的权限时,我没有组成员资格。
此外,除了我在 Sonar 中的原始 LDAP 帐户外,我现在还有一个语法为 username@domain.com 的第二个帐户,而不仅仅是用户名。 我的用户名帐户仍然具有预期的原始组成员资格,但新创建的用户名@domain.com 没有。
当我尝试在声纳中手动分配组时,它们会在下次登录时被清除,我相信这是有意的。
我已经启用调试日志,这表明它实际上仍然可以从活动目录中找到 memberOf 组,但它不会 link 它们到我的帐户。 这些组仍然存在于 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...
我注意到日志中使用的用户名 属性 看起来不一致。 有一处是 "Authenticating user: nico",另一处是 "getting groups for Domain\Nico",最后是 "Created user Nico@domain.com" 使用了 3 个不同的用户名。
这是我 can/should 控制的东西吗?或者这是 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}))
我有一个类似的问题,通过在 SonarQube 中创建一个与 WindowsAuthenticationHelper 发现的组相匹配的组来解决。
在您的情况下,这意味着您需要一个名为 Sonar Admins@Domain
或 Sonar Users@Domain
.
当您再次登录时,用户将自动添加到该组。
我找到了这个博客页面,它描述了 LDAP 插件的变化
它证实了我遇到的问题以及我今天仍然遇到的重复用户帐户问题。
希望这对其他人有帮助。
妮可
一个新的 Active Directory 插件可用,您可以使用它来代替 LDAP 插件。请注意,截至目前 post,它仍然是候选版本 (RC)。此版本未显示在更新中心。
https://github.com/SonarQubeCommunity/sonar-activedirectory/
该插件可在发布选项卡上下载。
韦斯