Для настройки SSO в SonaQube используется плагин: https://github.com/vaulttec/sonar-auth-oidc
Установка плагина для аутентификации в SonarQube
Установите плагин OpenID Connect Authentication for SonarQube через магазин приложений SonarQube и перезагрузите сервер.
Создаем клиента в Keycloak
Заходим в админку Keycloak и создаем нового клиента.
Заполняем поля:
- Client ID: sonarqube;
- Enabled: On;
- Client Protocol: openid-connect;
- Access Type: confidential;
- Valid Redirect URIs: URL вашего LibreNMS, с которого будет осуществляться редирект,например, sonarqube.0xbbeer.ru/*
Далее переходим на вкладку Mappers и нажимаем создать mapper.
Указываем параметры, как показано ниже. Маппер нужен нам для сопоставления групп из keycloak с группами в Sonar.
Далее в разделе Manage в главном меню (слева) переходим на вкладку Groups:
Создаем новую группу sonar-adminstrators (такая группа есть в SonarQube), для этого нажимаем New
После создания добавляем в данную группу пользователей, которые будут администраторами в SonarQube.
Настраиваем SonarQube
Для настройки заполняем следующие поля:
Если мы хотим, чтобы группы из Keycloak синхронизировались, включаем параметр Synchronize groups
.
Для коректной работы аутентификации также необходимо задать параметр sonar.core.serverBaseURL
в Administration > General > General
Добавляем сертификат локального CA в Java Key Storage
Чтобы избежать SSL ошибок из-за локального CA, добавим корневой сертификат в Java Key Storage:
1keytool -import -noprompt -trustcacerts -alias 0xbbeer-CA -file 0xbbeer-CA.crt -keystore /usr/lib/jvm/java-11-openjdk-amd64/lib/security/cacerts -storepass changeit