Аутентификация LDAP в StarRocks

StarRocks поддерживает LDAP-аутентификацию. Ее можно настроить для узлов Frontend (FE) и использовать при подключении клиентов StarRocks по протоколу MySQL.

Процесс аутентификации происходит поэтапно:

  1. Клиент отправляет имя пользователя и пароль StarRocks на FE.

  2. StarRocks выполняет поиск пользователя в каталоге LDAP с использованием настроенного атрибута поиска пользователей.

  3. StarRocks получает DN пользователя и выполняет привязку к LDAP с использованием этого DN и пароля, указанного пользователем.

  4. Если LDAP-аутентификация проходит успешно, StarRocks аутентифицирует пользователя и применяет привилегии, назначенные соответствующему пользователю StarRocks.

Включение LDAP

Чтобы включить аутентификацию LDAP, выполните следующие действия в ADCM:

  1. На странице Clusters выберите свой кластер ADH и перейдите на вкладку Services в меню кластера.

  2. Выберите сервис StarRocks и активируйте группу параметров Enable LDAP.

  3. Заполните параметры LDAP для Active Directory и перезапустите StarRocks.

Настройка LDAP Active Directory
Настройка LDAP Active Directory

В этом примере используются следующие значения:

Параметр Описание Значение

authentication_ldap_simple_server_host

Имя хоста LDAP-сервера Active Directory. В этом примере на этом сервере есть пользователь ffedorov

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>

ВАЖНО

Не указывайте authentication_ldap_simple_bind_dn_pattern при использовании приведенной выше конфигурации Active Directory.

ВНИМАНИЕ

В этом примере используется authentication_ldap_simple_ssl_conn_allow_insecure=true, что разрешает обмен данными между StarRocks и LDAP без шифрования. В продуктовых средах необходимо настроить LDAP через SSL/TLS и установить authentication_ldap_simple_ssl_conn_allow_insecure=false. При необходимости настройте сертификат CA LDAP-сервера с помощью authentication_ldap_simple_ssl_conn_trust_store_path.

Создание пользователя StarRocks для аутентификации LDAP

LDAP-аутентификация не создает пользователя StarRocks автоматически при использовании модели аутентификации с локальными пользователями.

  1. Создайте соответствующего пользователя 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.

  2. После создания пользователя StarRocks с LDAP-аутентификацией назначьте ему необходимые привилегии StarRocks.

    Например, чтобы разрешить ffedorov выполнять запросы ко всем таблицам базы данных starrocks_demo в StarRocks:

    GRANT SELECT ON ALL TABLES IN DATABASE starrocks_demo TO USER 'ffedorov';

Проверка конфигурации LDAP

Сначала проверьте, что для пользователя StarRocks настроена LDAP-аутентификация.

  1. Подключитесь к StarRocks с использованием административной учетной записи и выполните:

    SHOW AUTHENTICATION;

    Вывод будет содержать информацию об аутентификации пользователей StarRocks. Для пользователя с LDAP-аутентификацией в столбце AuthPlugin будет указано AUTHENTICATION_LDAP_SIMPLE.

    Например:

    ┌────────────────┬──────────┬────────────────────────────┬───────────────────┐
    │ UserIdentity   │ Password │ AuthPlugin                 │ UserForAuthPlugin │
    ├────────────────┼──────────┼────────────────────────────┼───────────────────┤
    │ 'ffedorov'@'%' │ No       │ AUTHENTICATION_LDAP_SIMPLE │ NULL              │
    └────────────────┴──────────┴────────────────────────────┴───────────────────┘
  2. Проверьте 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.

  3. Проверьте аутентифицированного пользователя:

    SELECT CURRENT_USER();

    Убедитесь, что у пользователя есть доступ к базе данных, в которой ему были назначены привилегии:

    USE starrocks_demo;
    SHOW TABLES;

Интеграции безопасности (security integration)

В этой статье описан пример, в котором пользователь StarRocks создается явно с указанием authentication_ldap_simple. StarRocks также поддерживает интеграции безопасности LDAP, которые позволяют аутентифицировать внешних пользователей, не создавая для них отдельных постоянных пользователей StarRocks. Интеграции безопасности настраиваются отдельно и предполагают другую модель управления пользователями.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней