При подключении системы GitLab к системе Trusted.ID для аутентификации пользователей требуется:
- создание приложения в Trusted.ID;
- настройка на стороне системы GitLab.
Создание приложения в Trusted.ID
- Авторизоваться или зарегистрироваться в системе Trusted.ID.
- Создать приложение по описанию раздела Приложения, заполнив поля:
- Адрес приложения - адрес инсталляции системы GitLab;
-
Возвратный URL #1 (Redirect_uri) - <адрес инсталляции GitLab>/users/auth/oauth2_generic/callback.
-
Перейти в настройки приложения. Необходимо скопировать значения полей Идентификатор (Client_id) и Секретный ключ (Client_secret).
Настройка системы GitLab
Настройка авторизации пользователей сервиса GitLab через Trusted.ID происходит в файле конфигурации GitLab gitlab.rb, расположенного в папке конфигурации сервиса (/config).
- Открыть файл конфигурации gitlab.rb в режиме редактирования и перейти к блоку OmniAuth Settings.
-
Задать следующие значения для параметров, при необходимости, раскомментировав или добавив недостающие:
gitlab_rails['omniauth_enabled'] = true gitlab_rails['omniauth_allow_single_sign_on'] = ['oauth2_generic', '<НазваниеСистемыTrusted.ID>'] gitlab_rails['omniauth_block_auto_created_users'] = false Значение gitlab_rails['omniauth_providers'] должно выглядеть следующим образом: gitlab_rails['omniauth_providers'] = [ { 'name' => 'oauth2_generic', 'app_id' => '<Client_id приложения, созданного в Trusted.ID>', 'app_secret' => '<Client_secret приложения, созданного в Trusted.ID>', 'args' => { client_options: { 'site' => 'https://<Адрес системы Trusted.ID>/', 'authorize_url' => '/api/oidc/auth', 'user_info_url' => '/api/oidc/me', 'token_url' => '/api/oidc/token' }, user_response_structure: { root_path: [], id_path: ['sub'], attributes: { email:'email', name:'nickname' }, }, scope: 'openid profile email', 'name' => '<НазваниеСистемыTrusted.ID>’ } } ]
-
Перезапустить сервис GitLab для применения новых настроек.
-
При необходимости, зайти под администратором в интерфейсную часть сервиса GitLab. Перейти в настройки по пути Admin (Admin Area) — Settings-General.
На открывшейся странице в блоке Sign-in restrictions установить флаг напротив <НазваниеСистемыTrusted.ID> в дочернем блоке Enabled OAuth authentication sources.
Кнопка входа через Trusted.ID отображается на форме авторизации GitLab.