Настройка OmniAuth
С помощью OmniAuth
Чтобы интегрировать провайдер аутентификации для GitLab через OmniAuth, добавьте провайдер аутентификации, в процессе указав его параметры.
Добавление провайдера аутентификации
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for GitLab. - Нажмите на имя нужного инстанса и выберите вкладку OmniAuth.
- Нажмите кнопку Настроить.
- Чтобы добавить провайдера аутентификации, нажмите кнопку Add.
- Выберите тип и укажите параметры провайдера аутентификации.
- Нажмите кнопку Создать.
Подробнее о работе OmniAuth в GitLab см. в документации GitLab
Параметры провайдера аутентификации
Часть параметров являются общими для всех провайдеров:
- Allow single sign on — разрешить использование SSO. Если установлено значение
true
, то при аутентификации незарегистрированного в GitLab пользователя через провайдер OmniAuth для него будет автоматически создана учетная запись в GitLab. - Auto link users by email — установить соответствие между именем пользователя в OmniAuth и в GitLab, если к ним привязан один адрес электронной почты.
- Block auto-created users — переводить автоматически созданные учетные записи в состояние Pending approval
до их одобрения администратором. - External provider — установить для провайдера свойство внешний. Пользователи, авторизованные через данный провайдер, будут считаться внешними
и не будут иметь доступа к внутренним проектам . - Auto link LDAP user — создавать LDAP-сущность для автоматически созданных учетных записей. Применимо только для инстансов, к которым подключен LDAP-провайдер.
Остальные параметры зависят от выбранного типа провайдера.
Bitbucket Cloud
- Label — название провайдера аутентификации. Может быть любым.
- Application ID — идентификатор приложения, полученный при настройке провайдера.
- Application Secret — секретный ключ, полученный при настройке провайдера.
О том, как получить идентификатор и секретный ключ приложения, см. в инструкции по настройке провайдера
Github Enterprise
- Label — название провайдера аутентификации. Может быть любым.
- Application ID — идентификатор приложения, полученный при настройке провайдера.
- Application Secret — секретный ключ, полученный при настройке провайдера.
- URL — ссылка на репозиторий в GitHub.
О том, как получить идентификатор и секретный ключ приложения, см. в инструкции по настройке провайдера
GitLab self-managed
- Label — название провайдера аутентификации. Может быть любым.
- Application ID — идентификатор приложения, полученный при настройке провайдера.
- Application Secret — секретный ключ, полученный при настройке провайдера.
- Site — ссылка на репозиторий в GitLab.
О том, как получить идентификатор и секретный ключ приложения, см. в инструкции по настройке провайдера
Google OAuth 2.0
- Label — название провайдера аутентификации. Может быть любым.
- Application ID — идентификатор приложения, полученный при настройке провайдера.
- Application Secret — секретный ключ, полученный при настройке провайдера.
О том, как получить идентификатор и секретный ключ приложения, см. в инструкции по настройке провайдера
Keycloak
Примечание
Для работы с GitLab сервер Keycloak должен использовать протокол HTTPS.
- Label — название провайдера аутентификации. Может быть любым.
- Issuer — URL источника авторизации, например
https://keycloak.example.com/realms/myrealm
. - Client ID — идентификатор клиента, полученный при настройке Keycloak.
- Client Secret — секретный ключ клиента, полученный при настройке Keycloak.
- Site — ссылка на репозиторий в GitLab.
LDAP
Важно
Перед настройкой интеграции с LDAP убедитесь, что пользователи на LDAP-сервере не могут:
- Изменять атрибуты
mail
,email
иuserPrincipalName
. Пользователи с такими привилегиями потенциально могут получить доступ к любой учетной записи на GitLab-сервере. - Иметь общий адрес электронной почты. Пользователи LDAP с общим адресом электронной почты смогут использовать один аккаунт в GitLab.
- Name — отображаемое имя пользователя в LDAP. Не должно содержать пробелов и знаков препинания.
- Label — название LDAP-сервера. Может быть любым.
- Host — IP-адрес или доменное имя LDAP-сервера.
- Port — порт LDAP-сервера для подключения.
- Username ID — идентификатор пользователя в LDAP.
- Encryption — метод шифрования трафика.
- Base — имя LDAP-каталога, где хранятся учетные записи пользователей.
- Bind DN — (опционально) уникальное имя (DN) пользователя в LDAP.
- User Filter — (опционально) фильтр пользователей в LDAP в формате RFC-4515
.
О том, как выполнить минимальные настройки LDAP-сервера для работы с GitLab, см. в документации GitLab
Microsoft Entra ID
- Label — название провайдера аутентификации. Может быть любым.
- Client ID — идентификатор клиента, полученный при регистрации приложения.
- Client Secret — секретный ключ клиента, полученный при регистрации приложения.
- Tenant ID — идентификатор тенанта, полученный при регистрации приложения.
О том, как зарегистрировать приложение на стороне Azure, см. в документации GitLab
Microsoft Azure OAuth 2
- Label — название провайдера аутентификации. Может быть любым.
- Client ID — идентификатор клиента, полученный при регистрации приложения.
- Client Secret — секретный ключ клиента, полученный при регистрации приложения.
- Tenant ID — идентификатор тенанта, полученный при регистрации приложения.
О том, как зарегистрировать приложение на стороне Azure, см. в документации GitLab
SAML
- Label — название провайдера аутентификации. Может быть любым.
- Assertion consumer service URL — HTTPS-эндпоинт инстанса GitLab. Чтобы сформировать этот URL, добавьте
/users/auth/saml/callback
к адресу вашего инстанса GitLab, напримерhttps://example.gitlab.yandexcloud.net/users/auth/saml/callback
. - IDP certificate fingerprint — SHA1-отпечаток открытого ключа сертификата, например
90:CC:16:F0:8D:...
. Выдается при настройке провайдера идентификации. - IDP SSO target URL — URL провайдера идентификации. Выдается при настройке провайдера идентификации.
- Issuer — уникальный идентификатор приложения, в котором будет происходить аутентификация пользователя, например
https://example.gitlab.yandexcloud.net
. - Name identifier format — формат идентификатора имени. Выдается при настройке провайдера идентификации.
О том, как настроить SAML на стороне провайдера идентификации, см. в документации GitLab
Yandex ID
- Label — название провайдера аутентификации. Может быть любым.
- Client ID — идентификатор клиента, полученный при регистрации приложения.
- Client Secret — секретный ключ клиента, полученный при регистрации приложения.
- Site — ссылка на репозиторий в GitLab.
О том, как зарегистрировать приложение на стороне провайдера идентификации, см. в документации Яндекс.OAuth
https://<адрес_инстанса_GitLab>/users/auth/Yandex/callback
Пример URL:
https://my-domain.gitlab.yandexcloud.net/users/auth/Yandex/callback
Важно
При интеграции с сервисом Яндекс ID в ваш инстанс может войти любой пользователь с аккаунтом на Яндексе. Чтобы исключить доступ посторонних пользователей, установите параметры Allow single sign on и Block auto-created users в значение true. Это позволит автоматически создавать в GitLab новых пользователей, но блокировать их при первом входе.
Яндекс 360
Яндекс 360 использует для аутентификации провайдеры Yandex ID или LDAP. Чтобы пользователи Яндекс 360 могли войти в ваш инстанс GitLab, добавьте и настройте в OmniAuth один из этих провайдеров.
Важно
Если вы используете провайдер Yandex ID, при аутентификации не проверяется, что пользователь принадлежит организации в Яндекс 360. В ваш инстанс GitLab может войти любой пользователь с аккаунтом на Яндексе. Чтобы исключить доступ посторонних пользователей, установите параметры Allow single sign on и Block auto-created users в значение true. Это позволит автоматически создавать в GitLab новых пользователей, но блокировать их при первом входе.