Подключение GitLab

При подключении системы GitLab к системе Trusted.ID для аутентификации пользователей требуется:

  • создание приложения в Trusted.ID;
  • настройка на стороне системы GitLab.

Создание приложения в Trusted.ID

  1. Авторизоваться или зарегистрироваться в системе Trusted.ID.
  2. Создать приложение по описанию раздела Приложения, заполнив поля:
  3. Адрес приложения - адрес инсталляции системы GitLab;
  4. Возвратный URL #1 (Redirect_uri) - <адрес инсталляции GitLab>/users/auth/oauth2_generic/callback.

  5. Перейти в настройки приложения. Необходимо скопировать значения полей Идентификатор (Client_id) и Секретный ключ (Client_secret).

gitlab-settings.png

Настройка системы GitLab

Настройка авторизации пользователей сервиса GitLab через Trusted.ID происходит в файле конфигурации GitLab gitlab.rb, расположенного в папке конфигурации сервиса (/config).

  1. Открыть файл конфигурации gitlab.rb в режиме редактирования и перейти к блоку OmniAuth Settings.
  2. Задать следующие значения для параметров, при необходимости, раскомментировав или добавив недостающие:

        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-oauth1.png

  3. Перезапустить сервис GitLab для применения новых настроек.

  4. При необходимости, зайти под администратором в интерфейсную часть сервиса GitLab. Перейти в настройки по пути Admin (Admin Area) — Settings-General.

    На открывшейся странице в блоке Sign-in restrictions установить флаг напротив <НазваниеСистемыTrusted.ID> в дочернем блоке Enabled OAuth authentication sources.

    gitlab-oauth2.png

Кнопка входа через Trusted.ID отображается на форме авторизации GitLab.

gitlab-trusted-button.png