Начиная с версии 2.8.92, Semaphore поддерживает аутентификацию через OpenID. В этой статье мы рассмотрим, как настроить Ansible Semaphore для аутентификации пользователей через GitLab.
Настройка аутентификации через OpenID начинается с конфигурации самого провайдера — в нашем случае GitLab.
1. Создайте приложение в GitLab
Чтобы включить аутентификацию через GitLab, необходимо создать приложение в настройках вашей учётной записи GitLab.
- Перейдите в раздел Applications в настройках вашей учётной записи GitLab: https://gitlab.com/-/profile/applications
- Заполните обязательные поля:
- Redirect URL:
http://localhost:3000/api/auth/oidc/gitlab/redirect
. - Scopes:
openid
,profile
,email
. - После нажатия Save application вы увидите следующий экран:
- Скопируйте и сохраните где-нибудь секретный ключ (он понадобится для настройки Semaphore) и нажмите Continue.
- Приложение готово.


2. Добавьте настройки OpenID в файл конфигурации Semaphore
Как известно, настройки Semaphore хранятся в файле конфигурации (обычно config.json
) в формате JSON.
Нужно добавить в него следующие настройки, чтобы Semaphore знал, как использовать GitLab в качестве провайдера OpenID:
"oidc_providers": {
"gitlab": {
"display_name": "GitLab",
"provider_url": "https://gitlab.com",
"client_id": "Application ID",
"client_secret": "Secret",
"redirect_url": "http://localhost:4000/api/auth/oidc/gitlab/redirect"
}
}
3. Запустите Semaphore с аутентификацией через OpenID/GitLab
После сохранения изменений в файле конфигурации запустите или перезапустите Semaphore с новыми настройками.
На странице входа Semaphore появится новая кнопка «GitLab».