Для настройки 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.

изображение.png

Далее в разделе Manage в главном меню (слева) переходим на вкладку Groups:

изображение.png

Создаем новую группу sonar-adminstrators (такая группа есть в SonarQube), для этого нажимаем New

изображение.png

После создания добавляем в данную группу пользователей, которые будут администраторами в SonarQube.

Настраиваем SonarQube

Для настройки заполняем следующие поля:

изображение.png

Если мы хотим, чтобы группы из 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