Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex Managed Service for OpenSearch
  • Начало работы
    • Все инструкции
      • Информация об имеющихся кластерах
      • Создание кластера
        • Подключение к кластеру
        • Настройка SAML-аутентификации
      • Остановка и запуск кластера
      • Управление резервными копиями
      • Настройка доступа к Object Storage
      • Удаление кластера
    • Управление пользователями
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Вопросы и ответы

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

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

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

Статья создана
Yandex Cloud
Обновлена 21 марта 2025 г.
  • Настройте провайдер идентификации
  • Настройте 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.kz/_opendistro/_security/saml/acs
    

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

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

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

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

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

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

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

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

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

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

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

Важно

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

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

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

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

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

    • 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, срок жизни сессии не ограничен (значение по умолчанию).

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

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

  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.yandexcloud.kz/managed-opensearch/v1/clusters/<идентификатор_кластера>/auth' \
        --data '{
                    "settings": {
                        "saml": {
                            "enabled": "<включить_SSO:_true_или_false>",
                            "idpEntityId": "<идентификатор_эмитента_IdP>",
                            "idpMetadataFile": "<файл_с_метаданными>",
                            "spEntityId": "<URI_приложения_SP_Entity_ID>",
                            "dashboardsUrl": "<URL_хоста_Dashboards>",
                            "rolesKey": "<параметр_с_ролями_в_ответе_SAML>",
                            "subjectKey": "<параметр_с_темой_в_ответе_SAML>",
                            "jwtDefaultExpirationTimeout": "<срок_жизни_сессии>"
                        }
                    }
                }'
    

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

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

    • 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:_true_или_false>",
                    "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.yandexcloud.kz:443 \
    yandex.cloud.mdb.opensearch.v1.ClusterService.UpdateAuthSettings
    

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

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

    • 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.

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

Предыдущая
Подключение к кластеру
Следующая
Изменение настроек кластера
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»