跳到主要内容

CDH 6.3.2 LDAP 认证

本文介绍 CDH 6.3.2 LDAP 认证


1.安装 LDAP

yum install -y openldap openldap-clients openldap-servers migrationtools

配置域和密码

vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 d1f94ae2
dn: olcDatabase={2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=boomlee,dc=com
olcRootDN: cn=admin,dc=boomlee,dc=com
olcRootPW: @Boomlee1024
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
entryUUID: d233cc2a-737f-103d-992e-e142520e9e82
creatorsName: cn=config
createTimestamp: 20230420043027Z
entryCSN: 20230420043027.900079Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20230420043027Z

修改这三行

olcSuffix: dc=boomlee,dc=com
olcRootDN: cn=admin,dc=boomlee,dc=com
olcRootPW: @Boomlee1024

配置监视数据库配置文件

dn.base="cn=admin,dc=boomlee,dc=com"

vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 a416bfb5
dn: olcDatabase={1}monitor
objectClass: olcDatabaseConfig
olcDatabase: {1}monitor
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth" read by dn.base="cn=admin,dc=boomlee,dc=com" read by * none
structuralObjectClass: olcDatabaseConfig
entryUUID: d233c75c-737f-103d-992d-e142520e9e82
creatorsName: cn=config
createTimestamp: 20230420043027Z
entryCSN: 20230420043027.899956Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20230420043027Z

准备LDAP数据库

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap.ldap /var/lib/ldap

验证

slaptest -u

出现 config file testing succesded 则为成功

启动

systemctl start slapd
systemctl status slapd
systemctl enable slapd

查看服务

netstat -lt | grep ldap
netstat -tunlp | egrep "389|636"

启动LDAP服务器配置,添加模式

cd /etc/openldap/schema/

ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f collective.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f corba.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f core.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f duaconf.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f dyngroup.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f java.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f misc.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f openldap.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f pmi.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f ppolicy.ldif

迁移工具创建LADP DIT(目录信息树)

vim /usr/share/migrationtools/migrate_common.ph

修改

61 行

SNAMINGCONTEXT{ ' group' } = "ou=Groups";

71 行

DEFAULT_MAIL_DOMAIN = "boomlee.com"

74 行

DEFAULT BASE ="dc=boomlee, dc=com" ;

90 行

SEXTENDED SCHEMA = 1:

生成base.ldif文件为域DIT并导入

/usr/share/migrationtools/migrate_base.pl > ./base.ldif
ldapadd -x -w '@Boomlee1024' -D "cn=admin,dc=boomlee,dc=com" -f ./base.ldif

2.LDAP 添加用户

2.1在 LDAP 服务器添加 Linux 用户

groupadd 'hive'
useradd -r -m 'hive'
usermod -aG hive hive
echo '@Boomlee1024' | passwd --stdin 'hive'

2.2 读取添加的用户信息

grep -E "hive" /etc/passwd > ./passwd.txt
/usr/share/migrationtools/migrate_passwd.pl passwd.txt ./passwd.ldif

2.3 读取添加的用户组信息

grep -E "hive" /etc/group > ./group.txt
/usr/share/migrationtools/migrate_group.pl group.txt group.ldif

2.4 把用户和用户组信息导入 LDAP

ldapadd -x -D "cn=admin,dc=boomlee,dc=com" -w '@Dev1111' -f ./passwd.ldif
ldapadd -x -D "cn=admin,dc=boomlee,dc=com" -w '@Dev1111' -f ./group.ldif

3.安装 phpldapadmin

yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml
yum -y install phpldapadmin

修改配置

vim /etc/phpldapadmin/config.php

cdh-phpladpadmin-config-1

修改配置

vim /etc/httpd/conf.d/phpldapadmin.conf

cdh-phpladpadmin-config-2

重启 http

systemctl restart httpd

登录

http://IP/phpldapadmin/cmd.php

cn=admin,dc=boomlee,dc=com

@Boomlee1024

4.Hive 中集成 LDAP 服务

开启 LDAP

在 Hive 配置中,搜索 ldap

启用 LDAP 身份验证 勾选

LDAP URL ldap://10.0.5.56:389

LDAP BaseDN ou=People,dc=boomlee,dc=com

修改 core-site.xml

在 Hive 配置中,搜索 core-site.xml

core-site.xml 的 Hive 服务高级配置代码段(安全阀)

hadoop.proxyuser.hue.hosts *

hadoop.proxyuser.hue.groups *

重启 Hive

5.Hue 集成 LDAP 服务

Hue 中搜索 LDAP ,逐项填写

身份验证后端
desktop.auth.backend.LdapBackend

LDAP URL
ldap://10.0.5.56:389

启用 LDAP TLS
勾选

LDAP 用户名模式
uid=<username>,ou=People,dc=boomlee,dc=com

登录时创建 LDAP 用户
勾选

LDAP 搜索基础
dc=boomlee,dc=com

LDAP 绑定用户可分辨名称
cn=admin,dc=boomlee,dc=com

LDAP 绑定密码
@Boomlee1024

LDAP 用户筛选
(objectClass=posixAccount)

LDAP 用户名属性
uid

LDAP 组筛选
(objectClass=posixGroup)

LDAP 组名称属性
cn

LDAP 组成员身份属性
memberUid

hue_safety_valve.iniHue 服务高级配置代码段(安全阀)

[beeswax]
server_host=cdh01
server_port=10000
max_number_of_sessions=10
close_queries=True
use_sasl=False
auth_username=hive
auth_password=@Boomlee1024
[impala]
server_host=cdh01
server_port=21050
server_interface=hiveserver2
query_timeout_s=100
impersonation_enabled=True
auth_username=hive
auth_password=@Boomlee1024
server_conn_timeout=60
[desktop]
[[ldap]]
sync_groups_on_login=true

Impala 集成 LDAP 服务

启动 LDAP

配置修改
启用 LDAP 身份验证勾选
LDAP URLldap://10.0.5.56:389
LDAP BaseDNou=People,dc=gennlife,dc=com
Impala Daemon 命令行参数高级配置代码段(安全阀)--ldap_passwords_in_clear_ok
--authorized_proxy_user_config=hive=*

修改 core-site.xml

Impala配置中,搜索 core-site.xml

core-site.xml 的 Impala Daemon 高级配置代码段(安全阀) 添加

hadoop.proxyuser.hue.hosts *

hadoop.proxyuser.hue.groups *

提示

在使用impala-shell命令登录Impala Daemon时需要增加参数“--auth_creds_ok_in_clear”,因为我们的OpenLDAP服务未启用TLS加密的原因