文档编写目的
Cloudera从CM6.3版本开始,引入了Red Hat IdM来做整个集群的认证,Red Hat IdM对应的软件为FreeIPA,在本文中描述如何使用FreeIPA来做CDP-DC集群的认证。关于FreeIPA服务器搭建参考<使用FreeIPA对Linux用户权限统一管理>。之前的文章包括<使用FreeIPA为CDP DC7.1集群部署安全>,<CDP-DC中为CM集成FreeIPA提供的LDAP认证>,<在CDP-DC中Ranger集成FreeIPA的LDAP用户>。
本文主要介绍如何在CDP-DC中对Hue组件集成FreeIPA的LDAP认证。
内容概述
1) 测试环境描述
2) Hue集成FreeIPA的LDAP
3) Hue集成Hive和Impala
4) Hue集成验证
测试环境
1) RedHat版本为7.7
2) FreeIPA的版本为4.6.6
3) CM和Cloudera Runtime版本为7.1.1
4) FreeIPA未启用TLS加密认证
5) 集群已启用FreeIPA提供的Kerberos
前置条件
1) FreeIPA已安装且正常使用
2) CDP-DC集群已经部署,且启用了Kerberos
测试环境描述
FreeIPA集群已安装完毕。
查看配置文件
从IPA 3.0开始,我们已经为/etc/openldap/ldap.conf配置了一些默认值:
[ec2-user@ip-10-0-0-170 ~]$ cat /etc/openldap/ldap.conf
# File modified by ipa-client-install
# We do not want to break your existing configuration, hence:
# URI, BASE, TLS_CACERT and SASL_MECH
# have been added if they were not set.
# In case any of them were set, a comment has been inserted and
# "# CONF_NAME modified by IPA" added to the line above.
# To use IPA server with openLDAP tools, please comment out your
# existing configuration for these options and uncomment the
# corresponding lines generated by IPA.
#
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
#BASE dc=example,dc=com
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
TLS_CACERTDIR /etc/openldap/certs
# Turning this off breaks GSSAPI used with krb5 when rdns = false
SASL_NOCANON on
URI ldaps://ip-10-0-0-170.ap-southeast-1.compute.internal
BASE dc=ap-southeast-1,dc=compute,dc=internal
TLS_CACERT /etc/ipa/ca.crt
SASL_MECH GSSAPI
[ec2-user@ip-10-0-0-170 ~]$
[ec2-user@ip-10-0-0-170 ~]$
设置这些默认值意味着您无需将太多选项传递给ldapsearch之类的工具。搜索更加容易:
$ ldapsearch -x uid=admin
而不是:
$ ldapsearch -x -h ipa.example.com -b dc=example,dc=com uid=admin
[ec2-user@ip-10-0-0-170 ~]$ ldapsearch -x uid=admin
# extended LDIF
#
# LDAPv3
# base <dc=ap-southeast-1,dc=compute,dc=internal> (default) with scope subtree
# filter: uid=admin
# requesting: ALL
#
# admin, users, compat, ap-southeast-1.compute.internal
dn: uid=admin,cn=users,cn=compat,dc=ap-southeast-1,dc=compute,dc=internal
objectClass: posixAccount
objectClass: ipaOverrideTarget
objectClass: top
gecos: Administrator
cn: Administrator
uidNumber: 1376400000
gidNumber: 1376400000
loginShell: /bin/bash
homeDirectory: /home/admin
ipaAnchorUUID:: OklQQTphcC1zb3V0aGVhc3QtMS5jb21wdXRlLmludGVybmFsOmJmYTI4NGI4LW
E5MzktMTFlYS1iZmEzLTA2YTdiNzk2MzQwYQ==
uid: admin
# admin, users, accounts, ap-southeast-1.compute.internal
dn: uid=admin,cn=users,cn=accounts,dc=ap-southeast-1,dc=compute,dc=internal
objectClass: top
objectClass: person
objectClass: posixaccount
objectClass: krbprincipalaux
objectClass: krbticketpolicyaux
objectClass: inetuser
objectClass: ipaobject
objectClass: ipasshuser
objectClass: ipaSshGroupOfPubKeys
uid: admin
cn: Administrator
sn: Administrator
uidNumber: 1376400000
gidNumber: 1376400000
homeDirectory: /home/admin
loginShell: /bin/bash
gecos: Administrator
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
[ec2-user@ip-10-0-0-170 ~]$
Hue集成FreeIPA提供的LDAP认证
修改Hue的认证方式为LDAP
1. 使用管理员登录CM,进入Hue配置页面,修改Hue的认证方式为LDAP
配置LDAP信息
参数名 | 值 | 描述 |
---|---|---|
ldap_url | ldaps://ip-10-0-0-170.ap-southeast-1.compute.internal:636 | 配置FreeIPA的LDAP URL |
ldap_username_pattern | uid={0},cn=users,cn=accounts,dc=ap-southeast-1,dc=compute,dc=internal | |
base_dn | cn=accounts,dc=ap-southeast-1,dc=compute,dc=internal | |
bind_dn | uid=admin,cn=users,cn=accounts,dc=ap-southeast-1,dc=compute,dc=internal | 配置用于搜索LDAP的管理员账号 |
bind_password | cloudera | 管理员账号的密码 |
user_filter | (objectClass=person) | |
user_name_attr | uid | |
search_bind_authentication | true | 复选 |
修改完以上配置后保存,在重启Hue服务前将认证方式修改为
desktop.auth.backend.AllowFirstUserDjangoBackend
再次保存配置并重启Hue服务。
测试LDAP是否配置成功
通过Cloudera Manager-> 群集 -> Hue ->操作 -> Test LDAP Configuration,进行测试:
点击Test LDAP Configuration,进行测试。
如果测试成功,继续后续的步骤。如果测试失败,则调整配置,然后再进行测试。
同步LDAP用户组
重启成功后使用Hue的超级管理员登录,我们这里是admin用户为超级管理员,同时admin用户在freeipa中也存在,如果不存在,则需要根据第四章同步一个ldap的用户到hue系统中。
需要通过“Add/Sync LDAP Group”的方式将freeipa的用户组也同步过来,这里同步ipausers这个用户组。
点击同步将ipausers的用户组信息同步
修改hue为LDAP认证
回到CM界面修改Hue的配置,将hue的用户的将认证方式修改为desktop.auth.backend.LdapBackend
保存配置并重启Hue服务。
保存并重启Hue。
用户登录测试
这里看到使用原来的admin用户密码已无法正常登录,因为在freeIPA的LDAP中admin这个用户的密码不是数据库中的密码。
使用freeIPA中的admin账户也可以正常登陆。
使用freeipa的test用户也可以正常登陆。
将Hue与LDAP服务器同步
通过将Hue配置为轻型目录访问协议(LDAP),您可以从目录服务导入用户和组,手动或自动登录时同步组成员身份,并通过LDAP进行身份验证。
本页说明如何导入Hue用户和组并将其与LDAP服务器同步。请参阅使用LDAP对Hue用户进行身份验证以确保配置正确。
提示:导入和同步后,学习如何限制组权限。
将Hue用户和组与LDAP同步
Hue中有四个LDAP导入和同步选项:
LDAP同步操作 | 描述 |
---|---|
添加/同步LDAP用户 | 一次导入和同步一个用户 |
同步LDAP用户/组 | 同步所有组中的用户成员身份 |
添加/同步LDAP组 | 导入并同步一组中的所有用户 |
sync_groups_at_login | 登录时自动同步组成员身份 |
先决条件
注意: Hue不支持一次导入所有组。
要将Hue用户和组与LDAP服务器同步:
• 必须将Hue配置为通过LDAP进行身份验证。请参阅使用LDAP验证Hue用户。
• 登录的用户必须具有Hue超级用户权限。这里demo使用admin用户。
用户
导入和同步一个用户
要在Hue中导入和同步一个LDAP用户,请执行以下操作:
1. 以超级用户身份登录到Hue UI。
2. 转到用户管理 > 用户。
3. 单击添加/同步LDAP用户。
4. 添加用户名,选中创建主目录,然后单击添加/同步用户。
同步所有用户成员
要将组成员身份(对于已导入的用户)同步到LDAP服务器的当前状态,请执行以下操作:
1. 以超级用户身份登录到Hue UI。
2. 转到用户管理 > 用户。
3. 点击同步LDAP用户/组。
4. 选中创建主目录,然后单击同步。
组
导入并同步一个组(与一个或多个用户)
导入和同步组(及其多个用户):
1. 以超级用户身份登录到Hue UI。
2. 转到用户管理 > 组。
3. 单击添加/同步LDAP组。
4. 选中创建主目录,然后单击同步。
总结
• Hue默认第一个登录的用户为管理员账号,在集成LDAP时需要配置LDAP信息后再将Hue登录的认证方式修改为AllowFirstUserDjangoBackend,需要使用管理员用户先登录Hue将LDAP用户同步后,再修改为LDAP认证。
• Hue管理LDAP用户组的逻辑是独立管理用户和组,在同步用户的时候是不会将用户的组信息同步。
• 在Hue集成LDAP的时候有勾选“登录时创建LDAP用户”,所以我们不需要先登录Hue管理员到用户界面去同步LDAP的用户。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有