Методы аутентификации
В дополнение к методу аутентификации "имя пользователя+пароль", 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 вместе с именем пользователя и паролем.