暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

CDP-DC中Hue集成FreeIPA的LDAP认证

大数据杂货铺 2020-06-18
405


文档编写目的
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
          配置FreeIPALDAP 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服务器同步。请参阅使用LDAPHue用户进行身份验证以确保配置正确。
            提示:导入和同步后,学习如何限制组权限
            将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的用户。

            文章转载自大数据杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论