Apache trino的ldap认证开启
1、背景
由于trino 默认没有开启用户认证体系,需要ldap用户进行认证。开启tls和ldap用户认证。提高安全性
2、配置
前置条件。
trino 集群已经部署完成
ldap 服务
openjdk 版本大于11.0.17
生成证书
keytool -genkeypair -validity 36500 -ext SAN=IP:172.16.104.226,DNS:hd1.dtstack.com -alias trino -keypass admin@123 -storepass admin@123 -keyalg RSA -dname CN=hd1.dtstack.com,OU=,O=,L=,ST=,C= -keystore trino.jks
将证书复制每个节点的到trino目录
配置每个节点配置以下内容
config.properties
http-server.https.enabled=true
http-server.https.port=8443
http-server.https.keystore.path=/opt/trino/etc/trino.jks
http-server.https.keystore.key=admin@123
internal-communication.shared-secret=abc123
internal-communication.https.required=true
http-server.https.secure-random-algorithm=SHA1PRNG
http-server.authentication.allow-insecure-over-http=true
配置认证配置文件 (本次使用的是openldap)
etc/password-authenticator.properties
password-authenticator.name=ldap
ldap.url=ldap://hd.dtstack.com:389
#ldap.ssl.truststore.path=/path/to/ldap_server.pem
#ldap.user-bind-pattern=<Refer below for usage>
#ldap.user-bind-pattern=${USER}@DTSTACK.COM
ldap.user-base-dn=cn=accounts,dc=dtstack,dc=com
ldap.user-bind-pattern=uid=${USER},cn=users,cn=accounts,dc=dtstack,dc=com
#ldap.bind-dn=uid=admin,cn=users,cn=accounts,dc=dtstack,dc=com
#ldap.bind-password=admin123
ldap.allow-insecure=true
重启对应服务
3、验证
通过https登录访问coordinator节点
使用trinocli进行测试
trino-cli --server https://hd1.dtstack.com:8443 --keystore-path /opt/trino/etc/trino.jks --keystore-password admin@123 --catalog hive --user test --password