Начиная с версии 2.8.92, Semaphore поддерживает аутентификацию через OpenID. В этой статье мы рассмотрим, как настроить Ansible Semaphore для аутентификации пользователей через GitLab.

Настройка аутентификации через OpenID начинается с настройки самого провайдера, в нашем случае — GitLab.

1. Создайте приложение в GitLab

Чтобы включить аутентификацию через GitLab, необходимо создать приложение в настройках вашей учетной записи GitLab.

  1. Перейдите в раздел Приложения в настройках вашей учетной записи GitLab: https://gitlab.com/-/profile/applications
  2. Заполните обязательные поля:
    • Redirect URL: http://localhost:3000/api/auth/oidc/gitlab/redirect.
    • Scopes: openid, profile, email.

    создание приложения gitlab

  3. После нажатия на Сохранить приложение вы увидите следующий экран:
  4. настройка приложения gitlab
  5. Скопируйте и сохраните секретный ключ (он понадобится для конфигурации Semaphore) и нажмите Продолжить.
  6. Приложение готово.
  7. список приложений gitlab

2. Добавьте настройки OpenID в файл конфигурации Semaphore

Как вы знаете, настройки Semaphore хранятся в файле конфигурации (обычно config.json) в формате JSON.

Нам нужно добавить следующие настройки, чтобы Semaphore знал, как использовать GitLab в качестве провайдера OpenID:

"oidc_providers": {
   "gitlab": {
       "display_name": "GitLab",
       "provider_url": "https://gitlab.com",
       "client_id": "ID приложения",
       "client_secret": "Секрет",
       "redirect_url": "http://localhost:4000/api/auth/oidc/gitlab/redirect"
   }
}

3. Запустите Semaphore с аутентификацией OpenID/GitLab

После того как вы сохранили изменения в файле конфигурации, запустите или перезапустите Semaphore с новыми настройками.

Вы найдете новую кнопку "GitLab" на странице входа Semaphore.

экран входа semaphore