Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • Yandex Neurosupport
    • Yandex Cloud Detection and Response
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • Cloud Desktop
    • GOST Gateway
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • SourceCraft
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • Serverless Integrations
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Managed Service for OpenSearch
  • Начало работы
    • Все инструкции
      • Предварительная настройка
      • FQDN хостов
      • Подключение из приложений
      • Примеры кода
      • Настройка SAML-аутентификации
    • Управление пользователями
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Вопросы и ответы

В этой статье:

  • Настройте провайдер идентификации
  • Настройте SSO для кластера
  • Настройте роли для SSO
  • Примеры интеграции с провайдерами
  1. Пошаговые инструкции
  2. Подключение
  3. Настройка SAML-аутентификации

Настройка SAML-аутентификации

Статья создана
Yandex Cloud
Обновлена 22 июля 2026 г.
Открыть в Markdown
  • Настройте провайдер идентификации
  • Настройте SSO для кластера
  • Настройте роли для SSO
  • Примеры интеграции с провайдерами

SAML (Security Assertion Markup Language) — это язык разметки для обмена данными аутентификации и авторизации между сторонами. SAML позволяет реализовать систему единого входа (Single Sign-On, SSO), с помощью которой можно переключаться между приложениями без повторной аутентификации.

При работе с SAML и SSO кластер Managed Service for OpenSearch получает сведения от провайдера идентификации (Identity Provider, IdP). Подробнее о SAML и SSO в документации OASIS.

Managed Service for OpenSearch поддерживает все SAML 2.0-совместимые провайдеры идентификации.

Чтобы настроить SAML-аутентификацию:

  1. Настройте провайдер идентификации.
  2. Настройте кластер Managed Service for OpenSearch на использование этого провайдера для SSO.
  3. Настройте роли кластера для пользователей SSO на стороне провайдера.

Настройте провайдер идентификацииНастройте провайдер идентификации

  1. Создайте приложение на стороне провайдера.

  2. Укажите Assertion Consumer Service (ACS) URL.

    Используйте URL со специальным FQDN кластера:

    https://c-<идентификатор_кластера_OpenSearch>.rw.mdb.yandexcloud.net/_opendistro/_security/saml/acs
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

    Пример URL: https://c-e4ut2....rw.mdb.yandexcloud.net/_opendistro/_security/saml/acs

  3. Укажите SP Entity ID (Audience URI).

    Используйте URL со специальным FQDN кластера:

    https://c-<идентификатор_кластера>rw.mdb.yandexcloud.net/
    

    Пример URL: https://c-e4ut2....rw.mdb.yandexcloud.net/

  4. Укажите Name ID Format:

    • email, если вы используете федерацию удостоверений с провайдером Keycloak.
    • persistent — для остальных провайдеров.
  5. Получите данные, необходимые для настройки SAML SSO на стороне OpenSearch:

    • Скопируйте информацию об эмитенте провайдера идентификации (Identity Provider Issuer).
    • Сохраните файл с метаданными провайдера в формате XML.

    Эти данные потребуются при настройке SSO для кластера.

Настройте SSO для кластераНастройте SSO для кластера

Важно

Некорректные настройки могут привести к неработоспособности кластера.

Консоль управления
REST API
gRPC API
  1. В консоли управления перейдите на страницу каталога.

  2. Перейдите в сервис Managed Service for OpenSearch.

  3. Нажмите на имя нужного кластера и выберите вкладку Источники аутентификации.

  4. Нажмите кнопку Настроить.

  5. Укажите параметры внешнего источника аутентификации:

    • idp_entity_id — информация об эмитенте провайдера идентификации (Identity Provider Issuer), которая получена при настройке провайдера идентификации.

    • idp_metadata_file — файл с метаданными провайдера в формате XML, который получен при настройке провайдера идентификации.

    • sp_entity_id — URI-идентификатор приложения SP Entity ID (Audience URI). Должен соответствовать указанному при настройке провайдера идентификации.

    • kibana_url — URL со специальным FQDN кластера. Значение совпадает с sp_entity_id.

    • roles_key — имя параметра в ответе SAML, в котором хранятся роли. Ответ SAML приходит от провайдера идентификации. Если параметр не настроен, роли не используются.

    • subject_key — имя параметра в ответе SAML, в котором хранится тема. Ответ SAML приходит от провайдера идентификации. Если параметр не настроен, используется параметр NameID.

    • Таймаут сессии — срок жизни сессии в минутах. Укажите его, если провайдер идентификации не установил свой таймаут.

      Если значение отсутствует или указан 0, срок жизни сессии не ограничен (значение по умолчанию).

    • Активировать — активировать ли источник аутентификации после создания.

  6. Нажмите кнопку Сохранить.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.UpdateAuthSettings и выполните запрос, например, с помощью cURL:

    curl \
        --request PUT \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.cloud.yandex.net/managed-opensearch/v1/clusters/<идентификатор_кластера>/auth' \
        --data '{
                    "settings": {
                        "saml": {
                            "enabled": "<включить_SSO>",
                            "idpEntityId": "<идентификатор_эмитента_IdP>",
                            "idpMetadataFile": "<файл_с_метаданными>",
                            "spEntityId": "<URI_приложения_SP_Entity_ID>",
                            "dashboardsUrl": "<URL_хоста_Dashboards>",
                            "rolesKey": "<параметр_с_ролями_в_ответе_SAML>",
                            "subjectKey": "<параметр_с_темой_в_ответе_SAML>",
                            "jwtDefaultExpirationTimeout": "<срок_жизни_сессии>"
                        }
                    }
                }'
    

    Где settings — набор настроек SSO. Содержат блок saml со следующими параметрами:

    • enabled — включение SSO: true или false.

    • idpEntityId — идентификатор эмитента провайдера аутентификации (Identity Provider Issuer), который был получен при настройке провайдера идентификации.

    • idpMetadataFile — путь к файлу с метаданными в формате Base64.

    • spEntityId — URI приложения SP Entity ID (Audience URI). URI должен соответствовать указанному при настройке провайдера идентификации.

    • dashboardsUrl — URL хоста с ролью DASHBOARDS.

    • rolesKey — имя параметра в ответе SAML, в котором хранятся роли. Ответ SAML приходит от провайдера идентификации. Если параметр не настроен, роли не используются.

    • subjectKey — имя параметра в ответе SAML, в котором хранится тема. Ответ SAML приходит от провайдера идентификации. Если параметр не настроен, используется параметр NameID.

    • jwtDefaultExpirationTimeout — срок жизни сессии в минутах. Укажите его, если провайдер идентификации не установил свой таймаут.

      Если значение отсутствует или указан 0, срок жизни сессии не ограничен (значение по умолчанию).

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService.UpdateAuthSettings и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/opensearch/v1/cluster_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "settings": {
                "saml": {
                    "enabled": "<включить_SSO>",
                    "idp_entity_id": "<идентификатор_эмитента_IdP>",
                    "idp_metadata_file": "<файл_с_метаданными>",
                    "sp_entity_id": "<URI_приложения_SP_Entity_ID>",
                    "dashboards_url": "<URL_хоста_Dashboards>",
                    "roles_key": "<параметр_с_ролями_в_ответе_SAML>",
                    "subject_key": "<параметр_с_темой_в_ответе_SAML>",
                    "jwt_default_expiration_timeout": "<срок_жизни_сессии>"
                }
            }
        }' \
    mdb.api.cloud.yandex.net:443 \
    yandex.cloud.mdb.opensearch.v1.ClusterService.UpdateAuthSettings
    

    Где settings — набор настроек SSO. Содержат блок saml со следующими параметрами:

    • enabled — включение SSO: true или false.

    • idp_entity_id — идентификатор эмитента провайдера аутентификации (Identity Provider Issuer), который был получен при настройке провайдера идентификации.

    • idp_metadata_file — путь к файлу с метаданными в формате Base64.

    • sp_entity_id — URI приложения SP Entity ID (Audience URI). URI должен соответствовать указанному при настройке провайдера идентификации.

    • dashboards_url — URL хоста с ролью DASHBOARDS.

    • roles_key — имя параметра в ответе SAML, в котором хранятся роли. Ответ SAML приходит от провайдера идентификации. Если параметр не настроен, роли не используются.

    • subject_key — имя параметра в ответе SAML, в котором хранится тема. Ответ SAML приходит от провайдера идентификации. Если параметр не настроен, используется параметр NameID.

    • jwt_default_expiration_timeout — срок жизни сессии в минутах. Укажите его, если провайдер идентификации не установил свой таймаут.

      Если значение отсутствует или указан 0, срок жизни сессии не ограничен (значение по умолчанию).

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Примечание

Подробнее о SAML-атрибутах в документации OpenSearch.

Настройте роли для SSOНастройте роли для SSO

Чтобы получить доступ к кластеру через SSO, свяжите роли кластера с пользователями SSO на стороне провайдера:

  1. Сопоставьте роли пользователей OpenSearch на стороне провайдера идентификации с ролями в кластере. Выполните эту операцию от имени пользователя admin одним из способов:
    • С помощью OpenSearch Dashboards.
    • С помощью API OpenSearch.
  2. На стороне провайдера идентификации создайте пользователя, который удовлетворяет указанным сопоставлениям ролей в OpenSearch.
  3. Разрешите этому пользователю доступ к созданному ранее приложению.

Чтобы аутентифицироваться в OpenSearch под новым пользователем, перейдите на страницу OpenSearch Dashboards.

Примеры интеграции с провайдерамиПримеры интеграции с провайдерами

Аутентификация в OpenSearch Dashboards с помощью Keycloak.

Была ли статья полезна?

Предыдущая
Примеры кода
Следующая
Управление пользователями
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»