配置HetuEngine对接外部LDAP
操作场景
本章节指导用户从零开始使用HetuEngine对接外部LDAP,实现账号密码认证。
约束与限制
- 该功能仅集群未启用Kerberos认证(普通模式)支持。
- HetuEngine只允许配置对接一个外部LDAP。
- 需要在Manager的“系统 > 权限 > 用户”界面上创建一个外部LDAP中已存在的同名用户,例如“hetu_test”,并添加“hetuuser”用户组,该用户用于提交SQL请求。
- 本章节仅适用于MRS 3.6.0-LTS及之后版本。
操作步骤
- 登录FusionInsight Manager页面,选择“集群 > 服务 > HetuEngine > 配置 > 全部配置”,参考表 对接外部LDAP参数配置对接外部LDAP参数。
表1 对接外部LDAP参数 参数名称
默认值
建议值
参数解释
参数文件
http-server.authentication.type
NONE
PASSWORD
为Coordinator配置身份验证类型列表。
- NONE:不认证。
- PASSWORD:基于LDAP的密码认证。
coordinator.config.properties
ldap.allow-insecure
true
-
允许使用不受TLS保护的LDAP连接。
- true:使用非SSL方式连接LDAP。
- false:使用SSL方式连接LDAP。
password-authenticator.properties
ldap.ssl.truststore.password
-
-
PEM或JKS信任文件的密码。
password-authenticator.properties
ldap.ssl.truststore.path
-
-
PEM或JKS信任文件存储的路径。
password-authenticator.properties
ldap.timeout.connect
5000ms
5000ms
建立LDAP连接的超时时长(单位:毫秒)。小于或等于零的整数表示使用网络协议的(即TCP的)超时值。
password-authenticator.properties
ldap.timeout.read
5000ms
5000ms
从LDAP连接读取数据的超时时长(单位:毫秒)。小于或等于零的整数意味着没有指定读取超时,相当于无限等待响应,直到接收到它。
password-authenticator.properties
ldap.url
-
-
LDAP服务器的URL。
- URL的“scheme”必须为“ldap://”或“ldaps://”,例如ldap://ds.example.com:389或ldaps://ds.example.com:636。
- 连接到未启用TLS的LDAP服务器时需要设置参数“ldap.allow-insecure”的值为“true”。
password-authenticator.properties
ldap.user-bind-pattern
-
-
此属性可用于指定密码验证的LDAP用户绑定字符串。此属性必须包含模式${USER},在密码验证时将替换为实际用户名。
属性可以包含多个模式,以冒号分隔。每个模式将按顺序检查,直到登录成功或所有登录失败。示例:${USER}@corp.example.com:${USER}@corp.example.co.uk
password-authenticator.properties
- 单击左上方的“保存”,在弹出的对话框中单击“确定”保存配置。
- 选择“集群 > 服务 > HetuEngine > 更多 > 重启服务”,重启HetuEngine服务以便参数生效。
- 若存在运行中的计算实例需重启HetuEngine计算实例。
- 使用HetuEngine管理员用户登录FusionInsight Manager,选择“集群 > 服务 > HetuEngine > 概览”,单击“HSConsole WebUI”后面的链接,进入HSConsole界面。
- 单击“计算实例”,勾选待操作实例,单击“重启”按钮重启HetuEngine计算实例。
- 使用客户端提交SQL请求。
- Cli客户端,需要刷新Zookeeper URL地址串的“scheme”为“https”。具体操作步骤如下:
- 修改客户端安装路径下“HetuEngine/component_env“文件中“HETUSERVER_URI“参数的“http”为“https”。
- 进入客户端安装路径,执行source HetuEngine/component_env命令。
- 输入hetu-cli --tenant default --user hetu_test --password命令,回车后填写外部LDAP用户hetu_test的密码即可。
- JDBC客户端,需要添加如下连接参数:
hetuSSL=false
SSLVerification=NONE
user=LDAP用户的名称,例如hetu_test
password=LDAP用户的密码
- Python客户端,需要添加如下连接参数:
hetuSSL=false
SSLVerification=NONE
user=LDAP用户的名称,例如hetu_test
password=LDAP用户的密码
- Cli客户端,需要刷新Zookeeper URL地址串的“scheme”为“https”。具体操作步骤如下: