Перейти к основному содержимому
Версия: 2.0.x

Аутентификация с Security Integration

Интегрируйте Selena с внешними системами аутентификации, используя security integration.

Создав security integration в вашем cluster Selena, вы можете предоставить доступ вашего внешнего сервиса аутентификации к Selena. С security integration вам не нужно вручную создавать пользователей в Selena. Когда пользователь пытается войти, используя внешнюю идентификацию, Selena будет использовать соответствующую security integration согласно конфигурации в authentication_chain для аутентификации пользователя. После успешной аутентификации и разрешения входа Selena создаёт виртуального пользователя в сессии для выполнения последующих операций.

Обратите внимание, что если вы используете интеграцию безопасности для настройки внешнего метода аутентификации, вы также должны интегрировать Selena с Apache Ranger, чтобы включить внешнюю авторизацию. В настоящее время интеграция Security Integration с встроенной авторизацией Selena не поддерживается.

Вы также можете включить Group Provider для Selena, чтобы получать доступ к информации о группах во внешних системах аутентификации, что позволяет создавать, аутентифицировать и авторизовывать группы пользователей в Selena.

Ручное создание и управление пользователями с внешними сервисами аутентификации также поддерживается в случае специфических крайних случаев. Для получения дополнительных инструкций см. См. также.

Создание security integration

В настоящее время интеграция безопасности Selena поддерживает следующие системы аутентификации:

  • LDAP
  • JSON Web Token (JWT)
  • OAuth 2.0
примечание

Selena не выполняет проверку подключения при создании security integration.

Создание security integration с LDAP

Синтаксис

CREATE SECURITY INTEGRATION <security_integration_name>
PROPERTIES (
"type" = "authentication_ldap_simple",
"authentication_ldap_simple_server_host" = "",
"authentication_ldap_simple_server_port" = "",
"authentication_ldap_simple_bind_base_dn" = "",
"authentication_ldap_simple_user_search_attr" = ""
"authentication_ldap_simple_bind_root_dn" = "",
"authentication_ldap_simple_bind_root_pwd" = "",
"authentication_ldap_simple_ssl_conn_allow_insecure" = "{true | false}",
"authentication_ldap_simple_ssl_conn_trust_store_path" = "",
"authentication_ldap_simple_ssl_conn_trust_store_pwd" = "",
"comment" = ""
)

Параметры

security_integration_name
  • Обязательно: Да
  • Описание: Имя security integration.
    ПРИМЕЧАНИЕ
    Имя security integration глобально уникально. Вы не можете указать этот параметр как native.
type
  • Обязательно: Да
  • Описание: Тип security integration. Укажите значение authentication_ldap_simple.
authentication_ldap_simple_server_host
  • Обязательно: Нет
  • Описание: IP-адрес вашего сервиса LDAP. По умолчанию: 127.0.0.1.
authentication_ldap_simple_server_port
  • Обязательно: Нет
  • Описание: Порт вашего сервиса LDAP. По умолчанию: 389.
authentication_ldap_simple_bind_base_dn
  • Обязательно: Да
  • Описание: Базовое Distinguished Name (DN) пользователя LDAP, для которого cluster выполняет поиск.
authentication_ldap_simple_user_search_attr
  • Обязательно: Да
  • Описание: Атрибут пользователя, используемый для входа в сервис LDAP, например, uid.
примечание

Механизм передачи DN: LDAP security integration поддерживает функциональность передачи DN.

  • После успешной аутентификации система записывает как логин пользователя, так и полный DN.
  • При комбинировании с Group Provider информация DN автоматически передаётся в Group Provider.
  • Если ldap_user_search_attr не настроен для Group Provider, DN будет использоваться для сопоставления групп.
  • Этот механизм особенно подходит для сложных сред LDAP, таких как Microsoft AD.

Для получения дополнительной информации см. механизм сопоставления DN в Аутентификация групп пользователей.

authentication_ldap_simple_bind_root_dn
  • Обязательно: Да
  • Описание: Admin DN вашего сервиса LDAP.
authentication_ldap_simple_bind_root_pwd
  • Обязательно: Да
  • Описание: Пароль администратора вашего сервиса LDAP.
authentication_ldap_simple_ssl_conn_allow_insecure
  • Обязательно: Нет
  • Описание: Разрешать ли незашифрованные соединения с сервером LDAP. Значение по умолчанию: true. Установка этого значения в false указывает, что для доступа к LDAP требуется шифрование SSL.
authentication_ldap_simple_ssl_conn_trust_store_path
  • Обязательно: Нет
  • Описание: Локальный путь для хранения SSL CA сертификата сервера LDAP. Поддерживает форматы pem и jks. Вам не нужно устанавливать этот параметр, если сертификат выдан доверенной организацией.
ldap_ssl_conn_trust_store_pwd
  • Обязательно: Нет
  • Описание: Пароль, используемый для доступа к локально хранящемуся SSL CA сертификату сервера LDAP. Сертификаты формата pem не требуют пароля. Только сертификаты формата jsk требуют пароль.
group_provider
  • Обязательно: Нет
  • Описание: Имя group provider(ов), которые будут объединены с security integration. Несколько group provider разделяются запятыми. После установки Selena будет записывать информацию о группах пользователя под каждым указанным провайдером при входе. Поддерживается начиная с v1.5.2. Подробные инструкции по включению Group Provider см. в Аутентификация групп пользователей.
permitted_groups
  • Обязательно: Нет
  • Описание: Имя группы (групп), членам которых разрешён вход в Selena. Несколько групп разделяются запятыми. Убедитесь, что указанные группы могут быть получены объединёнными group provider(ами). Поддерживается начиная с v1.5.2.
comment
  • Обязательно: Нет
  • Описание: Описание security integration.

Создание интеграции безопасности с JWT

Синтаксис

CREATE SECURITY INTEGRATION <security_integration_name>
PROPERTIES (
"type" = "authentication_jwt",
"jwks_url" = "",
"principal_field" = "",
"required_issuer" = "",
"required_audience" = ""
"comment" = ""
);

Параметры

security_integration_name
  • Обязательный: Да
  • Описание: Имя интеграции безопасности.
    ПРИМЕЧАНИЕ
    Имя интеграции безопасности глобально уникально. Вы не можете указать этот параметр как native.
type
  • Обязательный: Да
  • Описание: Тип интеграции безопасности. Укажите его как jwt.
jwks_url
  • Обязательный: Да
  • Описание: URL-адрес службы JSON Web Key Set (JWKS) или путь к локальному файлу в каталоге fe/conf.
principal_field
  • Обязательный: Да
  • Описание: Строка, используемая для идентификации поля, указывающего субъект (sub) в JWT. Значение по умолчанию — sub. Значение этого поля должно совпадать с именем пользователя для входа в Selena.
required_issuer
  • Обязательный: Нет
  • Описание: Список строк, используемых для идентификации издателей (iss) в JWT. JWT считается действительным, только если одно из значений в списке совпадает с издателем JWT.
required_audience
  • Обязательный: Нет
  • Описание: Список строк, используемых для идентификации аудитории (aud) в JWT. JWT считается действительным, только если одно из значений в списке совпадает с аудиторией JWT.
comment
  • Обязательный: Нет
  • Описание: Описание интеграции безопасности.

Создание интеграции безопасности с OAuth 2.0

Синтаксис

CREATE SECURITY INTEGRATION <security_integration_name>
PROPERTIES (
"type" = "authentication_oauth2",
"auth_server_url" = "",
"token_server_url" = "",
"client_id" = "",
"client_secret" = "",
"redirect_url" = "",
"jwks_url" = "",
"principal_field" = "",
"required_issuer" = "",
"required_audience" = ""
"comment" = ""
)

Параметры

security_integration_name
  • Обязательный: Да
  • Описание: Имя интеграции безопасности.
    ПРИМЕЧАНИЕ
    Имя интеграции безопасности глобально уникально. Вы не можете указать этот параметр как native.
auth_server_url
  • Обязательный: Да
  • Описание: URL авторизации. URL-адрес, на который будет перенаправлен браузер пользователя для начала процесса авторизации OAuth 2.0.
token_server_url
  • Обязательный: Да
  • Описание: URL-адрес конечной точки на сервере авторизации, от которой Selena получает токен доступа.
client_id
  • Обязательный: Да
  • Описание: Публичный идентификатор клиента Selena.
client_secret
  • Обязательный: Да
  • Описание: Секрет, используемый для авторизации клиента Selena на сервере авторизации.
redirect_url
  • Обязательный: Да
  • Описание: URL-адрес, на который будет перенаправлен браузер пользователя после успешной аутентификации OAuth 2.0. Код авторизации будет отправлен на этот URL. В большинстве случаев его необходимо настроить как http://<selena_fe_url>:<fe_http_port>/api/oauth2.
type
  • Обязательный: Да
  • Описание: Тип интеграции безопасности. Укажите его как authentication_oauth2.
jwks_url
  • Обязательный: Да
  • Описание: URL-адрес службы JSON Web Key Set (JWKS) или путь к локальному файлу в каталоге fe/conf.
principal_field
  • Обязательный: Да
  • Описание: Строка, используемая для идентификации поля, указывающего субъект (sub) в JWT. Значение по умолчанию — sub. Значение этого поля должно совпадать с именем пользователя для входа в Selena.
required_issuer
  • Обязательный: Нет
  • Описание: Список строк, используемых для идентификации издателей (iss) в JWT. JWT считается действительным, только если одно из значений в списке совпадает с издателем JWT.
required_audience
  • Обязательный: Нет
  • Описание: Список строк, используемых для идентификации аудитории (aud) в JWT. JWT считается действительным, только если одно из значений в списке совпадает с аудиторией JWT.
comment
  • Обязательный: Нет
  • Описание: Описание интеграции безопасности.

Настройка цепочки аутентификации

После создания security integration она добавляется в ваш cluster Selena как новый метод аутентификации. Вы должны включить security integration, установив порядок методов аутентификации через динамический параметр конфигурации FE authentication_chain.

ADMIN SET FRONTEND CONFIG (
"authentication_chain" = "<security_integration_name>[... ,]"
);
примечание
  • Selena приоритизирует нативную аутентификацию для локальных пользователей. Если локального пользователя с таким же именем не существует, аутентификация выполняется в порядке, настроенном в authentication_chain. Если вход с использованием нативного метода аутентификации не удаётся, cluster попытается использовать следующий метод аутентификации в указанном порядке.
  • Вы можете указать несколько security integration в authentication_chain, за исключением OAuth 2.0 security integration. Вы не можете указать несколько OAuth 2.0 security integration или одну вместе с другими security integration.

Вы можете проверить значение authentication_chain, используя следующий запрос:

ADMIN SHOW FRONTEND CONFIG LIKE 'authentication_chain';

Управление security integrations

Изменение security integration

Вы можете изменить конфигурацию существующей security integration, используя следующий запрос:

ALTER SECURITY INTEGRATION <security_integration_name> SET
(
"key"="value"[, ...]
)
примечание

Вы не можете изменить type security integration.

Удаление security integration

Вы можете удалить существующую security integration, используя следующий запрос:

DROP SECURITY INTEGRATION <security_integration_name>

Просмотр security integration

Вы можете просмотреть все security integration в вашем cluster, используя следующий запрос:

SHOW SECURITY INTEGRATIONS;

Пример:

SHOW SECURITY INTEGRATIONS;
+--------+--------+---------+
| Name | Type | Comment |
+--------+--------+---------+
| LDAP1 | LDAP | NULL |
+--------+--------+---------+
ПараметрОписание
NameИмя security integration.
TypeТип security integration.
CommentОписание security integration. NULL возвращается, когда описание не указано для security integration.

Вы можете проверить детали security integration, используя следующий запрос:

SHOW CREATE SECURITY INTEGRATION <integration_name>

Пример:

SHOW CREATE SECURITY INTEGRATION LDAP1;

+----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Security Integration | Create Security Integration |
+----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| LDAP1 | CREATE SECURITY INTEGRATION LDAP1
PROPERTIES (
"type" = "authentication_ldap_simple",
"authentication_ldap_simple_server_host" = "",
"authentication_ldap_simple_server_port" = "",
"authentication_ldap_simple_bind_base_dn" = "",
"authentication_ldap_simple_user_search_attr" = ""
"authentication_ldap_simple_bind_root_dn" = "",
"authentication_ldap_simple_bind_root_pwd" = "",
"authentication_ldap_simple_ssl_conn_allow_insecure" = "{true | false}",
"authentication_ldap_simple_ssl_conn_trust_store_path" = "",
"authentication_ldap_simple_ssl_conn_trust_store_pwd" = "",
"comment" = ""
)|
+----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
примечание

ldap_bind_root_pwd маскируется при выполнении SHOW CREATE SECURITY INTEGRATION.

Подключение к Selena через интеграцию безопасности

См. также