除“用户名+密码”认证方式外,StarRocks还支持LDAP用户。
使用LDAP认证时,首先需要将LDAP服务信息配置到 FE 节点的配置中。
创建用户时通过IDENTIFIED WITH authentication_ldap_simple AS 'xxx'
指定该用户的认证方式为LDAP认证。xxx为用户在LDAP中的DN(Distinguished Name)
例如:
CREATE USER zhangsan IDENTIFIED WITH authentication_ldap_simple AS 'uid=zhansan,ou=company,dc=example,dc=com'
同时,创建用户时也可以不指定用户在LDAP中的DN
例如:
CREATE USER zhangsan IDENTIFIED WITH authentication_ldap_simple
不指定DN的用户,登录时StarRocks会去LDAP系统中检索该用户,如果有且仅有一个匹配结果,则认证成功果。这种情况下,需要在FE中添加额外的配置:
LDAP认证需要客户端传递明文密码给StarRocks。三种典型客户端配置明文密码传递的方式如下。
执行时添加 --default-auth mysql_clear_password --enable-cleartext-plugin 选项,例如:
mysql -uzhangsan -P8030 -h127.0.0.1 -p --default-auth mysql_clear_password --enable-cleartext-plugin
由于JDBC默认的MysqlClearPasswordPlugin需要使用SSL传输,所以需要自定义plugin:
public class MysqlClearPasswordPluginWithoutSSL extends MysqlClearPasswordPlugin {
@Override
public boolean requiresConfidentiality() {
return false;
}
}
在获取连接时,将自定义的plugin配置到属性中:
...
Properties properties = new Properties();// replace xxx.xxx.xxx to your pacakage name
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的DSN中添加配置:default_auth=mysql_clear_password和ENABLE_CLEARTEXT_PLUGIN=1,并配上用户名和密码。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://docs.starrocks.com/zh-cn/main/administration/Authentication
内容来源于网络,如有侵权,请联系作者删除!