SonarQube 5.6 Usuários autenticados LDAP (FreeIPA) não possuem grupos

0

Eu vi alguns posts no stackoverflow, como este one e isso , mas o problema ainda existe. Eu atualizei o sonarqube de 5.3 para 5.6. Aqui está o exemplo da minha configuração:

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

O problema está na autenticação. Se eu criar um usuário local, não será possível autenticar usando a mesma conta LDAP (FreeIPA). Se eu autenticar pela primeira vez com a conta FreeIPA, vejo o usuário de sonar recém-criado, mas ele não tem grupos ( sonar-users por exemplo, mas ele é realmente um membro de usuários do sonar em grupos FreeIPA)

Veja o exemplo da conta de teste em sonarqube - link , e teste a conta no FreeIPA - link . Mesmo quando eu faço login com admin e adiciono grupos para testar o usuário, eles desaparecem após o próximo login.

Aqui está o exemplo do mysql sonar.users db:

| id | login                    | updated_at    | external_identity        | external_identity_provider | user_local |
| 32 | test                     | 1494580874688 | test                     | sonarqube                  |          0 |

Por favor, ajude-me a encontrar uma solução ...

    
por obohovyk 12.05.2017 / 14:13

1 resposta

1

Depois de algumas semanas, finalmente encontrei a solução certa! Eu percebi que o problema estava na sincronização do grupo, então a configuração correta para a sincronização do grupo deve se parecer com a próxima para a configuração do FreeIPA:

ldap.group.baseDn=cn=groups,cn=compat,dc=company,dc=com
ldap.group.request=(&(objectClass=posixGroup)(memberUid={uid}))
ldap.group.idAttribute=cn

A diferença está em cn = groups, cn = compat , dc = empresa, dc = com. Você não pode usar memberUid filter com cn=accounts , na verdade, mas não encontrará uids de usuários.

    
por 07.06.2017 / 14:02