Создать OIDC-приложение в Yandex Identity Hub для интеграции с Cloud.ru
Cloud.ru
Чтобы пользователи вашей организации могли аутентифицироваться в Cloud.ru с помощью технологии единого входа по стандарту OpenID Connect, создайте OIDC-приложение в Yandex Identity Hub и настройте его на стороне Yandex Identity Hub и на стороне Cloud.ru.
Управлять OIDC-приложениями может пользователь, которому назначена роль organization-manager.oauthApplications.admin или выше.
Чтобы дать доступ пользователям вашей организации в Cloud.ru:
Создайте приложение
- Войдите в сервис Yandex Identity Hub
. - На панели слева выберите
Приложения. - Нажмите
Создать приложение и в открывшемся окне:-
Выберите метод единого входа OIDC (OpenID Connect).
-
В поле Тип приложения выберите тип Web Application.
OIDC-приложения типа
Web Applicationоптимально подходят для аутентификации пользователей во внешних веб-приложениях, имеющих серверную часть (бэкенд), в которой может безопасно храниться секрет приложения. Подробнее о типах OIDC-приложений читайте в разделе Типы OIDC-приложений в Yandex Identity Hub. -
В поле Имя задайте имя создаваемого приложения:
cloud-ru-oidc-app. -
В поле Каталог выберите каталог, в котором будет создан OAuth-клиент для приложения.
-
(Опционально) В поле Описание задайте описание приложения.
-
(Опционально) Добавьте метки:
- Нажмите Добавить метку.
- Введите метку в формате
ключ: значение. - Нажмите Enter.
-
Нажмите Создать приложение.
-
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды CLI для создания OIDC-приложения:
yc organization-manager idp application oauth application create --help -
Создайте OAuth-клиент:
yc iam oauth-client create \ --name cloud-ru-oauth-client \ --scopes openid,email,profile \ --profile-id web \ --pkce-required=falseГде:
--name— имя OAuth-клиента.--scopes— набор атрибутов пользователей, которые будут доступны Cloud.ru. Указаны атрибуты:openid— идентификатор пользователя. Обязательный атрибут.email— адрес электронной почты пользователя.profile— дополнительная информация о пользователе, такая как имя, фамилия, аватар.
-
--profile-id— тип OAuth-клиента (OIDC-приложения). В руководстве создается OAuth-клиент типаWeb Application. -
--pkce-required=false— параметр, позволяющий отключить требование Yandex Identity Hub к внешнему приложению использовать расширение безопасности PKCE.
Результат:
id: ajeqqip130i1******** name: cloud-ru-oauth-client folder_id: b1g500m2195v******** authentication_methods: - client_secret_basic - client_secret_post status: ACTIVE profile_id: webСохраните значение поля
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: "2025-10-21T10:14:17.861652377Z" secret_value: yccs__939233b8ac********Сохраните значение поля
secret_value, оно понадобится для настройки Cloud.ru. -
Создайте OIDC-приложение:
yc organization-manager idp application oauth application create \ --organization-id <идентификатор_организации> \ --name cloud-ru-oidc-app \ --description "OIDC-приложение для интеграции с Cloud.ru" \ --client-id <идентификатор_OAuth-клиента> \ --authorized-scopes openid,email,profile \ --group-distribution-type noneГде:
--organization-id— идентификатор организации, в которой нужно создать OIDC-приложение. Обязательный параметр.--name— имя OIDC-приложения. Обязательный параметр.--description— описание OIDC-приложения. Необязательный параметр.--client-id— идентификатор OAuth-клиента, полученный на втором шаге. Обязательный параметр.--authorized-scopes— укажите те же атрибуты, которые были указаны при создании OAuth-клиента.--group-distribution-type— укажитеnone, так как группы пользователей не передаются в Cloud.ru.
Результат:
id: ek0o663g4rs2******** name: cloud-ru-oidc-app organization_id: bpf2c65rqcl8******** group_claims_settings: group_distribution_type: NONE client_grant: client_id: ajeqqip130i1******** authorized_scopes: - openid - email - profile status: ACTIVE created_at: "2025-10-21T10:51:28.790866Z" updated_at: "2025-10-21T12:37:19.274522Z"
Настройте интеграцию
Чтобы настроить интеграцию Cloud.ru с созданным OIDC-приложением в Yandex Identity Hub, выполните настройки на стороне Cloud.ru и на стороне Yandex Identity Hub.
Настройте OIDC-приложение на стороне Yandex Identity Hub
Получите учетные данные приложения
-
Войдите в сервис Yandex Identity Hub
. -
На панели слева выберите
Приложения и выберите нужное OIDC-приложение. -
На вкладке Обзор в блоке Конфигурация поставщика удостоверений (IdP) скопируйте значения параметров, которые необходимо задать на стороне Cloud.ru:
ClientID— уникальный идентификатор приложения.OpenID Configuration— URL с конфигурацией всех необходимых для настройки интеграции параметров.
-
Разверните секцию Дополнительные атрибуты и скопируйте дополнительные параметры:
Authorization endpoint— URL, на который поставщик услуг будет перенаправлять пользователя для прохождения аутентификации.Token endpoint— URL, на который от внешнего приложения поступает запрос на получение ID-токена и токена доступа.Userinfo endpoint— URL, по которому внешнее приложение может получить атрибуты пользователя.
-
Создайте секрет приложения (действие доступно только для приложений типа
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 <идентификатор_приложения>Где
<идентификатор_приложения>— это ID OIDC-приложения, полученный при создании.В результате вы получите информацию о приложении, включая:
id: ek0o663g4rs2******** name: cloud-ru-oidc-app organization_id: bpf2c65rqcl8******** client_grant: client_id: ajeqqip130i1******** authorized_scopes: - openid - email - profileСохраните значение
client_id— это Client ID для настройки Cloud.ru. -
Получите URL с конфигурацией OpenID Connect Discovery:
yc organization-manager idp application oauth application get <идентификатор_приложения> \ --format json | jq -r '.client_grant.issuer_uri'Результат будет выглядеть так:
https://auth.yandex.cloud/oauth/<идентификатор_OAuth-клиента>Сохраните этот URL — это OpenID Connect Discovery URL для настройки Cloud.ru.
-
Используйте секрет OAuth-клиента, который был сохранен при создании приложения на предыдущем шаге. Если вы не сохранили секрет, создайте новый:
yc iam oauth-client-secret create \ --oauth-client-id <идентификатор_OAuth-клиента>Сохраните значение
secret_valueиз результата команды — это Client Secret для настройки Cloud.ru.
Настройте OIDC-приложение на стороне Cloud.ru
-
Войдите в консоль
Cloud.ru. -
Перейдите в раздел Администрирование, на вкладку Федерации.
-
Нажмите Создать федерацию и выберите тип протокола OpenID.
-
Заполните название и описание федерации.
-
Задайте длительность сессии.
Примечание
Максимальное время жизни сессии SSO — от 30 минут до 7 дней. При отсутствии активности сессия автоматически завершается, после чего требуется повторная аутентификация.
-
Заполните поля, используя значения из настройки OIDC‑приложения в Yandex Identity Hub:
- Auth URL — значение поля Authorization endpoint.
- Userinfo URL — значение поля Userinfo endpoint.
- Token URL — значение поля Token endpoint.
- Logout URL — значение параметра
end_session_endpointизOpenID Configuration. - Client ID — значение поля ClientID.
- Client Secret — значение блока Секреты приложения.
- JWKS URI — значение параметра
jwks_uriизOpenID Configuration.
-
Нажмите на кнопку Создать.
-
В списке федераций найдите созданную федерацию и скопируйте её ID. Сохраните этот идентификатор — он понадобится в дальнейшем.
Настройте Redirect URI на стороне Yandex Identity Hub
-
Войдите в сервис Yandex Identity Hub
. -
На панели слева выберите
Приложения и выберите нужное OIDC-приложение. -
Справа сверху нажмите
Редактировать и в открывшемся окне:-
В поле Redirect URI укажите эндпоинт аутентификации для вашего экземпляра Cloud.ru в формате:
https://id.cloud.ru/auth/system/idp/<ID_федерации_Cloud.ru>/callbackНапример:
https://id.cloud.ru/auth/system/idp/5ca1bc33-7e8a-711a-b29a-a8a121eda1cd/callback. -
В блоке Безопасность OAuth/OIDC отключите опцию Требовать PKCE, чтобы приложение Yandex Identity Hub при обмене данными не требовало от внешнего приложения использовать расширение безопасности PKCE.
PKCE — это расширение безопасности, применяемое в стандарте OAuth 2.0 с целью минимизировать риски перехвата аутентификационных данных. Подробнее читайте в разделе PKCE.
-
Нажмите Сохранить.
-
Если у вас еще нет интерфейса командной строки 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://id.cloud.ru/auth/system/idp/<ID_федерации_Cloud.ru>/callback"Где:
<идентификатор_OAuth-клиента>— идентификатор OAuth-клиента, полученный при его создании.--redirect-uris— эндпоинт аутентификации для вашего экземпляра Cloud.ru. Например:https://id.cloud.ru/auth/system/idp/5ca1bc33-7e8a-711a-b29a-a8a121eda1cd/callback.
Результат:
id: ajeiu3otac08******** name: cloud-ru-oauth-client redirect_uris: - https://id.cloud.ru/auth/system/idp/5ca1bc33-7e8a-711a-b29a-a8a121eda1cd/callback scopes: - openid - email - profile folder_id: b1gkd6dks6i1******** authentication_methods: - client_secret_basic - client_secret_post status: ACTIVE profile_id: web
Добавьте пользователей
Чтобы пользователи вашей организации могли аутентифицироваться в Cloud.ru с помощью OIDC‑приложения Yandex Identity Hub, необходимо явно добавить их учётные записи как в само приложение, так и в федерацию Cloud.ru.
Примечание
Управлять пользователями и группами, добавленными в OIDC-приложение, может пользователь, которому назначена роль organization-manager.oauthApplications.userAdmin или выше.
Добавьте пользователей в OIDC‑приложение Yandex Identity Hub
Совет
Если вы хотите более тонко настроить аутентификацию пользователей в приложениях, в том числе разрешить аутентификацию только с определенных IP-адресов, используйте политики аутентификации.
Политики аутентификации — это инструмент Yandex Identity Hub, позволяющий гибко настраивать доступ к приложениям, запрещая или разрешая аутентификацию определенным пользователям в определенных приложениях и/или с определенных IP-адресов. Подробнее читайте в разделе Политики аутентификации в Yandex Identity Hub.
- Войдите в сервис Yandex Identity Hub
. - На панели слева выберите
Приложения и выберите нужное приложение. - Перейдите на вкладку Пользователи и группы.
- Нажмите
Добавить пользователей. - В открывшемся окне выберите требуемого пользователя.
- Нажмите Добавить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Получите идентификатор пользователя.
-
Чтобы добавить в приложение пользователя:
-
Посмотрите описание команды CLI для добавления пользователей в приложение:
yc organization-manager idp application oauth application add-assignments --help -
Выполните команду:
yc organization-manager idp application oauth application add-assignments \ --id <идентификатор_приложения> \ --subject-id <идентификатор_пользователя>Где:
--id— идентификатор OIDC-приложения.--subject-id— идентификатор нужного пользователя.
Результат:
assignment_deltas: - action: ADD assignment: subject_id: ajetvnq2mil8********
-
Внимание
Убедитесь, что атрибут email пользователя заполнен и совпадает с адресом, который будет использован при создании учётной записи в федерации Cloud.ru.
Добавьте пользователей в федерацию Cloud.ru
- Войдите в консоль
Cloud.ru. - Откройте раздел Пользователи и перейдите на вкладку Федеративные пользователи.
- В правом верхнем углу нажмите Добавить пользователя федерации.
- Выберите федерацию, в которую нужно включить пользователя.
- Укажите email пользователя.
- Выдайте пользователю необходимые права доступа к проектам и платформам.
- Нажмите Добавить.
Убедитесь в корректной работе приложения
Чтобы проверить корректность работы OIDC‑приложения и его интеграцию с Cloud.ru, выполните аутентификацию в Cloud.ru под учётной записью одного из пользователей, добавленных в приложение.
Для этого:
- В браузере откройте страницу входа в консоль
Cloud.ru. - Если вы были авторизованы, выйдите из профиля.
- На форме входа нажмите кнопку SSO.
- В появившемся диалоге введите ID созданной вами федерации и нажмите Войти.
- На странице аутентификации Yandex Cloud укажите адрес электронной почты и пароль пользователя.
- Убедитесь, что вы успешно аутентифицировались в Cloud.ru.