Создать OIDC-приложение в Yandex Identity Hub
Чтобы пользователи вашей организации могли аутентифицироваться во внешних приложениях с помощью технологии единого входа по стандарту OpenID Connect
Управлять OIDC-приложениями может пользователь, которому назначена роль organization-manager.oauthApplications.admin или выше.
Создайте приложение
- Войдите в сервис Yandex Identity Hub
. - На панели слева выберите
Приложения. - В правом верхнем углу страницы нажмите
Создать приложение и в открывшемся окне:-
Выберите метод единого входа OIDC (OpenID Connect).
-
В поле Имя задайте имя создаваемого приложения. Имя должно быть уникальным в пределах организации и соответствовать требованиям:
- длина — от 1 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
В поле Каталог выберите каталог, в котором будет создан OAuth-клиент для приложения.
OAuth-клиент является необходимым компонентом при создании OIDC-приложения, создается и удаляется одновременно с OIDC-приложением и неразрывно с ним связан.
-
(Опционально) В поле Описание задайте описание приложения.
-
(Опционально) Добавьте метки:
- Нажмите Добавить метку.
- Введите метку в формате
ключ: значение. - Нажмите 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 <имя_OAuth-клиента> \ --scopes <атрибут>[,<атрибут>]Где:
--name— имя OAuth-клиента.--scopes— набор атрибутов пользователей, которые будут доступны поставщику услуг. Укажите один или несколько атрибутов через запятую в формате<атрибут1>,<атрибут2>. Возможные атрибуты:openid— идентификатор пользователя. Обязательный атрибут.profile— дополнительная информация о пользователе, такая как имя, фамилия, аватар.email— адрес электронной почты пользователя.address— место жительства пользователя.phone— номер телефона пользователя.groups— группы пользователей в организации.
Результат:
id: ajeqqip130i1******** name: test-oauth-client folder_id: b1g500m2195v******** status: ACTIVEСохраните значение поля
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, оно понадобится для настроек приложения на стороне поставщика услуг. -
Создайте OIDC-приложение:
yc organization-manager idp application oauth application create \ --organization-id <идентификатор_организации> \ --name <имя_приложения> \ --description <описание_приложения> \ --client-id <идентификатор_OAuth-клиента> \ --authorized-scopes <атрибут>[,<атрибут>] \ --group-distribution-type all-groups \ --labels <ключ>=<значение>[,<ключ>=<значение>]Где:
-
--organization-id— идентификатор организации, в которой нужно создать OIDC-приложение. Обязательный параметр. -
--name— имя OIDC-приложения. Обязательный параметр. Имя должно быть уникальным в пределах организации и соответствовать требованиям:- длина — от 1 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
--description— описание OIDC-приложения. Необязательный параметр. -
--client-id— идентификатор OAuth-клиента, полученный на втором шаге. Обязательный параметр. -
--authorized-scopes— укажите те же атрибуты, которые были указаны при создании OAuth-клиента. -
--group-distribution-type— если при создании OAuth-клиента вы указали атрибутgroups, укажите, какие группы пользователей будут переданы поставщику услуг. Возможные значения:-
all-groups— поставщику услуг будут переданы все группы, в которые входит пользователь.Максимальное количество передаваемых групп — 1 000. Если количество групп, в которые входит пользователь, превышает это число, на сторону поставщика услуг будет передана только первая тысяча групп.
-
assigned-groups— из всех групп, в которые входит пользователь, поставщику услуг будут переданы только те группы, которые будут явно заданы. -
none— поставщику услуг не будут переданы группы, в которые входит пользователь.
-
-
--labels— список меток. Необязательный параметр. Можно указать одну или несколько меток через запятую в формате<ключ1>=<значение1>,<ключ2>=<значение2>.
Результат:
id: ek0o663g4rs2******** name: oidc-app organization_id: bpf2c65rqcl8******** group_claims_settings: group_distribution_type: NONE client_grant: client_id: ajeqqip130i1******** authorized_scopes: - openid status: ACTIVE created_at: "2025-10-21T10:51:28.790866Z" updated_at: "2025-10-21T12:37:19.274522Z" -
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле Terraform параметры OAuth-клиента:
resource "yandex_iam_oauth_client" "example_oauth_client" { name = "<имя_OAuth-клиента>" folder_id = "<идентификатор_каталога>" scopes = ["<атрибут1>", "<атрибут2>"] }Где:
name— имя OAuth-клиента.folder_id— идентификатор каталога, в котором будет создан OAuth-клиент.scopes— набор атрибутов пользователей, которые будут доступны поставщику услуг. Укажите один или несколько атрибутов в квадратных скобках. Возможные атрибуты:openid— идентификатор пользователя. Обязательный атрибут.profile— дополнительная информация о пользователе, такая как имя, фамилия, аватар.email— адрес электронной почты пользователя.address— место жительства пользователя.phone— номер телефона пользователя.groups— группы пользователей в организации.
Более подробную информацию о параметрах ресурса
yandex_iam_oauth_clientсм. в документации провайдера. -
Опишите в конфигурационном файле Terraform параметры секрета OAuth-клиента:
resource "yandex_iam_oauth_client_secret" "example_oauth_client_secret" { oauth_client_id = "<идентификатор_OAuth-клиента>" }Где:
oauth_client_id— идентификатор OAuth-клиента, для которого создается секрет.
Более подробную информацию о параметрах ресурса
yandex_iam_oauth_client_secretсм. в документации провайдера. -
Опишите в конфигурационном файле Terraform параметры OIDC-приложения:
resource "yandex_organizationmanager_idp_application_oauth_application" "example_oidc_app" { organization_id = "<идентификатор_организации>" name = "<имя_приложения>" description = "<описание_приложения>" client_grant = { client_id = "<идентификатор_OAuth-клиента>" authorized_scopes = ["<атрибут1>", "<атрибут2>"] } group_claims_settings = { group_distribution_type = "ALL_GROUPS" } labels = { "<ключ1>" = "<значение1>" "<ключ2>" = "<значение2>" } }Где:
-
organization_id— идентификатор организации, в которой нужно создать OIDC-приложение. Обязательный параметр. -
name— имя OIDC-приложения. Обязательный параметр. Имя должно быть уникальным в пределах организации и соответствовать требованиям:- длина — от 1 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
description— описание OIDC-приложения. Необязательный параметр. -
client_grant— параметры подключения к OAuth-клиенту:client_id— идентификатор OAuth-клиента. Обязательный параметр.authorized_scopes— укажите те же атрибуты, которые были указаны при создании OAuth-клиента.
-
group_claims_settings— настройки передачи групп пользователей поставщику услуг:group_distribution_type— если при создании OAuth-клиента вы указали атрибутgroups, укажите, какие группы пользователей будут переданы поставщику услуг. Возможные значения:ALL_GROUPS— поставщику услуг будут переданы все группы, в которые входит пользователь.ASSIGNED_GROUPS— из всех групп, в которые входит пользователь, поставщику услуг будут переданы только те группы, которые будут явно заданы.NONE— поставщику услуг не будут переданы группы, в которые входит пользователь.
-
labels— список меток. Необязательный параметр.
Более подробную информацию о параметрах ресурса
yandex_organizationmanager_idp_application_oauth_applicationсм. в документации провайдера. -
-
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Terraform создаст все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в Yandex Identity Hub
или с помощью команды CLI:yc organization-manager idp application oauth application list --organization-id <идентификатор_организации> -
- Воспользуйтесь методом REST API OAuthClient.Create для ресурса OAuthClient или вызовом gRPC API OAuthClientService/Create.
- Воспользуйтесь методом REST API OAuthClientSecret.Create для ресурса OAuthClientSecret или вызовом gRPC API OAuthClientSecretService/Create.
- Воспользуйтесь методом REST API Application.Create для ресурса Application или вызовом gRPC API ApplicationService/Create.
Настройте приложение
Чтобы настроить интеграцию внешнего приложения с созданным OIDC-приложением в Identity Hub, выполните настройки на стороне поставщика услуг и на стороне Identity Hub.
Задайте настройки интеграции на стороне поставщика услуг
Значения настроек интеграции, которые нужно задать на стороне поставщика услуг, доступны на странице с информацией о приложении в интерфейсе Cloud Center
В зависимости от возможностей вашего поставщика услуг вы можете выполнить необходимые настройки вручную или автоматически, указав URL с конфигурацией:
-
Войдите в сервис Yandex Identity Hub
. -
На панели слева выберите
Приложения и выберите нужное OIDC-приложение. -
На вкладке Обзор в блоке Конфигурация поставщика удостоверений (IdP) разверните секцию Дополнительные атрибуты и скопируйте значения параметров, которые необходимо задать на стороне поставщика услуг:
ClientID— уникальный идентификатор приложения.Authorization endpoint— адрес в Yandex Cloud, на который поставщик услуг будет перенаправлять пользователя для прохождения аутентификации.Token endpoint— адрес, на который от внешнего приложения поступает запрос на получение ID-токена и токена доступа.Userinfo endpoint— адрес, по которому внешнее приложение может получить атрибуты пользователя.
-
В блоке Секреты приложения нажмите кнопку Добавить секрет и в открывшемся окне:
- (Опционально) Добавьте произвольное описание создаваемого секрета.
- Нажмите Создать.
В окне отобразится сгенерированный секрет приложения. Сохраните полученное значение.
Важно
После обновления или закрытия страницы с информацией о приложении посмотреть секрет будет невозможно.
Если вы закрыли или обновили страницу, не сохранив сгенерированный секрет, используйте кнопку Добавить секрет, чтобы создать новый.
Чтобы удалить секрет, в списке секретов на странице OIDC-приложения в строке с нужным секретом нажмите значок
и выберите Удалить. -
На стороне поставщика услуг настройте интеграцию с OIDC-приложением Identity Hub, указав скопированные параметры и сгенерированный секрет. При необходимости обратитесь к документации или в службу поддержки вашего поставщика услуг.
-
Войдите в сервис Yandex Identity Hub
. -
На панели слева выберите
Приложения и выберите нужное OIDC-приложение. -
На вкладке Обзор в блоке Конфигурация поставщика удостоверений (IdP) скопируйте значение поля OpenID Configuration.
По ссылке доступны значения всех настроек, которые необходимо задать на стороне поставщика услуг (за исключением секрета).
-
В блоке Секреты приложения нажмите кнопку Добавить секрет и в открывшемся окне:
- (Опционально) Добавьте произвольное описание создаваемого секрета.
- Нажмите Создать.
В окне отобразится сгенерированный секрет приложения. Сохраните полученное значение.
Важно
После обновления или закрытия страницы с информацией о приложении посмотреть секрет будет невозможно.
Если вы закрыли или обновили страницу, не сохранив сгенерированный секрет, используйте кнопку Добавить секрет, чтобы создать новый.
Чтобы удалить секрет, в списке секретов на странице OIDC-приложения в строке с нужным секретом нажмите значок
и выберите Удалить. -
Если ваш поставщик услуг поддерживает конфигурирование приложения с помощью URL с конфигурацией, на стороне поставщика услуг настройте интеграцию с OIDC-приложением Identity Hub, указав скопированные ссылку и секрет. При необходимости обратитесь к документации или в службу поддержки вашего поставщика услуг.
Настройте OIDC-приложение на стороне Identity Hub
Прежде чем настраивать OIDC-приложение на стороне Identity Hub, получите адрес (адреса) Redirect URI у вашего поставщика услуг. Затем перейдите к настройкам OIDC-приложения в Identity Hub:
- Войдите в сервис Yandex Identity Hub
. - На панели слева выберите
Приложения и выберите нужное OIDC-приложение. -
Справа сверху нажмите кнопку
Редактировать и в открывшемся окне:-
В поле Redirect URI укажите полученный у поставщика услуг адрес.
Используйте кнопку Добавить URI, чтобы указать одновременно несколько адресов Redirect URI.
-
В поле Scopes выберите набор атрибутов пользователей, которые будут доступны поставщику услуг:
-
openid (идентификатор пользователя)— идентификатор пользователя. Обязательный параметр. -
email (адрес электронной почты)— адрес электронной почты пользователя. -
profile (полное имя, имя, фамилия, аватар и др.)— дополнительная информация о пользователе. -
groups (группы пользователя в организации)— группы пользователей организации, участником которых является аутентифицирующийся пользователь. Возможные значения:-
Все группы— поставщику услуг будут переданы все группы, в которые входит пользователь.Максимальное количество передаваемых групп — 1 000. Если количество групп, в которые входит пользователь, превышает это число, на сторону поставщика услуг будет передана только первая тысяча групп.
-
Только назначенные группы— из всех групп, в которые входит пользователь, поставщику услуг будут переданы только те группы, которые явно заданы на вкладке Пользователи и группы OIDC-приложения.
-
-
-
Нажмите кнопку Сохранить.
-
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
-
Посмотрите описание команды CLI для настройки OAuth-клиента:
yc iam oauth-client update --help -
Выполните команду:
yc iam oauth-client update \ --id <идентификатор_OAuth-клиента> \ --redirect-uris <адрес>[,<адрес>]Где:
--id— идентификатор OAuth-клиента.--redirect-uris— укажите полученный у поставщика услуг адрес или несколько адресов в формате<адрес1>,<адрес2>.
Результат:
id: ajeqqip130i1******** name: test-oauth-client redirect_uris: - https://example.com - https://example.ru folder_id: b1g500m2195v******** status: ACTIVE
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
В конфигурационном файле Terraform для ресурса
yandex_iam_oauth_clientукажите параметрredirect_uris:resource "yandex_iam_oauth_client" "example_oauth_client" { name = "<имя_OAuth-клиента>" folder_id = "<идентификатор_каталога>" ... redirect_uris = ["<адрес1>", "<адрес2>"] }Где:
name— имя OAuth-клиента.folder_id— идентификатор каталога, в котором будет создан OAuth-клиент.redirect_uris— укажите полученный у поставщика услуг адрес или несколько адресов в квадратных скобках.
Более подробную информацию о параметрах ресурса
yandex_iam_oauth_clientсм. в документации провайдера. -
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Проверить изменения ресурсов и их настройки можно в Yandex Identity Hub
или с помощью команды CLI:yc iam oauth-client get <идентификатор_OAuth-клиента> -
Воспользуйтесь методом REST API OAuthClient.Update для ресурса OAuthClient или вызовом gRPC API OAuthClientService/Update.
Настройте пользователей и группы
Чтобы пользователи вашей организации могли аутентифицироваться во внешнем приложении с помощью OIDC-приложения Identity Hub, необходимо явно добавить в OIDC-приложение нужных пользователей и/или группы пользователей:
Примечание
Управлять пользователями и группами, добавленными в OIDC-приложение, может пользователь, которому назначена роль organization-manager.oauthApplications.userAdmin или выше.
-
Войдите в сервис Yandex Identity Hub
. -
На панели слева выберите
Приложения и выберите нужное OIDC-приложение. -
Перейдите на вкладку Пользователи и группы.
-
Чтобы добавить в приложение пользователя или группу пользователей:
- Нажмите кнопку
Добавить пользователей. - В открывшемся окне выберите нужного пользователя или группу пользователей.
- Нажмите кнопку Добавить.
- Нажмите кнопку
-
Чтобы удалить пользователя или группу пользователей из приложения:
- В списке пользователей и групп в строке с нужным пользователем или группой нажмите значок
и выберите Удалить. - Подтвердите удаление.
- В списке пользователей и групп в строке с нужным пользователем или группой нажмите значок
Если у вас еще нет интерфейса командной строки 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 ek0omvvcb9vv********Где:
--id— идентификатор приложения.--subject-id— идентификатор нужного пользователя или группы пользователей.
Результат:
assignment_deltas: - action: ADD assignment: subject_id: ajetvnq2mil8********
-
-
Чтобы удалить пользователя или группу пользователей из приложения:
-
Посмотрите описание команды CLI для удаления пользователей из приложения:
yc organization-manager idp application oauth application remove-assignments --help -
Выполните команду:
yc organization-manager idp application oauth application remove-assignments \ --id <идентификатор_приложения> \ --subject-id <идентификатор_пользователя>Где:
--id— идентификатор OIDC-приложения.--subject-id— идентификатор нужного пользователя или группы пользователей.
Результат:
assignment_deltas: - action: REMOVE assignment: subject_id: ajetvnq2mil8********
-
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле параметры назначения пользователей и групп приложению:
resource "yandex_organizationmanager_idp_application_oauth_application_assignment" "example_assignment" { application_id = "<идентификатор_приложения>" subject_id = "<идентификатор_пользователя_или_группы>" }Где:
application_id— идентификатор OIDC-приложения.subject_id— идентификатор нужного пользователя или группы пользователей.
Более подробную информацию о параметрах ресурса
yandex_organizationmanager_idp_application_oauth_application_assignmentсм. в документации провайдера. -
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Terraform создаст все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
или с помощью команды CLI:yc organization-manager idp application oauth application list-assignments <идентификатор_приложения> -
Воспользуйтесь методом REST API Application.UpdateAssignments для ресурса Application или вызовом gRPC API ApplicationService/UpdateAssignments.
Убедитесь в корректной работе приложения
Чтобы убедиться в корректной работе OIDC-приложения и интеграции с поставщиком услуг, выполните аутентификацию во внешнем приложении от имени одного из добавленных в приложение пользователей.