文档编写目的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认证>,。本篇文章主要介绍如何为CDP-DC平台上的Atlas集成FreeIPA提供的LDAP用户。
内容概述1) 测试环境描述2) FreeIPA的LDAP介绍3) Atlas集成LDAP4) Atlas集成验证5) 总结
测试环境1) RedHat7.72) CM和Cloudera Runtime版本为7.1.13) FreeIPA版本为4.6.6
前置条件1) FreeIPA已安装且正常使用2) CDP-DC集群已搭建完毕且正常使用,已经启用FreeIPA提供的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 neverTLS_CACERTDIR /etc/openldap/certs# Turning this off breaks GSSAPI used with krb5 when rdns = falseSASL_NOCANON onURI ldaps://ip-10-0-0-170.ap-southeast-1.compute.internalBASE dc=ap-southeast-1,dc=compute,dc=internalTLS_CACERT /etc/ipa/ca.crtSASL_MECH GSSAPI[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 (default) with scope subtree# filter: uid=admin# requesting: ALL## admin, users, compat, ap-southeast-1.compute.internaldn: uid=admin,cn=users,cn=compat,dc=ap-southeast-1,dc=compute,dc=internalobjectClass: posixAccountobjectClass: ipaOverrideTargetobjectClass: topgecos: Administratorcn: AdministratoruidNumber: 1376400000gidNumber: 1376400000loginShell: /bin/bashhomeDirectory: /home/adminipaAnchorUUID:: OklQQTphcC1zb3V0aGVhc3QtMS5jb21wdXRlLmludGVybmFsOmJmYTI4NGI4LWE5MzktMTFlYS1iZmEzLTA2YTdiNzk2MzQwYQ==uid: admin# admin, users, accounts, ap-southeast-1.compute.internaldn: uid=admin,cn=users,cn=accounts,dc=ap-southeast-1,dc=compute,dc=internalobjectClass: topobjectClass: personobjectClass: posixaccountobjectClass: krbprincipalauxobjectClass: krbticketpolicyauxobjectClass: inetuserobjectClass: ipaobjectobjectClass: ipasshuserobjectClass: ipaSshGroupOfPubKeysuid: admincn: Administratorsn: AdministratoruidNumber: 1376400000gidNumber: 1376400000homeDirectory: /home/adminloginShell: /bin/bashgecos: Administrator# search resultsearch: 2result: 0 Success# numResponses: 3# numEntries: 2[ec2-user@ip-10-0-0-170 ~]$
Atlas与LDAP集成使用管理员用户登录Cloudera Manager,进入“群集”->Atlas->“配置”界面
2.通过配置下方的搜索器搜索LDAP,可以看到涉及到Atlas Server部分
3.配置外部身份验证,具体配置参数如下:
参数名 | 值 | 描述 |
Atlas.ldap.url | ldaps://ip-10-0-0-170.ap-southeast-1.compute.internal:636 | 配置FreeIPA的LDAP URL |
Atlas.ldap.bind.dn | uid=admin,cn=users,cn=accounts,dc=ap-southeast-1,dc=compute,dc=internal | 配置用于搜索LDAP的管理员账号 |
Atlas.ldap.bind.password | cloudera | 管理员账号的密码 |
Atlas.ldap.user.dnpattern | uid={0},cn=users,cn=accounts,dc=ap-southeast-1,dc=compute,dc=internal | |
Atlas.ldap.user.searchfilter | uid={0} | LDAP用户搜索过滤器。仅在身份验证方法为LDAP时使用。 |
Atlas.ldap.group.searchbase | cn= groups,cn=accounts,dc=ap-southeast-1,dc=compute,dc=internal | |
Atlas.ldap.group.searchfilter | member={0} | |
Atlas.ldap.group.roleattribute | cn | |
Atlas.ldap.base.dn | cn=accounts,dc=ap-southeast-1,dc=compute,dc=internal | |
Atlas.ldap.referral | follow | 如果将多个LDAP服务器配置为返回结果的连续引用,则设置为遵循。如果不应该引用,则设置为忽略(默认)。当将此参数设置为throw时,在抛出ReferralException之前,所有常规条目都首先在枚举中返回。 |
Atlas.usersync.source.impl.class | org.apache.Atlas.ldapusersync.process.LdapUserGroupBuilder | 分别对应Unix用户同步,文件系统同步,和LDAP用户同步。这些选择LDAP |
Atlas.usersync.ldap.url | ldaps://ip-10-0-0-170.ap-southeast-1.compute.internal:636 | |
Atlas.usersync.ldap.binddn | uid=admin,cn=users,cn=accounts,dc=ap-southeast-1,dc=compute,dc=internal | |
Atlas.usersync.ldap.ldapbindpassword | cloudera | |
Atlas.usersync.ldap.deltasync | Atlas Usersync Default Group | 复选 |
Atlas.usersync.ldap.searchBase | cn=accounts,dc=ap-southeast-1,dc=compute,dc=internal | |
Atlas.usersync.ldap.user.searchbase | cn=users,cn=accounts,dc=ap-southeast-1,dc=compute,dc=internal | |
Atlas.usersync.ldap.user.searchscope | sub | 用户的搜索范围。值“ base”表示仅应考虑在Atlas.usersync.ldap.user.searchbase中指定为搜索基础的条目。“one”表示仅应考虑在Atlas.usersync.ldap.user.searchbase中指定为搜索基础的条目的直接子级。“ Sub”表示应该考虑在Atlas.usersync.ldap.user.searchbase中指定为搜索基础的条目及其所有子级的任何深度。 |
Atlas.usersync.ldap.user.searchfilter | (|(memberOf=cn=ipausers,cn= groups,cn=accounts,dc=ap-southeast-1,dc=compute,dc=internal)) | |
Atlas.usersync.ldap.user.nameattribute | uid | |
Atlas.usersync.ldap.user.nameattribute | ignore | |
Atlas.usersync.group.usermapsyncenabled | Atlas Usersync Default Group | 复选 |
Atlas.usersync.user.searchenabled | Atlas Usersync Default Group | 复选 |
Atlas.usersync.group.searchenabled | Atlas Usersync Default Group | 复选 |
Atlas.authentication.method | LDAP | 登录到Atlas Admin的身份验证方法。 |
4.完成上述配置后,保存更改,重启Atlas服务应用配置
以上完成Atlas与FreeIPA的LDAP的集成。Atlas用户同步通过Cloudera Manager-> 群集 -> Atlas->Atlas Web UI,点击Atlas Web UI,跳转到对应的页面。
使用系统配置的admin用户和使用FreeIPA中的admin用户都可以登录到atlas,结果相同。
使用FreeIPA中的其他ldap用户superuser登录atlas,正常登陆。
总结提供CM将Atlas集成FreeIPA的LDAP,这个整个管控管理系统可以使用一套用户管理体系,减少了用户同步的维护操作。