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