Создать OIDC-приложение в Yandex Identity Hub для интеграции с Grafana OSS
Примечание
Функциональность находится на стадии Preview.
Grafana Open Source Software (OSS)
Чтобы пользователи вашей организации могли аутентифицироваться в Grafana OSS с помощью технологии единого входа по стандарту OpenID Connect
Управлять OIDC-приложениями может пользователь, которому назначена роль organization-manager.oauthApplications.admin или выше.
Чтобы дать доступ пользователям вашей организации в Grafana OSS:
Создайте приложение
- Войдите в сервис Yandex Identity Hub
. - На панели слева выберите
Приложения. - В правом верхнем углу страницы нажмите
Создать приложение и в открывшемся окне:-
Выберите метод единого входа OIDC (OpenID Connect).
-
В поле Имя задайте имя создаваемого приложения:
grafana-oss-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 grafana-oss-oauth-client \ --scopes openid,email,profile,groupsГде:
--name— имя OAuth-клиента.--scopes— набор атрибутов пользователей, которые будут доступны Grafana OSS. Указаны атрибуты:openid— идентификатор пользователя. Обязательный атрибут.email— адрес электронной почты пользователя.profile— дополнительная информация о пользователе, такая как имя, фамилия, аватар.groups— группы пользователей в организации.
Результат:
id: ajeqqip130i1******** name: grafana-oss-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, оно понадобится для настройки Grafana OSS. -
Создайте OIDC-приложение:
yc organization-manager idp application oauth application create \ --organization-id <идентификатор_организации> \ --name grafana-oss-oidc-app \ --description "OIDC-приложение для интеграции с Grafana OSS" \ --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, чтобы передавать в Grafana OSS только группы, добавленные в приложение.
Результат:
id: ek0o663g4rs2******** name: grafana-oss-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: "2025-10-21T10:51:28.790866Z" updated_at: "2025-10-21T12:37:19.274522Z"
Настройте интеграцию
Чтобы настроить интеграцию Grafana OSS с созданным OIDC-приложением в Identity Hub, выполните настройки на стороне Grafana OSS и на стороне Identity Hub.
Настройте OIDC-приложение на стороне Yandex Identity Hub
Получите учетные данные приложения
-
Войдите в сервис Yandex Identity Hub
. -
На панели слева выберите
Приложения и выберите нужное OIDC-приложение. -
На вкладке Обзор в блоке Конфигурация поставщика удостоверений (IdP) разверните секцию Дополнительные атрибуты и скопируйте значения параметров, которые необходимо задать на стороне Grafana OSS:
ClientID— уникальный идентификатор приложения.OpenID Configuration— URL с конфигурацией всех необходимых для настройки интеграции параметров.
-
В блоке Секреты приложения нажмите кнопку Добавить секрет и в открывшемся окне:
- (Опционально) Добавьте произвольное описание создаваемого секрета.
- Нажмите Создать.
В окне отобразится сгенерированный секрет приложения. Сохраните полученное значение.
Важно
После обновления или закрытия страницы с информацией о приложении посмотреть секрет будет невозможно.
Если вы закрыли или обновили страницу, не сохранив сгенерированный секрет, используйте кнопку Добавить секрет, чтобы создать новый.
Чтобы удалить секрет, в списке секретов на странице 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: grafana-oss-oidc-app organization_id: bpf2c65rqcl8******** client_grant: client_id: ajeqqip130i1******** authorized_scopes: - openid - email - profile - groupsСохраните значение
client_id— это Client ID для настройки Grafana OSS. -
Получите URL с конфигурацией OpenID Connect Discovery:
yc organization-manager idp application oauth application get <идентификатор_приложения> \ --format json | jq -r '.client_grant.issuer_uri'Результат будет выглядеть так:
https://kz.auth.yandex.cloud/oauth/<идентификатор_OAuth-клиента>Сохраните этот URL — это OpenID Connect Discovery URL для настройки Grafana OSS.
-
Используйте секрет OAuth-клиента, который был сохранен при создании приложения на предыдущем шаге. Если вы не сохранили секрет, создайте новый:
yc iam oauth-client-secret create \ --oauth-client-id <идентификатор_OAuth-клиента>Сохраните значение
secret_valueиз результата команды — это Client Secret для настройки Grafana OSS.
Настройте Redirect URI
- Войдите в сервис Yandex Identity Hub
. - На панели слева выберите
Приложения и выберите нужное OIDC-приложение. - Справа сверху нажмите
Редактировать и в открывшемся окне:-
В поле Redirect URI укажите эндпоинт аутентификации для вашего экземпляра Grafana OSS в формате:
<URL_экземпляра_Grafana_OSS>/login/generic_oauth -
В поле Scopes отметьте атрибут
groups (группы пользователя в организации)и выберитеТолько назначенные группы. -
Нажмите Сохранить.
-
Обновите OIDC-приложение, указав Redirect URI:
yc organization-manager idp application oauth application update <идентификатор_приложения> \
--redirect-uris "<URL_экземпляра_Grafana_OSS>/login/generic_oauth"
Где:
<идентификатор_приложения>— ID OIDC-приложения, полученный при создании.--redirect-uris— эндпоинт аутентификации для вашего экземпляра Grafana OSS. Например:https://your-domain/login/generic_oauth.
Результат:
id: ek0o663g4rs2********
name: grafana-oss-oidc-app
organization_id: bpf2c65rqcl8********
redirect_uris:
- https://your-domain/login/generic_oauth
Настройте OIDC-приложение на стороне Grafana OSS
Чтобы настроить аутентификацию по стандарту OpenID Connect на стороне Grafana OSS, в левой панели выберите раздел Administration и в нем подраздел Authentication. В основном окне выберите Generic OAuth.
В настройках Generic OAuth:
- В поле Display name укажите:
OpenID Connect. - В поле Client ID укажите значение, скопированное при настройке OIDC-приложения в Identity Hub в поле ClientID.
- В поле Client Secret укажите значение, скопированное при настройке OIDC-приложения в Identity Hub в блоке Секреты приложения.
- В поле Scopes введите последовательно:
openid,email,profile,groups. - Нажмите Enter OpenID Connect Discovery URL и в открывшемся окне укажите URL, скопированный при настройке OIDC-приложения в Identity Hub в поле OpenID Configuration.
- Allow sign up: активируйте для автоматического создания пользователей при первом входе.
Настройте сопоставление ролей
Примечание
Для сопоставления ролей в Grafana OSS используются JMESPath выражения. См. примеры использования JMESPath выражений в документации Grafana
- Разверните секцию User mapping.
- В поле Role attribute path введите JMESPath выражение для сопоставления ролей.
Если пользователю, который находится в группе grafana-users, нужно сопоставить роль Editor, то в поле Role attribute path нужно ввести следующее выражение:
contains(groups[*], 'grafana-users') && 'Editor' || 'Viewer'
Выражение означает, что если пользователь принадлежит группе grafana-users, ему будет назначена роль Editor, иначе — роль Viewer.
Настройте Redirect URI на стороне Grafana OSS
Необходимо, чтобы Redirect URI, который вы ранее указали на стороне Yandex Identity Hub, и URI, который Grafana OSS отправляет в Yandex Identity Hub, совпадали.
Для этого:
-
Откройте конфигурационный файл Grafana
. -
В секции
[server]установите:root_url = https://your-domain -
Перезапустите
Grafana OSS.
Добавьте пользователя
Чтобы пользователи вашей организации могли аутентифицироваться в Grafana OSS с помощью OIDC-приложения Identity Hub, необходимо явно добавить в OIDC-приложение нужных пользователей и/или группы пользователей.
Примечание
Управлять пользователями и группами, добавленными в OIDC-приложение, может пользователь, которому назначена роль organization-manager.oidcApplications.userAdmin или выше.
Добавьте пользователя в приложение:
- Войдите в сервис 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********
-
Убедитесь в корректной работе приложения
Чтобы убедиться в корректной работе OIDC-приложения и интеграции с Grafana OSS, выполните аутентификацию в Grafana OSS от имени одного из добавленных в приложение пользователей.
Для этого:
- В браузере перейдите по адресу вашего экземпляра Grafana OSS (например,
https://your-domain). - Если вы были авторизованы в Grafana OSS, выйдите из профиля.
- На странице авторизации Grafana OSS нажмите Sign in with OpenID Connect.
- На странице авторизации Yandex Cloud укажите email и пароль пользователя. Пользователь должен быть добавлен в приложение или состоять в группе, добавленной в приложение.
- Убедитесь, что вы авторизовались в Grafana OSS.
- Если вы настроили сопоставление ролей, перейдите в профиль пользователя в Grafana OSS и убедитесь, что в блоке Organizations отображается соответствующая роль.