Linux

SonarQube 5.6 LDAP (FreeIPA) 認證使用者沒有組

  • June 7, 2017

我在stackoverflow上看到了一些文章,比如this和this 但問題仍然存在。我將 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

問題在於身份驗證。如果我創建本地使用者,那麼我無法使用相同的 LDAP (FreeIPA) 帳戶進行身份驗證。如果我第一次使用 FreeIPA 帳戶進行身份驗證,我會看到新創建的聲納使用者,但它沒有組(例如sonar-users,但他實際上是 FreeIPA 組中 sonar-users 的成員)

這是 sonarqube 中的測試帳戶範例 - http://joxi.ru/zAN46EXcb9gem9和 FreeIPA 中的測試帳戶 - http://joxi.ru/VrwnzgDcBeGxAX。甚至,當我使用管理員登錄並將組添加到測試使用者時,它們會在下次登錄後消失。

這是來自 mysql sonar.users db 的範例:

| 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,實際上你可以但它不會找到uids使用者。

引用自:https://unix.stackexchange.com/questions/364634