CDH集成LDAP进行身份验证

121 阅读2分钟

前言:在内网环境中通过docker部署LDAP并在CDH的hive和impala中集成,其中配置的端口,镜像名,密码等需要根据自己情况进行更改

1、镜像下载

在有网络的服务器上下载镜像或直接下载,这里需要自行配置下docker镜像下载地址

# 下载openldap镜像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/osixia/openldap:stable
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/osixia/openldap:stable  docker.io/osixia/openldap:stable
# 下载phpldapadmin镜像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/osixia/phpldapadmin:latest
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/osixia/phpldapadmin:latest  docker.io/osixia/phpldapadmin:latest

2、导出镜像

docker save -o /app/installationPackage/phpldapadmin.tar osixia/phpldapadmin:latest

3、将镜像导入内网服务器

docker load -i openldap.tar
docker load -i phpldapadmin.tar

4、启动openldap

docker run -p 389:389 -p 服务器暴露端口:636 --name ldap --network bridge --hostname openldap-host --env LDAP_ORGANISATION="test" --env LDAP_DOMAIN="test.com" --env LDAP_ADMIN_PASSWORD="test" --detach 31d1d6e16394

LDAP_ADMIN_PASSWORD:密码

5、启动phpldapadmin

docker run -d --privileged -p 服务器暴露端口:80 --name ldap_web --env PHPLDAPADMIN_HTTPS=false --env PHPLDAPADMIN_LDAP_HOSTS=ip --detach 镜像id

6、打开创建phpldapadmin页面创建单元,用户组,用户

记得放开服务器openldap和phpldapadmin使用的端口

这部分内容参考LDAP使用docker安装部署与使用

6.1 登录

浏览器打开http://ip:服务器暴露端口 用户 cn=admin,dc=test,dc=com 密码 test

6.2 创建一个组织单元

创建一个组织单元 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 击刚创建好的cdh的条目,点击create a child entry,选择Posix Group,创建一个用户组test 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在新建的组下添加用户cdh,选中test条目,创建子条目,选择User Account 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

7、CDH配置ldap

我的CDH版本为6.2.1,我这里没有启动ssl,生产环境建议启用

7.1 hive配置ldap

启用ldap LDAP URL:ldap://ip:端口 LDAP BaseDN:cn=cdh,cn=test,ou=cdh,dc=test,dc=com 在这里插入图片描述

7.2 impala配置ldap

启用ldap LDAP URL:ldap://ip:端口 Impala Daemon 命令行参数高级配置代码段(安全阀): --ldap_passwords_in_clear_ok --ldap_bind_pattern=cn=cdh,cn=test,ou=cdh,dc=test,dc=com

这里也配置LDAP BaseDN的话连接不上,impala不允许在未启用 SSL的情况下进行明文传输凭据 --ldap_passwords_in_clear_ok 允许在不加密的连接(明文)上传输 LDAP 认证的密码 在CDH页面中配置ldap_bind_pattern会提示报错 提示LDAP 模式 的值应匹配 .#UID.,这里需要配置uid 我这里使用的固定dn所以直接在Impala Daemon 命令行参数高级配置代码段(安全阀)中再换行新增--ldap_bind_pattern=cn=cdh,cn=test,ou=cdh,dc=test,dc=com

在这里插入图片描述

配置完后重启hive,impala应用新配置

8、连接

8.1 hive地址:

url: jdbc:hive2://hive的ip:10000

username: cn=cdh,cn=test,ou=cdh,dc=test,dc=com

password: test

8.2 impala地址:

通过jdbc的url可以直接连接

jdbc:impala://impala节点ip:21050/default;AuthMech=3;UID=fname;PWD=test

或者通过账号密码连接

jdbc:impala://impala节点ip:21050/default;AuthMech=3;SSL=0

username:cn=cdh,cn=test,ou=cdh,dc=test,dc=com或fname

password:test