Создать SAML-приложение в Yandex Identity Hub для интеграции с Managed Service for GitLab
Примечание
Функциональность находится на стадии Preview.
Чтобы пользователи вашей организации могли аутентифицироваться в Yandex Managed Service for GitLab с помощью технологии единого входа по стандарту SAML
Управлять SAML-приложениями может пользователь, которому назначена роль organization-manager.samlApplications.admin или выше.
Чтобы дать доступ пользователям вашей организации в Managed Service for GitLab:
- Создайте инстанс GitLab.
- Создайте приложение в Identity Hub.
- Настройте интеграцию.
- Убедитесь в корректной работе приложения.
Создайте инстанс GitLab
-
В консоли управления выберите каталог, в котором нужно создать инстанс GitLab.
-
Выберите сервис Managed Service for GitLab.
-
Нажмите кнопку Создать инстанс.
-
В верхней части страницы:
- Введите имя инстанса. Оно должно быть уникальным в рамках Yandex Cloud.
-
В блоке Конфигурация:
-
Выберите тип инстанса. После создания инстанса можно изменить его тип на более производительный.
-
Укажите зону доступности. После создания инстанса изменить его зону доступности невозможно.
-
Укажите подсеть, в которой будет размещен инстанс.
-
Выберите группу безопасности или создайте новую:
- Нажмите кнопку Создать группу.
- Введите имя и описание группы безопасности. Правила для группы безопасности вы сможете добавить позже в сервисе Virtual Private Cloud.
- Нажмите кнопку Создать.
-
Выберите размер диска. После создания инстанса размер его диска можно увеличить.
-
Укажите доменное имя инстанса — для него будут автоматически созданы нужные DNS-записи в домене
.gitlab.yandexcloud.net. -
Задайте срок хранения автоматических резервных копий (в днях).
-
-
В блоке Данные администратора укажите:
- Электронная почта — адрес электронной почты администратора инстанса GitLab. На этот адрес придет письмо со ссылкой для создания пароля.
- Логин — логин администратора.
-
Нажмите кнопку Создать.
-
Дождитесь, когда инстанс будет готов к работе: его статус на панели Managed Service for GitLab сменится на Running. Это может занять некоторое время.
Создайте приложение в Identity Hub
- Войдите в сервис Yandex Identity Hub
. - На панели слева выберите
Приложения. - В правом верхнем углу страницы нажмите
Создать приложение и в открывшемся окне:-
Выберите метод единого входа SAML (Security Assertion Markup Language).
-
В поле Имя задайте имя создаваемого приложения:
managed-gitlab-app. -
(Опционально) В поле Описание задайте описание приложения.
-
(Опционально) Добавьте метки:
- Нажмите Добавить метку.
- Введите метку в формате
ключ: значение. - Нажмите Enter.
-
Нажмите Создать приложение.
-
- Сохраните значения полей Login URL, Issuer / IdP EntityID и Цифровой отпечаток (fingerprint), они понадобятся на следующем шаге.
Настройте интеграцию
Настройте аутентификацию на стороне GitLab с помощью OmniAuth
Чтобы интегрировать провайдер аутентификации для GitLab через OmniAuth, добавьте провайдер аутентификации:
-
В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for GitLab. -
Нажмите на созданный инстанс и выберите вкладку OmniAuth.
-
Нажмите кнопку Настроить.
-
Чтобы добавить провайдера аутентификации, нажмите кнопку Add.
-
Выберите тип
SAMLи укажите параметры провайдера аутентификации:- Label — название провайдера аутентификации. Может быть любым, например
Identity Hub. - 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-отпечаток открытого ключа сертификата. Используйте значение из поля Цифровой отпечаток (fingerprint), полученное при создании приложения в Identity Hub.
- IDP SSO target URL — URL провайдера идентификации. Используйте значение из поля Login URL.
- Issuer — уникальный идентификатор приложения, в котором будет происходить аутентификация пользователя, например
https://example.gitlab.yandexcloud.net. - Name identifier format — формат идентификатора имени, выберите значение
Persistent. - Allow single sign on — разрешить использование SSO. Установите значение
true. Если установитьfalse, аутентифицироваться смогут только пользователи, уже созданные на стороне GitLab. - Auto link users by email — установить соответствие между именем пользователя в OmniAuth и в GitLab, если к ним привязан один адрес электронной почты. Установите значение
true. - Block auto-created users — переводить автоматически созданные учетные записи в состояние Pending approval
до их одобрения администратором. Установите значениеfalse. - External provider — установить для провайдера свойство внешний. Пользователи, аутентифицированные через данный провайдер, будут считаться внешними
и не будут иметь доступа к внутренним проектам . Установите значениеfalse. - Auto link LDAP user — создавать LDAP-сущность для автоматически созданных учетных записей. Применимо только для инстансов, к которым подключен LDAP-провайдер. Установите значение
false.
- Label — название провайдера аутентификации. Может быть любым, например
-
Нажмите кнопку Создать.
Настройте SAML-приложение на стороне Yandex Identity Hub
Настройте эндпоинты поставщика услуг
- Войдите в сервис Yandex Identity Hub
. - На панели слева выберите
Приложения и выберите нужное SAML-приложение. - Справа сверху нажмите
Редактировать и в открывшемся окне:- В поле SP EntityID вставьте адрес эндпоинта, который вы вводили в поле Issuer при настройке OmniAuth.
- В поле ACS URL вставьте адрес эндпоинта, который вы вводили в поле Assertion consumer service URL при настройке OmniAuth, например
https://example.gitlab.yandexcloud.net/users/auth/saml/callback. - Нажмите Сохранить.
Настройте атрибуты пользователей
Важно
Для интеграции с GitLab необходимо, чтобы у пользователей был атрибут email.
-
Войдите в сервис Yandex Identity Hub
. -
На панели слева выберите
Приложения и выберите нужное приложение. -
Перейдите на вкладку Атрибуты.
-
Нажмите на строку с атрибутом
emailaddressи в открывшемся окне:- В поле Имя атрибута измените значение на
email. - Нажмите Обновить.
- В поле Имя атрибута измените значение на
Подробнее о настройке атрибутов см. Настройте атрибуты пользователей и групп.
Добавьте пользователя
Чтобы пользователи вашей организации могли аутентифицироваться в GitLab с помощью SAML-приложения Identity Hub, необходимо явно добавить в SAML-приложение нужных пользователей и/или группы пользователей.
Примечание
Управлять пользователями и группами, добавленными в SAML-приложение, может пользователь, которому назначена роль organization-manager.samlApplications.userAdmin или выше.
-
Добавьте пользователей в приложение:
Интерфейс Cloud Center- Войдите в сервис Yandex Identity Hub
. - На панели слева выберите
Приложения и выберите нужное приложение. - Перейдите на вкладку Пользователи и группы.
- Нажмите
Добавить пользователей. - В открывшемся окне выберите нужного пользователя или группу пользователей.
- Нажмите Добавить.
- Войдите в сервис Yandex Identity Hub
Убедитесь в корректной работе приложения
Чтобы убедиться в корректной работе SAML-приложения и интеграции с GitLab, выполните аутентификацию в GitLab от имени одного из добавленных в приложение пользователей. Для этого:
- В браузере перейдите по адресу вашего инстанса GitLab (например,
https://example.gitlab.yandexcloud.net). - Если вы прошли аутентификацию в GitLab, выйдите из профиля.
- На странице аутентификации GitLab нажмите на название созданного провайдера аутентификации, например
Identity Hub. - На странице аутентификации Yandex Cloud укажите почту и пароль пользователя. Пользователь должен быть добавлен в приложение или состоять в группе, добавленной в приложение. Также у пользователя должна быть указана почта.
- Убедитесь, что вы аутентифицировались в GitLab.