Создать OIDC-приложение в Yandex Identity Hub для интеграции с Warpgate
Важно
Часть ресурсов, необходимых для прохождения практического руководства, доступны только в регионе Россия.
Warpgate
Чтобы пользователи вашей организации могли входить в Warpgate через OIDC, создайте OIDC-приложение и настройте интеграцию с Warpgate. В этом руководстве вы также настроите передачу групп пользователей в Warpgate и сопоставите их с ролями доступа.
Управлять OIDC-приложениями может пользователь, которому назначена роль organization-manager.oauthApplications.admin или выше.
Чтобы дать пользователям вашей организации доступ в Warpgate:
- Создайте OIDC-приложение.
- Создайте группу пользователей и добавьте в нее пользователей.
- Настройте интеграцию.
- Убедитесь в корректной работе приложения.
Если созданные ресурсы вам больше не нужны, удалите их.
Создайте OIDC-приложение
- Войдите в сервис Yandex Identity Hub
. - На панели слева выберите
Приложения. - Нажмите кнопку
Создать приложение и в открывшемся окне:- Выберите метод единого входа (SSO) OIDC (OpenID Connect).
-
В поле Тип приложения выберите тип Web Application.
OIDC-приложения типа
Web Applicationоптимально подходят для аутентификации пользователей во внешних веб-приложениях, имеющих серверную часть (бэкенд), в которой может безопасно храниться секрет приложения. Подробнее о типах OIDC-приложений читайте в разделе Типы OIDC-приложений в Yandex Identity Hub. - В поле Имя укажите
warpgate-oidc-app. - В поле Каталог выберите каталог, в котором будет создан OAuth-клиент для приложения.
- (Опционально) В поле Описание укажите описание, например
OIDC-приложение для интеграции с Warpgate. - Нажмите Создать приложение.
- В созданном приложении справа сверху нажмите
Редактировать. - В поле Scopes отметьте атрибут
groups (группы пользователя в организации)и выберите значениеТолько назначенные группы. По умолчанию в новом OIDC-приложении этот атрибут отключен. - Нажмите Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Создайте OAuth-клиент:
yc iam oauth-client create \ --name warpgate-oauth-client \ --scopes openid,email,profile,groups \ --profile-id webГде:
--name— имя OAuth-клиента.--scopes— набор атрибутов пользователей, которые будут доступны Warpgate. Указаны атрибуты:openid— идентификатор пользователя. Обязательный атрибут.email— адрес электронной почты пользователя.profile— дополнительная информация о пользователе, такая как имя, фамилия, аватар.groups— группы пользователей в организации. Понадобятся для сопоставления групп с ролями доступа Warpgate.
-
--profile-id— тип OAuth-клиента (OIDC-приложения). В руководстве создается OAuth-клиент типаWeb Application.
Результат:
id: ajeqqip130i1******** name: warpgate-oauth-client folder_id: b1g500m2195v******** authentication_methods: - client_secret_basic - client_secret_post status: ACTIVE profile_id: web pkce_required: trueСохраните значение поля
id, оно понадобится для создания и настройки приложения. -
Создайте секрет для OAuth-клиента:
yc iam oauth-client-secret create \ --oauth-client-id <идентификатор_OAuth-клиента>Результат:
oauth_client_secret: id: ajeq9jfrmc5t******** oauth_client_id: ajeqqip130i1******** masked_secret: yccs__939233b8ac**** created_at: "2026-09-12T10:14:17.861652377Z" secret_value: yccs__939233b8ac********Сохраните значение поля
secret_value, оно понадобится для настройки Warpgate. -
Создайте OIDC-приложение:
yc organization-manager idp application oauth application create \ --organization-id <идентификатор_организации> \ --name warpgate-oidc-app \ --description "OIDC-приложение для интеграции с Warpgate" \ --client-id <идентификатор_OAuth-клиента> \ --authorized-scopes openid,email,profile,groups \ --group-distribution-type assigned-groupsГде:
--organization-id— идентификатор организации, в которой нужно создать OIDC-приложение. Обязательный параметр.--name— имя OIDC-приложения. Обязательный параметр.--description— описание OIDC-приложения. Необязательный параметр.--client-id— идентификатор OAuth-клиента, полученный на предыдущем шаге. Обязательный параметр.--authorized-scopes— укажите те же атрибуты, которые были указаны при создании OAuth-клиента.--group-distribution-type— укажитеassigned-groups, чтобы передавать в Warpgate только группы, добавленные в приложение.
Результат:
id: ek0o663g4rs2******** name: warpgate-oidc-app organization_id: bpf2c65rqcl8******** group_claims_settings: group_distribution_type: ASSIGNED_GROUPS client_grant: client_id: ajeqqip130i1******** authorized_scopes: - openid - email - profile - groups status: ACTIVE created_at: "2026-09-12T10:51:28.790866Z" updated_at: "2026-09-12T12:37:19.274522Z"Сохраните идентификатор созданного OIDC-приложения.
Создайте группу пользователей и добавьте в нее пользователей
Объедините пользователей, которым нужен одинаковый уровень доступа в Warpgate, в группу в организации. Затем сопоставьте название группы с ролью доступа Warpgate.
Создайте группу
Создайте группу с названием warpgate-users.
Чтобы создать группу, у вас должна быть минимальная роль organization-manager.groups.editor на организацию.
-
Войдите в сервис Yandex Identity Hub
. -
На панели слева выберите
Группы. -
В правом верхнем углу страницы нажмите
Создать группу. -
Задайте название и описание группы.
Название должно быть уникальным в организации и соответствовать требованиям:
- длина — от 1 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
(Опционально) Добавьте метки:
- Нажмите Добавить метку.
- Введите метку в формате
ключ: значение. - Нажмите Enter.
-
Нажмите кнопку Создать группу.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды создания группы пользователей Yandex Identity Hub:
yc organization-manager group create --help -
Чтобы создать группу пользователей в Yandex Identity Hub, выполните команду:
yc organization-manager group create \ --name <имя_группы> \ --organization-id <идентификатор_организации> \ --description <описание_группы> \ --labels <ключ>=<значение>Где:
-
--name— имя группы пользователей. Обязательный параметр. Название должно быть уникальным в организации и соответствовать требованиям:- длина — от 1 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
--organization-id— идентификатор организации. Необязательный параметр. -
--description— текстовое описание группы пользователей. Необязательный параметр. -
--labels— список меток в формате<ключ>=<значение>. Можно указать одну или несколько меток через запятую. Необязательный параметр.
-
Terraform
Terraform распространяется под лицензией Business Source License
Подробная информация о ресурсах провайдера в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, аутентифицируйтесь соответствующим способом.
-
Опишите в конфигурационном файле параметры группы:
resource "yandex_organizationmanager_group" "my-group" { name = "<название_группы>" description = "<описание_группы>" organization_id = "<идентификатор_организации>" }Где:
-
name— название группы. Название должно быть уникальным в организации и соответствовать требованиям:- длина — от 1 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
description— описание группы. Необязательный параметр. -
organization_id— идентификатор организации, к которой нужно присоединить группу.
-
-
Создайте ресурсы:
-
В терминале перейдите в директорию с конфигурационным файлом.
-
Проверьте корректность конфигурации с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Terraform создаст все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в интерфейсе Cloud Center
или с помощью команды CLI:yc organization-manager group list \ --organization-id <идентификатор_организации> -
Воспользуйтесь методом REST API Group.create для ресурса Group или вызовом gRPC API GroupService/Create.
Добавьте пользователей в группу
По инструкции добавьте всех пользователей, которым нужен доступ в Warpgate, в группу warpgate-users.
Добавьте группу в OIDC-приложение
Чтобы пользователи из группы warpgate-users могли входить в Warpgate через созданное OIDC-приложение, а сама группа передавалась в атрибуте groups, явно добавьте эту группу в приложение.
Примечание
Управлять пользователями и группами, добавленными в OIDC-приложение, может пользователь, которому назначена роль organization-manager.oauthApplications.userAdmin или выше.
- Войдите в сервис Yandex Identity Hub
. - На панели слева выберите
Приложения и выберите приложениеwarpgate-oidc-app. - Перейдите на вкладку Пользователи и группы.
- Нажмите
Добавить пользователей. - В открывшемся окне выберите группу
warpgate-users. - Нажмите Добавить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Получите идентификатор группы
warpgate-users. -
Добавьте группу в приложение:
yc organization-manager idp application oauth application add-assignments \ --id <идентификатор_приложения> \ --subject-id <идентификатор_группы>Где:
--id— идентификатор OIDC-приложения.--subject-id— идентификатор группыwarpgate-users.
Совет
Если вы хотите более тонко настроить аутентификацию пользователей в приложениях, в том числе разрешить аутентификацию только с определенных IP-адресов, используйте политики аутентификации.
Политики аутентификации — это инструмент Yandex Identity Hub, позволяющий гибко настраивать доступ к приложениям, запрещая или разрешая аутентификацию определенным пользователям в определенных приложениях и/или с определенных IP-адресов. Подробнее читайте в разделе Политики аутентификации в Yandex Identity Hub.
Настройте интеграцию
Чтобы настроить интеграцию Warpgate с созданным OIDC-приложением, выполните настройки на стороне Yandex Identity Hub и на стороне Warpgate.
Получите параметры подключения OIDC-приложения
- Войдите в сервис Yandex Identity Hub
. - На панели слева выберите
Приложения и выберите приложениеwarpgate-oidc-app. - На вкладке Обзор в блоке Конфигурация поставщика удостоверений (IdP) разверните секцию Дополнительные атрибуты и сохраните значение параметра ClientID — Client ID.
-
Создайте секрет приложения (действие доступно только для приложений типа
Web Application).Для этого в блоке Секреты приложения нажмите кнопку Добавить секрет и в открывшемся окне:
-
(Опционально) Добавьте произвольное описание создаваемого секрета.
-
Нажмите Создать.
В окне отобразится сгенерированный секрет приложения. Сохраните полученное значение.
Важно
После обновления или закрытия страницы с информацией о приложении посмотреть секрет будет невозможно.
Если вы закрыли или обновили страницу, не сохранив сгенерированный секрет, используйте кнопку Добавить секрет, чтобы создать новый.
Чтобы удалить секрет, в списке секретов на странице OIDC-приложения в строке с нужным секретом нажмите значок
и выберите Удалить. -
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Получите информацию о созданном OIDC-приложении:
yc organization-manager idp application oauth application get <идентификатор_приложения>Сохраните значение
client_idиз блокаclient_grant— это Client ID для настройки Warpgate. -
Используйте секрет OAuth-клиента, который был сохранен при создании приложения. Если вы не сохранили секрет, создайте новый:
yc iam oauth-client-secret create \ --oauth-client-id <идентификатор_OAuth-клиента>Сохраните значение
secret_value— это Client Secret для настройки Warpgate.
Для Yandex Identity Hub issuer URL имеет вид https://kz.auth.yandex.cloud. Он потребуется для настройки Warpgate.
Настройте Redirect URI
Warpgate использует адрес вида https://<домен_warpgate>/_warpgate/api/sso/return, где <домен_warpgate> — внешний доменexternal_host конфигурационного файла.
Например, если external_host: warpgate.example.com, Redirect URI будет иметь вид:
https://warpgate.example.com/_warpgate/api/sso/return
Примечание
По умолчанию Warpgate формирует Redirect URI с символом @ (/@warpgate/api/sso/return). Yandex Identity Hub не поддерживает этот символ. Чтобы Warpgate заменил префикс @warpgate на _warpgate, укажите в конфигурации SSO-провайдера Warpgate параметр return_url_prefix: _.
Укажите полученный адрес в настройках OAuth-клиента:
-
Войдите в сервис Yandex Identity Hub
. -
На панели слева выберите
Приложения и выберите приложениеwarpgate-oidc-app. -
Справа сверху нажмите
Редактировать. -
В поле Redirect URI укажите:
https://<домен_warpgate>/_warpgate/api/sso/return -
Нажмите Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Обновите OAuth-клиент, указав Redirect URI:
yc iam oauth-client update \
--id <идентификатор_OAuth-клиента> \
--redirect-uris "https://<домен_warpgate>/_warpgate/api/sso/return"
Важно
Redirect URI в Yandex Identity Hub и Warpgate должны полностью совпадать, включая схему, домен и путь.
Создайте роль доступа в Warpgate
На стороне Warpgate создайте роль доступа
- Войдите в Warpgate под учетной записью администратора.
- В меню перейдите в раздел Config → Access roles.
- Нажмите Add a role.
- Задайте имя роли, например
user, и сохраните изменения.
На следующем шаге укажите название этой роли в параметре role_mappings конфигурационного файла Warpgate.
Настройте SSO-провайдер в конфигурационном файле Warpgate
Примечание
Подробнее о настройке единого входа в Warpgate читайте в официальной документации Warpgate
Откройте конфигурационный файл Warpgate (warpgate.yaml) и добавьте в него провайдер единого входа с типом custom:
sso_providers:
- name: idh
auto_create_users: true
return_url_prefix: _
return_url_domain: external_host
label: SSO with Identity Hub
provider:
type: custom
client_id: <client_id_OIDC-приложения>
client_secret: <секрет_OIDC-приложения>
issuer_url: https://kz.auth.yandex.cloud
scopes: ["openid", "profile", "email", "groups"]
roles_claim: groups
role_mappings:
'warpgate-users': 'user'
external_host: <домен_warpgate>
Где:
name— идентификатор провайдера.auto_create_users: true— Warpgate автоматически создает учетные записи для пользователей, впервые авторизованных через Yandex Identity Hub. Имя пользователя берется из атрибутаpreferred_username, а при его отсутствии — из атрибутаemail.return_url_prefix: _— заменяет символ@на_в Redirect URI, так как Yandex Identity Hub не поддерживает@в этом адресе.return_url_domain: external_host— Warpgate формирует Redirect URI на основе домена из параметраexternal_host.label— название кнопки входа на странице аутентификации Warpgate.provider— параметры OIDC-провайдера:type: custom— тип интеграции с произвольным OIDC-совместимым поставщиком удостоверений, в данном случае — с Yandex Identity Hub.client_idиclient_secret— Client ID и секрет OIDC-приложения, полученные ранее.issuer_url— Issuer URL Yandex Identity Hub:https://kz.auth.yandex.cloud.scopes— атрибуты пользователя, которые Warpgate запрашивает у Yandex Identity Hub. Должны совпадать с атрибутами, указанными при настройке OIDC-приложения.roles_claim: groups— атрибут ID-токена с группами пользователя. Значениеgroupsсоответствует стандартному атрибуту групп Yandex Identity Hub.role_mappings— соответствие между группами Yandex Identity Hub и ролями доступа Warpgate. В примере группаwarpgate-usersсопоставлена с рольюuser, созданной ранее. Warpgate синхронизирует только роли, указанные в этом параметре, не затрагивая остальные роли пользователя.
external_host— внешний домен экземпляра Warpgate, напримерwarpgate.example.com. Должен совпадать с доменом, указанным в Redirect URI OIDC-приложения.
Сохраните файл конфигурации и перезапустите Warpgate, чтобы применить изменения.
Убедитесь в корректной работе приложения
- Выйдите из Warpgate, если вы уже авторизованы.
- Откройте страницу входа Warpgate по адресу вашего экземпляра, например
https://warpgate.example.com. - Нажмите кнопку входа с названием из параметра
label. - На странице аутентификации Yandex Cloud войдите под пользователем, который состоит в группе
warpgate-users. - Убедитесь, что после успешной аутентификации браузер возвращается в Warpgate, а пользователь получает доступ к интерфейсу с ролью
user. - При необходимости откройте раздел Users в Warpgate и проверьте, что созданному пользователю назначена ожидаемая роль.
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы Yandex Identity Hub, удалите OIDC-приложение.
При необходимости также удалите созданную группу пользователей warpgate-users.
Бастионный хост — отдельная виртуальная машина с публичным IP-адресом в защищаемой инфраструктуре. Она позволяет устанавливать защищенные соединения с другими ресурсами этой инфраструктуры, у которых нет публичных IP-адресов. Подробнее о настройке бастионного хоста читайте в разделе Создание бастионного хоста.
Организация — это высший ресурс в иерархии ресурсной модели Yandex Cloud, который объединяет ресурсы всех остальных сервисов, а также используется для управления пользователями и параметрами их аутентификации и авторизации. Подробнее читайте в разделе Организация.
Пользователей Yandex Identity Hub можно объединять в группы, что упрощает управление доступом в Yandex Cloud. Подробнее читайте в разделе Группы пользователей.