Настройка SAML-аутентификации
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-аутентификацию:
- Настройте провайдер идентификации.
- Настройте кластер Managed Service for OpenSearch на использование этого провайдера для SSO.
- Настройте роли кластера для пользователей SSO на стороне провайдера.
Настройте провайдер идентификации
-
Создайте приложение на стороне провайдера.
-
Укажите 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
-
Укажите SP Entity ID (Audience URI).
Используйте URL со специальным FQDN кластера:
https://c-<идентификатор_кластера>rw.mdb.yandexcloud.net/
Пример URL:
https://c-e4ut2....rw.mdb.yandexcloud.net/
-
Укажите Name ID Format:
email
, если вы используете федерацию удостоверений с провайдером Keycloak.persistent
— для остальных провайдеров.
-
Получите данные, необходимые для настройки SAML SSO на стороне OpenSearch:
- Скопируйте информацию об эмитенте провайдера идентификации (Identity Provider Issuer).
- Сохраните файл с метаданными провайдера в формате XML.
Эти данные потребуются при настройке SSO для кластера.
Настройте SSO для кластера
Важно
Некорректные настройки могут привести к неработоспособности кластера.
-
В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for OpenSearch. -
Нажмите на имя нужного кластера и выберите вкладку Источники аутентификации.
-
Нажмите кнопку Настроить.
-
Укажите параметры внешнего источника аутентификации:
-
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, в котором хранятся роли. Если не настроен, роли не используются.
-
subject_key — параметр в ответе SAML, в котором хранится тема. Если параметр не настроен, используется параметр
NameID
. -
Таймаут сессии — срок жизни сессии в минутах. Укажите его, если провайдер идентификации не установил свой таймаут.
Если значение отсутствует или указан
0
, срок жизни сессии не ограничен (значение по умолчанию). -
Активировать — активировать ли источник аутентификации после создания.
-
-
Нажмите кнопку Сохранить.
-
Сконвертируйте файл с метаданными, полученный от эмитента провайдера идентификации, в формат Base64.
-
Чтобы задать настройки провайдера идентификации на стороне кластера, воспользуйтесь методом REST API updateAuthSettings для ресурса Cluster или вызовом gRPC API ClusterService/UpdateAuthSettings и передайте в запросе:
-
Идентификатор кластера в параметре
clusterId
.Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Значение
true
в параметреenabled
. -
Идентификатор эмитента провайдера аутентификации (Identity Provider Issuer), который был получен при настройке провайдера идентификации, в параметре
idpEntityId
. -
Путь к файлу с метаданными в формате Base64 в параметре
idpMetadataFile
. -
URI приложения SP Entity ID (Audience URI) в параметре
spEntityId
. URI должен соответствовать указанному при настройке провайдера идентификации. -
URL хоста OpenSearch с ролью
DASHBOARDS
в параметреdashboardsUrl
. -
(Опционально) Параметр в ответе SAML, в котором хранятся роли, в параметре
rolesKey
. -
(Опционально) Параметр в ответе SAML, в котором хранится тема, в параметре
subjectKey
. -
(Опционально) Срок жизни сессии в минутах в параметре
jwtDefaultExpirationTimeout
. Укажите его, если провайдер идентификации не установил свой таймаут.Если значение отсутствует или указан
0
, срок жизни сессии не ограничен (значение по умолчанию).
-
Примечание
Подробнее о SAML-атрибутах см. в документации OpenSearch
Настройте роли для SSO
Чтобы получить доступ к кластеру через SSO, свяжите роли кластера с пользователями SSO на стороне провайдера:
- Сопоставьте роли
пользователей OpenSearch на стороне провайдера идентификации с ролями в кластере. Выполните эту операцию от имени пользователяadmin
одним из способов:- С помощью OpenSearch Dashboards
. - С помощью API OpenSearch
.
- С помощью OpenSearch Dashboards
- На стороне провайдера идентификации создайте пользователя, который удовлетворяет указанным сопоставлениям ролей в OpenSearch.
- Разрешите этому пользователю доступ к созданному ранее приложению.
Чтобы авторизоваться в OpenSearch под новым пользователем, перейдите на страницу OpenSearch Dashboards.