
# 配置HetuEngine对接外部LDAP
#### 操作场景
本章节指导用户从零开始使用HetuEngine对接外部LDAP，实现账号密码认证。
#### 约束与限制
- 该功能仅集群未启用Kerberos认证（普通模式）支持。
- HetuEngine只允许配置对接一个外部LDAP。
- 需要在Manager的"系统 \> 权限 \> 用户"界面上创建一个外部LDAP中已存在的同名用户，例如"hetu_test"，并添加"hetuuser"用户组，该用户用于提交SQL请求。
- 本章节仅适用于MRS 3.6.0-LTS及之后版本。
 
#### 操作步骤
1. 登录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 |
      
   
   
2. 单击左上方的"保存"，在弹出的对话框中单击"确定"保存配置。
3. 选择"集群 \> 服务 \> HetuEngine \> 更多 \> 重启服务"，重启HetuEngine服务以便参数生效。
4. 若存在运行中的计算实例需重启HetuEngine计算实例。 
   1. 使用HetuEngine管理员用户登录FusionInsight Manager，选择"集群 \> 服务 \> HetuEngine \> 概览"，单击"HSConsole WebUI"后面的链接，进入HSConsole界面。
   
   2. 单击"计算实例"，勾选待操作实例，单击"重启"按钮重启HetuEngine计算实例。
   
   
   
   
5. 使用客户端提交SQL请求。 
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - Cli客户端，需要刷新Zookeeper URL地址串的"scheme"为"https"。具体操作步骤如下：
     1. 修改客户端安装路径下"HetuEngine/component_env"文件中"HETUSERVER_URI"参数的"http"为"https"。
     
     2. 进入客户端安装路径，执行**source HetuEngine/component_env**命令。
     
     3. 输入**hetu-cli --tenant default --user hetu_test --password**命令，回车后填写外部LDAP用户hetu_test的密码即可。
      
   
   - JDBC客户端，需要添加如下连接参数： SSL=true
     hetuSSL=false
     SSLVerification=NONE
     user=*LDAP用户的名称*，例如hetu_test
     password=*LDAP用户的密码*
     
   
   - Python客户端，需要添加如下连接参数： SSL=true
     hetuSSL=false
     SSLVerification=NONE
     user=*LDAP用户的名称*，例如hetu_test
     password=*LDAP用户的密码*
     
    
   
   
 
