Аутентификация через плагин OpenID (Keycloak)#

Использование плагина OpenID Connect Authentication позволяет автоматически проходить идентификацию и аутентификацию на сервере Platform V Works::CodeScanner с помощью Keycloak.

Предварительные требования#

Базовый URL сервера#

Базовый URL сервера Platform V Works::CodeScanner должен быть задан либо через установку URL в Администрирование -> Конфигурация -> Общие -> Базовый URL сервера, либо через добавление параметра sonar.core.serverBaseURL в конфигурационный файл sonar.properties.

Внимание

В данном URL не допускается использовать завершающий слеш. В противном случае перенаправление от Keycloak обратно на сервер Platform V Works::CodeScanner будут созданы некорректно.

Принудительная идентификация пользователя#

Если в плагине включена функция автоматического входа (Auto-Login), то в Platform V Works::CodeScanner должно быть активировано свойство принудительной аутентификации пользователя. Чтобы это сделать, перейдите в раздел Администрирование -> Конфигурация -> Безопасность -> Принудительная аутентификация пользователя, альтернативным вариантом будет добавление параметра sonar.forceAuthentication в конфигурационный файл sonar.properties.

В противном случае плагин не сможет автоматически перенаправить пользователя на страницу входа Keycloak.

Сетевой прокси#

Если Platform V Works::CodeScanner использует сетевой прокси через параметр http[s].proxy[Host|Port] в конфигурационном файле sonar.properties, и имя хоста Keycloak не разрешается этим прокси, то имя хоста Keycloak должно быть исключено из обработки прокси. Для выполнения данной настройки добавьте параметр http.nonProxyHosts в конфигурационный файл sonar.properties.

В противном случае плагин не сможет отправить запрос токена на Keycloak.

Конфигурирование#

Создайте клиента с типом доступа public или confidential(рекомендовано) и добавьте в белый список URI переадресации для сервера Platform V Works::CodeScanner:

https://<базовый URL>/oauth2/callback/oidc

create-client

Keycloak поддерживает подстановочные символы (wildcard) в белом списке URI переадресации. В противном случае абсолютный URI переадресации должен быть добавлен в белый список.

Для синхронизации групп Platform V Works::CodeScanner создайте маппер, который добавляет названия групп в пользовательское поле (claim) в ID-токене.

create-mapper

Убедитесь, что Keycloak создает поле groups с группами, представленными в виде JSON-массива строк, например: ["Group"] или ["Group 1", "Group 2", "Group 3"]. В противном случае плагин не сможет извлечь список групп из пользовательского поля. JSON-объект с пользовательскими данными доступен в системном журнале с уровнем DEBUG.

URI Keycloak (без пути /.well-known/openid-configuration) необходим для настройки плагина Issuer URI.

В разделе Администрирование -> Конфигурация -> Безопасность -> OpenID Connect:

  • Настройте плагин для клиента OpenID Connect (секрет клиента требуется только для клиентов с типом доступа confidential).

admin-openid-connect1

admin-openid-connect2

admin-openid-connect3

  • Если функция автоматического входа (Auto-Login) включена, выход из Platform V Works::CodeScanner станет невозможен. Это происходит из-за перенаправления на страницу входа CodeScanner, что снова запускает автоматический вход.

    Чтобы пропустить автоматический вход, используйте URL: <sonarServerBaseURL>/?auto-login=false в новой сессии браузера (без cookie файлов предыдущего входа в Platform V Works::CodeScanner).

  • Для синхронизации групп, имя пользовательского поля (claim) должно совпадать с тем, которое определено в маппере групп Keycloak.