Linux
SonarQube 5.6 LDAP (FreeIPA) 認證使用者沒有組
我在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
使用者。