使用LDAP认证

服务开启LDAP认证功能后,访问服务需要提供LDAP身份认证(LDAP用户名和密码),可以提升服务的安全性。开启LDAP认证的功能可以方便您使用LDAP认证,避免了复杂的配置过程。

前提条件

已创建DataLake或自定义集群,且选择了HiveOpenLDAP服务,详情请参见创建集群

一键配置LDAP认证

  1. 添加EMR用户,详情请参见添加用户

  2. 进入集群服务页面。

    1. 登录E-MapReduce控制台

    2. 在左侧导航栏,单击EMR on ECS

    3. 在顶部菜单栏处,根据实际情况选择地域和资源组

    4. EMR on ECS页面,单击目标集群操作列的集群服务

  3. 开启LDAP认证。

    1. 集群服务页面,单击Hive服务区域的状态

    2. 打开enableLDAP开关。

      • EMR-5.11.1及之后版本,EMR-3.45.1及之后版本

        1. 服务概述区域,打开enableLDAP开关。

        2. 在弹出的对话框中,单击确定

      • EMR-5.11.0及之前版本,EMR-3.45.0及之前版本

        1. 组件列表区域,选择HiveServer操作列的more > enableLDAP

        2. 在弹出的对话框中,输入执行原因,单击确定

        3. 确认对话框中,单击确定

    3. 重启HiveServer。

      1. 组件列表区域,单击HiveServer操作列的重启

      2. 在弹出的对话框中,输入执行原因,单击确定

      3. 确认对话框中,单击确定

  4. 连接HiveServer。

    开启LDAP认证后,当您连接HiveServer时需要提供LDAP认证凭据。

    1. 通过SSH方式连接集群,请参见登录集群

    2. 执行以下命令,连接HiveServer。

      • Beeline客户端:

        beeline -u jdbc:hive2://master-1-1:10000 -n <user> -p <password>
      • JDBC:

        jdbc:hive2://master-1-1:10000/default;user=<user>;password=<password>
      说明

      <user>LDAP的用户名,<password>LDAP的密码,即您在步骤1添加的用户名和密码。

手动配置LDAP认证

EMR控制台提供了enableLDAP按钮,可以一键开启LDAP认证功能。如果您的EMR版本较低,或者需要对接自建的LDAP服务,则只能使用手动配置的方式来启用HiveServer2LDAP认证。

需要您在EMR控制台Hive服务的配置页面,在hiveserver2-site.xml页签,添加以下配置项。添加配置项的具体操作,请参见管理配置项

配置项

参考值

说明

hive.server2.authentication

LDAP

用于指定Hive Server2的认证方式。

hive.server2.authentication.ldap.url

ldap://{ldap_hostname}:{port}

例如:ldap://master-1-1:10389

用于指定连接LDAP服务的URL。需要根据实际情况进行配置。

  • {ldap_hostname}:LDAP服务的主机名或IP地址。如果对接EMR集群的LDAP服务,通常为emr-header-1。

  • {port}:LDAP服务的端口,EMR集群的LDAP服务端口为10389,自建LDAP服务请根据实际情况填写。

hive.server2.authentication.ldap.baseDN

ou=people,o=emr

用于指定LDAP服务中用户所在的Base DN,EMR集群的LDAPou=people,o=emr,自建LDAP服务请根据实际情况填写。

指定用户访问Hive

如果您的集群中的Hive服务已启用LDAP认证,您可以添加和修改以下配置,以实现指定用户对Hive服务的访问。

配置设置

  1. 需要您在EMR控制台Hive服务的配置页面,在hiveserver2-site.xml页签,新增和修改以下配置项。

    配置项

    配置值示例

    配置类型

    说明

    hive.server2.authentication.ldap.userDNPattern

    uid=%s,ou=people,o=emr

    新增

    用户DN模式,定义用户在LDAP中的查找路径。%s会被实际用户名替换。

    hive.server2.authentication.ldap.groupFilter

    username

    新增

    用户组过滤器,只有属于指定组的用户才能访问HiveServer2。多个用户组使用逗号进行分隔。

    hive.server2.authentication.ldap.groupClassKey

    posixGroup

    新增

    LDAP中表示组对象的objectClass属性值。

    hive.server2.authentication.ldap.groupMembershipKey

    memberUid

    新增

    LDAP组对象中用于存储成员信息的属性名。

    hive.server2.authentication.ldap.baseDN

    o=emr

    修改

    LDAP搜索的基础DN,原有配置需要修改为适合组过滤的基础路径。

  2. 保存上述新增及修改的配置。

  3. 重启HiveServer2服务以使配置生效。

连接验证

开启LDAP认证并配置相应的用户后,您在连接HiveServer时需提供该用户的认证凭据。

  1. 通过SSH方式连接集群,请参见登录集群

  2. 执行以下命令,连接HiveServer。

    • Beeline客户端:

      beeline -u jdbc:hive2://master-1-1:10000 -n <user> -p <password>
    • JDBC:

      jdbc:hive2://master-1-1:10000/default;user=<user>;password=<password>
    说明

    <user>hive.server2.authentication.ldap.groupFilter配置项中配置的用户,<password>为对应用户的密码,即您在步骤1添加的用户名和密码。

常见问题

开启LDAP认证的Hive连接报错如何处理?

  • 问题现象:执行beeline连接Hive,出现以下错误信息。

    image

  • 问题原因:beeline连接命令中的用户未通过LDAP认证。

  • 解决方法:将当前用户添加至hiveserver2-site.xml配置文件中的hive.server2.authentication.ldap.groupFilter配置项,或通过hiveserver2-site.xml配置文件的 hive.server2.authentication.ldap.groupFilter配置项中的用户连接到Hive。