Настройка интеграций по протоколам¶
В Системе в разделе Сервисы необходимо добавить сервис для интеграции, указать наименование, протокол, параметры и адрес с которого будет производиться запрос на вход.
Подключение к Системе по протоколу CAS¶
В зависимости от подключаемого сервиса может понадобиться настройка Атрибутов сервисов
Информация
Для примеров используется настроенный атрибут сервисов со следующим содержимым
Подключение redmine¶
Для подключения redmine необходимо установить модуль Redmine Omniauth plugin:
- клонируем плагин в директорию /usr/src/redmine/plugins
- копируем файл /usr/src/redmine/plugins/redmine_omniauth_cas/initializersredmine_omniauth_cas.rb в контейнер с redmine
- перезапускаем redmine
В redmine, в настройках подключенного модуля (Администрирование - Модули) в качестве "CAS server URL" указываем путь до контейнера sso, например:
Подключение jenkins¶
Для подключения jenkins необходимо установить плагин "cas-plugin". В jenkins в настройках плагина (находятся в "Глобальные настройки безопасности") необходимо заполнить:
- "CAS server URL" указать путь до контейнера sso, например, http://localhost:8082/auth
- "CAS Protocol" выбрать "CAS 3.0"
- "Авторизация" - "Role-Based Strategy"
Далее в расширенных настройках заполнить:
- "Roles Attribute(s)" - "memberOf"
- "Full Name Attribute" - "displayName"
- "Email Attribute" - "email"
Остальные параметры заполнять не нужно.
Подключение gitlab¶
Для подключения gitlab необходимо внести изменения в файл настроек gitlab.rb:
Информация
Не работает начиная с версии 16.0!
| gitlab.rb | |
|---|---|
Подключение к Системе по протоколу OpenId Connect¶
Информация
Важно понимать,что OpenID Connect протокол требует TLS (HTTPS) взаимодействия.
Поэтому Единая точка доступа должна быть запущена в режиме https
Предупреждение
Если Единая точка доступа работает с самоподписанным сертификатом, то предварительно нужно настроить доверие
сервиса к этому сертификату. Если сервис работает с самоподписанным сертификатом, то также необходимо настроить
доверие Единая точка доступа к сертификату сервера
Подключение ownCloud¶
Для подключения ownCloud необходимо установить из маркета приложение OpenID Connect, либо установить его через консоль:
На стороне сервера owncloud настроить config.php, например:
Более подробное описание настроек см. openidconnect
В Системе в разделе Атрибуты сервисов необходимо создать группу атрибутов owncloud со следующими атрибутами:
В Системе в разделе Сервисы необходимо указать настройки:
-
В поле Разрешенные типы предоставления токенов (grant types) - Authorization code
-
В поле Разрешенные типы ответов (response types) - code
-
В поле Секретный ключ клиента - значение 'client-secret' из owncloud
-
В поле Атрибуты - выбрать раннее созданную группу атрибутов
owncloud
Подключение Vaultwarden¶
Для подключения Vaultwarden необходимо в UI Vaultwarden Admin перейти в пункт OpenID connect SSO settings
и настроить параметры:
Client ID- значение из ID клиентаClient Key- значение из Секретный ключ клиентаAuthority Server-https://sso.local/auth/oidcAuthorization request scopes-preferred_username emailCallBack Path- оставить стандартное значение
Более подробное описание настроек см. Vaultwarden
В Системе в разделе Сервисы необходимо создать соответствующий сервис со следующими настройками:
-
В поле URL-адрес переадресации - ввести значение из
CallBack Path -
В поле Атрибуты -
preferred_usernameиemail(Перед этим нужно создать во вкладкеАтрибуты сервисоватрибутpreferred_usernameсо значениемpreferred_username-display_name) -
В поле ID клиента - ввести название клиента, например
vaultwarden -
В поле Секретный ключ клиента - ввести секретный ключ клиента (нужно придумать или сгенерировать самостоятельно)
-
В поле Разрешенные типы предоставления токенов (grant types) -
Authorization code -
В поле Разрешенные типы ответов (response types) -
code
Информация
Vaultwarden при создании пользователя через SSO будет брать значение имени пользователя из атрибута preferred_username,
а значение email соответственно из атрибута email
Предупреждение
Для создания пользователя в Vaultwarden email этого пользователя должен быть подтверждён - иметь тег VERIFIED
Подключение к Системе по протоколу SAML¶
При первом запуске Системы создаются ключи и сертификат для доступа по протоколу SAML. Если изменится параметр sso.url при перезапуске Системы, то сертификат SAML обновится и настроенные подключения по SAML перестанут работать. Чтобы они снова заработали, нужно будет обновить SHA-1 отпечаток сертификата подписи метаданных SAML на стороне настроенных сервисов.
Подключение gitlab¶
Для подключения gitlab необходимо внести изменения в файл настроек gitlab.rb:
Для получения значения idp_cert_fingerprint требуется перейти в настройки на вкладку Общие в поле SHA-1 отпечаток сертификата подписи метаданных SAML.
Примечание
В случае, если параметр sso.url будет изменён, то SHA-1 отпечаток сертификата подписи метаданных SAML обновится и нужно будет прописать новое значение idp_cert_fingerprint в уже настроенном сервисе
Далее в Системе:
- В разделе Атрибуты добавить запись gitlab для группы атрибутов gitlab, указав в качестве протокола SAML 2.0 и заполнив список атрибутов (в качестве полей источников выбрать email, first_name, family_name, display_name)
- В разделе Сервисы необходимо указать в Разрешения значение gitlab, созданную ранее в п. 1
Примечание
В случае, если время в Системе и на сервере Gitlab будет отличаться, возникнет ошибка:
Could not authenticate you from SAML because
"Current time is earlier than notbefore condition (2019-03-25 <current time> utc < 2019-03-25 <current time> utc)"
Примечание
Чтобы изменения, внесённые в gitlab.rb вступили в силу, необходимо выполнить:
Подключение Jenkins¶
Для подключения Jenkins необходимо установить плагин SAML, после установки зайти в настройки безопасности Jenkins (http://jenkins.local/manage/configureSecurity/) и там заполнить:
IdP Metadata URL - https://sso.local/auth/idp/metadata
Username Attribute - username
Email Attribute - email
Logout URL - https://sso.local/auth/client/logout
Далее в Системе:
- В разделе Атрибуты сервисов добавить запись jenkins, указав в качестве протокола SAML 2.0 и заполнив список атрибутов (в качестве полей источников выбрать username, email)
- В разделе Сервисы создать сервис заполнив поля:
Примечание
Путь к метаданным можно найти В UI jenkins - в настройках SAML нажать на ссылку Service Provider Metadata При копировании этого пути нужно убрать из него /manage, например из http://jenkins.local/manage/securityRealm/metadata сделать http://jenkins.local/securityRealm/metadata