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

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

  • Перед началом работы
  • Настройте провайдер идентификации
  • Настройте SSO для кластера
  • Настройте роли для SSO
  • Проверьте работу SSO
  1. Практические руководства
  2. Аутентификация в OpenSearch Dashboards с помощью Keycloak

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

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

Вы можете использовать Keycloak для аутентификации пользователей, которые работают с OpenSearch Dashboards в кластере Managed Service for OpenSearch.

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

  1. Настройте провайдер идентификации.
  2. Настройте SSO для кластера.
  3. Настройте роли для SSO.
  4. Проверьте работу SSO.

Примечание

Это практическое руководство проверялось для кластера OpenSearch 2.8 и Keycloak 24.0.

Перед началом работыПеред началом работы

  1. Убедитесь, что вы можете подключиться к OpenSearch Dashboards с использованием реквизитов пользователя admin.

    В этом практическом руководстве предполагается, что веб-интерфейс OpenSearch Dashboards доступен по URL:

    https://c-cat0adul1fj0********.rw.mdb.yandexcloud.net/
    
  2. Убедитесь, что вы можете работать с Keycloak:

    • Проверьте, что есть доступ к Keycloak.

    • Проверьте, что есть доступ к нужному realm.

    • Проверьте, что есть достаточные права в этом realm для управления:

      • Ролями.
      • Пользователями и группами.
      • Клиентами (так в терминологии Keycloak называются приложения, с помощью которых происходит аутентификация).

    В этом практическом руководстве предполагается, что:

    • Для управления Keycloak используется аккаунт суперадминистратора, который позволяет выполнять любые операции в любом realm.

    • Все операции выполняются в realm с именем master.

    • Keycloak доступен по URL:

      http://keycloak.example.com:8080
      
    • Консоль администратора Keycloak доступна по URL:

      http://keycloak.example.com:8080/admin/
      

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

  1. Подключитесь к консоли управления Keycloak и выберите realm с именем master.

  2. Создайте клиент:

    1. На панели слева выберите Clients. Нажмите кнопку Create client.

    2. В поле Client type выберите вариант SAML.

    3. В поле Client ID укажите идентификатор клиента.

      Этот идентификатор должен совпадать с URL для подключения к OpenSearch Dashboards:

      https://c-cat0adul1fj0********.rw.mdb.yandexcloud.net/
      
    4. Нажмите кнопку Next.

    5. Укажите ACS URL в полях:

      • Home URL;
      • Valid redirect URIs;
      • IDP Initiated SSO Relay State.

      ACS URL имеет вид:

      https://c-cat0adul1fj0********.rw.mdb.yandexcloud.net/_opendistro/_security/saml/acs
      
    6. Нажмите кнопку Save.

  3. Убедитесь, что использование клиента разрешено: опция в правом верхнем углу должна быть включена (Enabled).

  4. На вкладке Settings настройте параметры клиента следующим образом:

    • SAML Capabilities:

      • Name ID format — email.
      • Force name ID format — убедитесь, что эта опция включена.
      • Force POST binding — убедитесь, что эта опция включена.
      • Include AuthnStatement — убедитесь, что эта опция включена.
    • Signature and Encryption:

      • Sign documents — убедитесь, что эта опция включена.
      • Sign assertions — убедитесь, что эта опция включена.
      • Signature algorithm — RSA_SHA256.
      • SAML signature key name — CERT_SUBJECT.
      • Canonicalization method — EXCLUSIVE.
  5. Нажмите кнопку Save.

  6. На вкладке Keys отключите требование подписи сообщений от клиента.

    Для этого отключите опцию Client signature required.

  7. На вкладке Client scopes настройте сопоставление ролей для клиента:

    1. Нажмите на URL для подключения к OpenSearch Dashboards с суффиксом -dedicated.

    2. На вкладке Mappers нажмите Configure a new mapper. Выберите из списка маппер Role list.

    3. Укажите следующие настройки маппера:

      • Name — любое имя маппера, например OpenSearch Mapper.
      • Role attribute name — roles.
      • SAML Attribute NameFormat — Basic;
      • Single Role Attribute — убедитесь, что эта опция включена.
    4. Нажмите кнопку Save.

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

  1. Получите метаданные для созданного ранее клиента:

    1. Подключитесь к консоли управления Keycloak и выберите realm с именем master.

    2. На панели слева выберите Clients.

    3. Нажмите на URL для подключения к OpenSearch Dashboards.

    4. В правом верхнем углу раскройте меню Action и выберите пункт Download adapter config.

    5. Выберите формат Mod Auth Mellon Files и нажмите кнопку Download.

      Будет загружен архив.

    6. Извлеките файл idp-metadata.xml из этого архива. В этом файле содержатся необходимые метаданные.

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

    Совет

    Далее приведены инструкции для консоли управления, но можно использовать и другие доступные интерфейсы Yandex Cloud.

    Чтобы настроить источник аутентификации Keycloak:

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

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

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

    4. Укажите нужные значения настроек:

      • idp_entity_id — идентификатор провайдера.

        Для Keycloak этот идентификатор совпадает с URL, который указывает на realm с именем master:

        http://keycloak.example.com:8080/realms/master
        
      • idp_metadata_file — выберите и загрузите файл с метаданными, извлеченный из архива.

      • sp_entity_id — идентификатор поставщика услуг.

        Используйте тот же идентификатор, который был указан при настройке клиента Keycloak в поле Client ID:

        https://c-cat0adul1fj0********.rw.mdb.yandexcloud.net/
        
      • kibana_url — URL для подключения к OpenSearch Dashboards.

      • roles_key — атрибут, в котором хранится перечень ролей.

        Укажите тот же атрибут, который был настроен для маппера Keycloak — roles.

      • subject_key — оставьте поле пустым.

      • Таймаут сессии — оставьте значение 0.

      • Активировать — убедитесь, что эта опция включена.

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

  3. Дождитесь, когда статус кластера изменится на Running. Применение настроек может занять несколько минут.

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

  1. Настройте Keycloak так, чтобы его пользователям назначались нужные роли:

    1. Подключитесь к консоли управления Keycloak и выберите realm с именем master.

    2. Создайте роль:

      1. На панели слева выберите Realm roles. Нажмите кнопку Create role.

      2. Введите имя роли в поле Role name.

        Далее используется имя роли kc_demo_role.

      3. Нажмите кнопку Save.

    3. Создайте пользователя и настройте его:

      1. На панели слева выберите Users. Нажмите кнопку Add user.

      2. Укажите реквизиты пользователя:

        • Username — имя аккаунта.

          Далее используется имя аккаунта kc_demo_user.

        • Email — адрес электронной почты.

          Далее используется адрес kc_demo_user@example.com.

        • Email verified — убедитесь, что эта настройка включена.

          Примечание

          Для упрощения изложения в этом практическом руководстве эта настройка включена, чтобы не проходить верификацию по email при первом логине.

      3. Нажмите кнопку Create.

      4. На вкладке Credentials нажмите кнопку Set password и задайте пароль.

        Также отключите настройку Temporary.

        Примечание

        Для упрощения изложения в этом практическом руководстве эта настройка отключена, чтобы не менять пароль при первом логине.

    4. Создайте группу и настройте ее:

      1. На панели слева выберите Groups и нажмите кнопку Create group.

      2. Введите имя группы и нажмите кнопку Create.

        Далее используется имя группы kc_demo_group.

      3. Нажмите на имя группы, чтобы открыть ее свойства.

      4. На вкладке Members нажмите кнопку Add member, выберите пользователя kc_demo_user, затем нажмите кнопку Add.

      5. На вкладке Role mapping нажмите кнопку Assign role, включите фильтр Filter by realm roles, выберите роль kc_demo_role из списка, затем нажмите кнопку Assign.

  2. Сопоставьте роли кластера OpenSearch с ролями на стороне Keycloak. Это позволит получить доступ к кластеру через SSO.

    Чтобы сопоставить роли:

    1. Подключитесь к OpenSearch Dashboards от имени пользователя admin.

    2. В меню слева выберите OpenSearch Plugins → Security.

    3. На панели слева выберите Roles.

    4. Настройте сопоставления ролей:

      1. Нажмите на имя нужной роли.

        Далее предполагается, что была выбрана роль kibana_user.

      2. Перейдите на вкладку Mapped users.

      3. Нажмите кнопку Manage mapping.

      4. В блоке Backend roles введите имя роли в Keycloak, с которой будет сопоставлена роль в OpenSearch, и нажмите кнопку Map.

        Далее предполагается, что была выбрана роль kc_demo_role.

Теперь пользователи Keycloak, добавленные в группу kc_demo_group, будут получать роль kc_demo_role.

Если при подключении к OpenSearch Dashboards аутентификация пройдет успешно, то пользователь с ролью kc_demo_role получит роль kibana_user в OpenSearch.

Проверьте работу SSOПроверьте работу SSO

  1. Откройте браузер в гостевом режиме или режиме инкогнито.

    Это действие нужно выполнять с компьютера, который имеет доступ к Keycloak.

  2. Подключитесь к OpenSearch Dashboards.

    На странице логина нажмите кнопку Log in with single sign-on вместо ввода имени пользователя и пароля.

    Если все настроено правильно, браузер перенаправит вас на страницу аутентификации в Keycloak.

  3. Введите реквизиты пользователя kc_demo_user и нажмите кнопку Sign in.

    После успешной аутентификации Keycloak перенаправит вас на ACS URL, затем вы будете перенаправлены на главную страницу OpenSearch Dashboards.

  4. Убедитесь, что пользователю назначена роль kibana_user в OpenSearch.

    Для этого нажмите на аватар пользователя в верхнем правом углу и выберите пункт View roles and identities. Будут показаны назначенные пользователю роли.

  5. Убедитесь, что вы можете выполнять все действия, которые разрешены для роли kibana_user.

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

Предыдущая
Настройка политики индексов в Managed Service for OpenSearch
Следующая
Использование плагина yandex-lemmer
Проект Яндекса
© 2025 ООО «Яндекс.Облако»