Перейти к основному содержимому

Методы аутентификации

В дополнение к методу аутентификации "имя пользователя+пароль", Selena также поддерживает LDAP.

LDAP аутентификация

Для использования LDAP аутентификации необходимо сначала добавить LDAP сервис в конфигурацию FE узла.

  • authentication_ldap_simple_server_host: Укажите IP адрес сервиса.
  • authentication_ldap_simple_server_port: Укажите порт сервиса, значение по умолчанию 389.

При создании пользователя укажите метод аутентификации как LDAP аутентификацию с помощью IDENTIFIED WITH authentication_ldap_simple AS 'xxx'. xxx - это DN (Distinguished Name) пользователя в LDAP.

Пример 1:

CREATE USER tom IDENTIFIED WITH authentication_ldap_simple AS 'uid=tom,ou=company,dc=example,dc=com'

Возможно создать пользователя без указания DN пользователя в LDAP. Когда пользователь входит в систему, Selena обратится к системе LDAP для получения информации о пользователе. Если найдено одно и только одно совпадение, аутентификация будет успешной.

Пример 2:

CREATE USER tom IDENTIFIED WITH authentication_ldap_simple

В этом случае необходимо добавить дополнительную конфигурацию в FE

  • authentication_ldap_simple_bind_base_dn: Базовый DN пользователя, определяющий диапазон поиска пользователя.
  • authentication_ldap_simple_user_search_attr: Имя атрибута в LDAP объекте, который идентифицирует пользователя, по умолчанию uid.
  • authentication_ldap_simple_bind_root_dn: DN учетной записи администратора, используемой для получения информации о пользователе.
  • authentication_ldap_simple_bind_root_pwd: Пароль учетной записи администратора, используемый при получении информации о пользователе.

LDAP аутентификация требует, чтобы клиент передавал пароль в открытом виде в Selena. Существует три способа передачи пароля в открытом виде:

  • Командная строка MySQL

Добавьте --default-auth mysql_clear_password --enable-cleartext-plugin при выполнении:

mysql -utom -P8030 -h127.0.0.1 -p --default-auth mysql_clear_password --enable-cleartext-plugin
  • JDBC

Поскольку стандартный MysqlClearPasswordPlugin JDBC требует SSL транспорт, необходим пользовательский плагин.

public class MysqlClearPasswordPluginWithoutSSL extends MysqlClearPasswordPlugin {
@Override
public boolean requiresConfidentiality() {
return false;
}
}

После подключения настройте пользовательский плагин в свойствах.

...
Properties properties = new Properties();// замените xxx.xxx.xxx на имя вашего пакета
properties.put("authenticationPlugins", "xxx.xxx.xxx.MysqlClearPasswordPluginWithoutSSL");
properties.put("defaultAuthenticationPlugin", "xxx.xxx.xxx.MysqlClearPasswordPluginWithoutSSL");
properties.put("disabledAuthenticationPlugins", "com.mysql.jdbc.authentication.MysqlNativePasswordPlugin");DriverManager.getConnection(url, properties);
  • ODBC

Добавьте default\_auth=mysql_clear_password и ENABLE_CLEARTEXT\_PLUGIN=1 в DSN ODBC вместе с именем пользователя и паролем.