Аутентификация LDAP в StarRocks
StarRocks поддерживает LDAP-аутентификацию. Ее можно настроить для узлов Frontend (FE) и использовать при подключении клиентов StarRocks по протоколу MySQL.
Процесс аутентификации происходит поэтапно:
-
Клиент отправляет имя пользователя и пароль StarRocks на FE.
-
StarRocks выполняет поиск пользователя в каталоге LDAP с использованием настроенного атрибута поиска пользователей.
-
StarRocks получает DN пользователя и выполняет привязку к LDAP с использованием этого DN и пароля, указанного пользователем.
-
Если LDAP-аутентификация проходит успешно, StarRocks аутентифицирует пользователя и применяет привилегии, назначенные соответствующему пользователю StarRocks.
Включение LDAP
Чтобы включить аутентификацию LDAP, выполните следующие действия в ADCM:
-
На странице Clusters выберите свой кластер ADH и перейдите на вкладку Services в меню кластера.
-
Выберите сервис StarRocks и активируйте группу параметров Enable LDAP.
-
Заполните параметры LDAP для Active Directory и перезапустите StarRocks.
В этом примере используются следующие значения:
| Параметр | Описание | Значение |
|---|---|---|
authentication_ldap_simple_server_host |
Имя хоста LDAP-сервера Active Directory. В этом примере на этом сервере есть пользователь |
ad01.adsw.io |
authentication_ldap_simple_server_port |
Порт сервиса LDAP |
389 |
authentication_ldap_simple_ssl_conn_allow_insecure |
Разрешает LDAP-соединение без шифрования |
true |
authentication_ldap_simple_bind_base_dn |
Базовый DN, используемый для поиска пользователей |
ou=Peoples,dc=ad,dc=ranger-test |
authentication_ldap_simple_user_search_attr |
Атрибут Active Directory, который содержит имя пользователя для входа |
sAMAccountName |
authentication_ldap_simple_bind_root_dn |
DN учетной записи, используемой StarRocks для поиска пользователей |
cn=admin,dc=ad,dc=ranger-test |
authentication_ldap_simple_bind_root_pwd |
Пароль учетной записи LDAP для аутентификации (bind) |
<LDAP_bind_password> |
|
ВАЖНО
Не указывайте |
|
ВНИМАНИЕ
В этом примере используется |
Создание пользователя StarRocks для аутентификации LDAP
LDAP-аутентификация не создает пользователя StarRocks автоматически при использовании модели аутентификации с локальными пользователями.
-
Создайте соответствующего пользователя StarRocks и укажите
authentication_ldap_simpleв качестве метода аутентификации.Например:
CREATE USER 'ffedorov' IDENTIFIED WITH authentication_ldap_simple;Оператор
CREATE USERсоздает пользователя StarRocks, а метод аутентификацииauthentication_ldap_simpleуказывает, что StarRocks будет аутентифицировать этого пользователя через LDAP.Пароль Active Directory в этом выражении не указывается. Пользователь предоставляет этот пароль при подключении к StarRocks, после чего StarRocks использует его для аутентификации пользователя в LDAP.
Имя пользователя StarRocks должно соответствовать значению настроенного атрибута поиска пользователей LDAP
authentication_ldap_simple_user_search_attr.Для Active Directory в этом примере используется
sAMAccountName=ffedorov. -
После создания пользователя StarRocks с LDAP-аутентификацией назначьте ему необходимые привилегии StarRocks.
Например, чтобы разрешить
ffedorovвыполнять запросы ко всем таблицам базы данныхstarrocks_demoв StarRocks:GRANT SELECT ON ALL TABLES IN DATABASE starrocks_demo TO USER 'ffedorov';
Проверка конфигурации LDAP
Сначала проверьте, что для пользователя StarRocks настроена LDAP-аутентификация.
-
Подключитесь к StarRocks с использованием административной учетной записи и выполните:
SHOW AUTHENTICATION;Вывод будет содержать информацию об аутентификации пользователей StarRocks. Для пользователя с LDAP-аутентификацией в столбце
AuthPluginбудет указаноAUTHENTICATION_LDAP_SIMPLE.Например:
┌────────────────┬──────────┬────────────────────────────┬───────────────────┐ │ UserIdentity │ Password │ AuthPlugin │ UserForAuthPlugin │ ├────────────────┼──────────┼────────────────────────────┼───────────────────┤ │ 'ffedorov'@'%' │ No │ AUTHENTICATION_LDAP_SIMPLE │ NULL │ └────────────────┴──────────┴────────────────────────────┴───────────────────┘
-
Проверьте LDAP-аутентификацию с помощью MySQL-клиента.
Для LDAP-аутентификации StarRocks требует, чтобы клиент предоставлял пароль с использованием плагина аутентификации
mysql_clear_password. При использовании клиента MySQL включите этот плагин следующим образом:$ mysql -h <имя хоста> -P <порт MySQL> -u <имя пользователя LDAP> -p --default-auth mysql_clear_password --enable-cleartext-pluginНапример:
$ mysql -h starrocks-desc-1.ru-central1.internal -P 19030 -u ffedorov -p --default-auth mysql_clear_password --enable-cleartext-pluginВведите пароль Active Directory для
ffedorovпри появлении соответствующего запроса.Если аутентификация прошла успешно, клиент MySQL начнет сессию StarRocks.
-
Проверьте аутентифицированного пользователя:
SELECT CURRENT_USER();Убедитесь, что у пользователя есть доступ к базе данных, в которой ему были назначены привилегии:
USE starrocks_demo; SHOW TABLES;
Интеграции безопасности (security integration)
В этой статье описан пример, в котором пользователь StarRocks создается явно с указанием authentication_ldap_simple. StarRocks также поддерживает интеграции безопасности LDAP, которые позволяют аутентифицировать внешних пользователей, не создавая для них отдельных постоянных пользователей StarRocks. Интеграции безопасности настраиваются отдельно и предполагают другую модель управления пользователями.