SonarQube 5.6 LDAP (FreeIPA) 认证用户没有组
SonarQube 5.6 LDAP (FreeIPA) authenticated users have no groups
我在 Whosebug 上看到了一些帖子,例如 one and ,但问题仍然存在。我将 sonarqube 从 5.3 更新到 5.6。这是我的配置示例:
sonar.security.realm=LDAP
sonar.security.savePassword=false
sonar.security.localUsers=admin
ldap.authentication=simple
ldap.url=ldap://ipa.company.com
ldap.bindDn=uid=ldap_search,cn=users,cn=accounts,dc=company,dc=com
ldap.bindPassword=*************
ldap.user.baseDn=cn=users,cn=accounts,dc=company,dc=com
ldap.user.request=(&(objectClass=inetOrgPerson)(uid={login}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail
ldap.group.baseDn=cn=groups,cn=accounts,dc=company,dc=com
ldap.group.request=(&(objectClass=posixGroup)(memberUid={uid}))
ldap.group.idAttribute=cn
问题出在身份验证上。根据 this 文档( 本地用户 块),如果我创建本地用户,则我无法使用相同的 LDAP (FreeIPA) 帐户进行身份验证。如果我第一次使用 FreeIPA 帐户进行身份验证,我会看到新创建的声纳用户,但它没有组(例如 sonar-users,但他实际上是 sonar 的成员-用户 在 FreeIPA 组中)
这是 sonarqube 中的测试帐户示例 - http://joxi.ru/zAN46EXcb9gem9, and test account in FreeIPA - http://joxi.ru/VrwnzgDcBeGxAX。
甚至,当我使用管理员登录并向测试用户添加组时,它们会在下次登录后消失。
这是来自 mysql sonar.users 数据库的示例:
| id | login | updated_at | external_identity | external_identity_provider | user_local |
| 32 | test | 1494580874688 | test | sonarqube | 0 |
请帮我找到解决办法。
几周后我终于找到了正确的解决方案!我意识到问题出在组同步中,因此组同步的正确配置必须类似于您的 FreeIPA 配置的下一个配置:
ldap.group.baseDn=cn=groups,cn=compat,dc=company,dc=com
ldap.group.request=(&(objectClass=posixGroup)(memberUid={uid}))
ldap.group.idAttribute=cn
区别在于 cn=groups,cn=compat,dc=company,dc=com。
您不能将 memberUid
过滤器与 cn=accounts
一起使用。
我在 Whosebug 上看到了一些帖子,例如 one and
sonar.security.realm=LDAP
sonar.security.savePassword=false
sonar.security.localUsers=admin
ldap.authentication=simple
ldap.url=ldap://ipa.company.com
ldap.bindDn=uid=ldap_search,cn=users,cn=accounts,dc=company,dc=com
ldap.bindPassword=*************
ldap.user.baseDn=cn=users,cn=accounts,dc=company,dc=com
ldap.user.request=(&(objectClass=inetOrgPerson)(uid={login}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail
ldap.group.baseDn=cn=groups,cn=accounts,dc=company,dc=com
ldap.group.request=(&(objectClass=posixGroup)(memberUid={uid}))
ldap.group.idAttribute=cn
问题出在身份验证上。根据 this 文档( 本地用户 块),如果我创建本地用户,则我无法使用相同的 LDAP (FreeIPA) 帐户进行身份验证。如果我第一次使用 FreeIPA 帐户进行身份验证,我会看到新创建的声纳用户,但它没有组(例如 sonar-users,但他实际上是 sonar 的成员-用户 在 FreeIPA 组中)
这是 sonarqube 中的测试帐户示例 - http://joxi.ru/zAN46EXcb9gem9, and test account in FreeIPA - http://joxi.ru/VrwnzgDcBeGxAX。 甚至,当我使用管理员登录并向测试用户添加组时,它们会在下次登录后消失。
这是来自 mysql sonar.users 数据库的示例:
| id | login | updated_at | external_identity | external_identity_provider | user_local |
| 32 | test | 1494580874688 | test | sonarqube | 0 |
请帮我找到解决办法。
几周后我终于找到了正确的解决方案!我意识到问题出在组同步中,因此组同步的正确配置必须类似于您的 FreeIPA 配置的下一个配置:
ldap.group.baseDn=cn=groups,cn=compat,dc=company,dc=com
ldap.group.request=(&(objectClass=posixGroup)(memberUid={uid}))
ldap.group.idAttribute=cn
区别在于 cn=groups,cn=compat,dc=company,dc=com。
您不能将 memberUid
过滤器与 cn=accounts
一起使用。