ldap sonarqube sonarqube-ops sonarqube5.6

sonarqube 5.6 y LDAP 2.0 no logran autenticarse



sonarqube-ops sonarqube5.6 (3)

Lo más probable es que esté solucionando el problema conocido SONAR-7770 : la autenticación falla si se ha olvidado la configuración de LDAP durante la actualización . Tenga en cuenta que se emitió una nota de actualización para este problema:

Más específicamente, no olvide copiar el complemento de SonarQube relacionado y su configuración relacionada en "conf / sonar.properties" (incluidos "sonar.security.realm" y "sonar.security.localUsers", si están presentes) en la nueva instancia de SonarQube de lo contrario, se bloqueará después de la migración.

Por lo tanto, es importante que esta configuración de LDAP esté presente incluso durante la actualización. Si lo omitió, la forma más fácil de hacerlo aquí es reproducir la actualización con la configuración relacionada con LDAP establecida correctamente.

Contexto

Tenga en cuenta que durante una actualización, SonarQube actualiza el conjunto de datos y también almacena información nueva en la base de datos (en función de las nuevas características). El problema en su caso sería que la actualización se realizó con una configuración parcial (que no configuró sonar.security.realm y sonar.security.localUsers ), y SonarQube no pudo determinar si los usuarios eran locales o no, por lo tanto, tratándolos como locales por defecto. Los usuarios locales no están autenticados contra proveedores de autenticación externos sino localmente, que es lo que estamos viendo en sus registros (y obviamente está fallando porque la contraseña reside en el servidor LDAP, no en la base de datos SonarQube).

Estoy probando una actualización a sonarqube 5.6 y he instalado el complemento ldap 2.0 y he copiado la configuración relevante en mi configuración de prueba 5.6.

La configuración relevante es

sonar.security.realm=LDAP ldap.url=ldaps://xxxx:636 ldap.bindDn=uid=xxxx,ou=xxxx,dc=xxxx,dc=xxxx ldap.bindPassword=xxxx ldap.user.baseDn=dc=xxxx,dc=com ldap.user.request=(&(objectClass=person)(mail={login})) ldap.user.realNameAttribute=cn ldap.user.emailAttribute=mail

Tengo el siguiente conjunto en conf / sonar.properties

sonar.log.level=DEBUG

Al inicio veo

2016.07.26 23:57:29 INFO web[o.s.p.l.LdapContextFactory] Test LDAP connection on ldaps://xxxx:636: OK 2016.07.26 23:57:29 INFO web[org.sonar.INFO] Security realm started

Si intento iniciar sesión, aparece "Autenticación fallida" en la pantalla de inicio de sesión. El archivo de registro no dice nada más que

2016.07.26 23:57:47 DEBUG web[http] GET / | time=67ms 2016.07.26 23:57:47 DEBUG web[http] GET / | time=187ms 2016.07.26 23:57:47 DEBUG web[http] GET /sessions/new | time=89ms 2016.07.26 23:57:53 DEBUG web[http] POST /sessions/login | time=71ms

La misma configuración funciona bien con sonarqube 4.5.7 y ldap 1.4

Las ideas son bienvenidas sobre cómo investigar más a fondo.


Lo arreglé actualizando manualmente la tabla de la base de datos de usuarios de SonarQube, asumiendo que todos los otros usuarios son administrados por LDAP y solo el administrador es un usuario local:

UPDATE sonarqube_production.users SET user_local = 0, external_identity_provider = ''ldap'' WHERE id != ''admin'';


Poco arreglo a la consulta anterior de Schakko, debería ser con login no con id :

UPDATE users SET user_local = 0, external_identity_provider = ''ldap'' WHERE login != ''admin'';