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'';