스택오버플로우에서 이런 글을 본 적이 있어요하나그리고이것, 하지만 문제는 여전히 존재합니다. 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 사용자가 보이는데 그룹이 없습니다(소나 사용자예를 들어 그는 실제로 FreeIPA 그룹의 Sonar 사용자의 구성원입니다.)
다음은 sonarqube의 테스트 계정 예입니다.http://joxi.ru/zAN46EXcb9gem9및 FreeIPA의 테스트 계정 -http://joxi.ru/VrwnzgDcBeGxAX. 심지어 관리자로 로그인하고 테스트 사용자를 위해 그룹을 추가해도 다음 로그인 후에는 사라집니다.
이것은 mysql의 예입니다.소나 사용자Db:
| id | login | updated_at | external_identity | external_identity_provider | user_local |
| 32 | test | 1494580874688 | test | sonarqube | 0 |
해결책을 찾도록 도와주세요...
답변1
몇 주 후에 마침내 올바른 해결책을 찾았습니다! 문제가 그룹 동기화에 있다는 것을 깨달았으므로 그룹 동기화의 올바른 구성은 FreeIPA 구성의 다음 구성과 유사해야 합니다.
ldap.group.baseDn=cn=groups,cn=compat,dc=company,dc=com
ldap.group.request=(&(objectClass=posixGroup)(memberUid={uid}))
ldap.group.idAttribute=cn
차이점은 cn=그룹,cn=호환 가능,dc=회사,dc=com. memberUid
필터를 사용할 수는 없습니다 . 실제로는 사용할 수 있지만 사용자를 cn=accounts
찾을 수는 없습니다 .uids