草庐IT

各组件配置LDAP认证手册

江南独孤客 2023-03-28 原文
注:本手册以CM&CDH5.7.6为例

1、Hive配置LDAP认证

目前单个Hive Server2只能支持一种客户端认证方式,或者是Kerberos认证,或者是LDAP认证,所以要在一个集群内部同时支持两种认证方式,必须配置两个HiveServer 2

注:目前新版本CDH已经可以同时支持两种认证方式,在CDH5.14.4上已验证过。

1.1、开启“启用LDAP身份验证”

搜索“启用 LDAP 身份验证”改为“true

 

1.2、配置“LDAP URL

搜索“hive.server2.authentication.ldap.url”添加“ldap://192.168.1.62:389

 

1.3、配置“LDAP BaseDN

搜索“hive.server2.authentication.ldap.baseDN”添加“ou=People,dc=bigdata,dc=hex,dc=com

该配置必须指向用户所在的OrganizationUnit(ou) ,因为Hive会直接使用uid+baseDN作为该用户的dnLDAP中进行查询。

 

1.4、重启Hive等相关服务

配置完成并保存后,重启Hive等相关服务。

 

1.5、其他注意事项

注意1:老的CDH版本可能只能在“hive-site.xml HiveServer2 高级配置代码段”配置如下参数:

<property>

  <name>hive.server2.authentication</name>

  <value>LDAP</value>

</property>

<property>

  <name>hive.server2.authentication.ldap.url</name>

  <value>ldap://192.168.1.62:389</value>

</property>

<property>

  <name>hive.server2.authentication.ldap.baseDN</name>

  <value>ou=People,dc=bigdata,dc=hex,dc=com</value>

</property>

 

 

2、HiveServer2通过LDAP认证测试

通过beeline连接HiveServer2,用户名输入junjie,密码随便输入一个比如000000

执行:beeline-u jdbc:hive2://192.168.1.61:10000/default -n junjie -p 000000

显示认证失败,再次登录,输入正确密码111111

执行:beeline-u jdbc:hive2://192.168.1.61:10000/default -n junjie -p 111111

登录成功,并能进行相关操作,没有权限上的控制。测试成功!

 

3、Impala配置LDAP认证

同一个Impala Daemon是既可支持Kerberos认证,又可支持LDAP认证。

 

3.1、开启“启用 LDAP 身份验证”

搜索“启用 LDAP 身份验证”改为“true”

 

3.2、配置“LDAP URL

搜索“ldap_uri”添加“ldap://192.168.1.62:389

 

3.3、配置“LDAP BaseDN

搜索“ldap_baseDN”添加“ou=People,dc=bigdata,dc=hex,dc=com

 

3.4、配置“Impala Daemon 命令行参数高级配置代码段”

没有启用LDAP TLS时搜索“ldap_tls”可以查看是否启用)需要Impala Daemon命令行参数高级配置代码段(安全阀)”添加“-ldap_passwords_in_clear_ok=true

 

3.5、重启Impala等相关服务

配置完成并保存后,重启Impala等相关服务。

 

3.6、其他注意事项

注意1:仅当需要做严格的用户绑定,或用户名不是通过uid指定时,配置“LDAP 模式”。此参数与 LDAP 域和 LDAP BaseDN 相互排斥。

搜索“ldap_bind_pattern”添加“uid=#UID,ou=People,dc=bigdata,dc=hex,dc=com”

 

4、Impala通过LDAP认证测试

通过impala-shell连接某个daemon,使用用户junjie,随便输入一个密码比如000000

执行:impala-shell-l -i 192.168.1.61:21000 -u junjie

报错:LDAP凭证不能为非安全连接。可以启用SSL或设置--auth_creds_ok_in_clear

执行:impala-shell-l -i 192.168.1.61:21000 -u junjie --auth_creds_ok_in_clear

显示认证失败,再次登录,输入正确密码111111

执行:impala-shell-l -i 192.168.1.61:21000 -u junjie --auth_creds_ok_in_clear

登录成功,并能进行相关操作,没有权限上的控制。测试成功!

 

5、Hue配置LDAP认证

默认情况下,Hue使用内置的数据库存储用户名密码,而且第一个登陆的用户即是Hue的管理员用户,可以用来创建其他用户。

 

5.1、配置“LDAP URL

搜索“ldap_url”添加“ldap://192.168.1.62:389

 

5.2、开启“使用搜索绑定身份验证”

搜索“search_bind_authentication”改为“true”

 

5.3、配置“LDAP 搜索基础”

搜索“base_dn”添加“ou=People,dc=bigdata,dc=hex,dc=com

 

5.4、配置“LDAP 绑定用户可分辨名称”

搜索“bind_dn”添加“cn=Manager,dc=bigdata,dc=hex,dc=com

 

5.5、关闭“登录时创建 LDAP 用户”

搜索“create_users_on_login”修为“false”

 

5.6、配置“LDAP 绑定密码”

搜索“bind_password”添加“123456

 

5.7、配置“LDAP 用户筛选”

搜索“user_filter”添加“(objectClass=posixAccount)”

 

5.8、配置“LDAP 用户名属性”

搜索“user_name_attr”添加“uid”

 

5.9、配置“LDAP 组筛选”

搜索“group_filter”添加“(objectClass=posixGroup)”

 

5.10、配置“LDAP 组名称属性”

搜索“group_name_attr”添加“cn”

 

5.11、配置“LDAP 组成员身份属性”

搜索“group_member_attr”添加“memberUid”

 

5.12、添加/同步LDAP用户

保存所有配置,并重启Hue服务。注:在重启前需要之前有登录过HUE。

打开Hue服务使用第一次登陆的用户名和密码登录。

若要将组信息同步过来,还需要显式地进行LDAP组的同步,这样才能将真正的用户组信息取过来。

  

 

Hue管理LDAP用户组的逻辑是用户和组的独立管理,添加LDAP用户是不会将对应的组信息获取的;“添加/同步LDAP用户”只会添加对应用户或更新已有用户的组信息,其他不存在Hue中的其他用户是不会同步过来的;随后在Hue中“同步LDAP用户/组”时可以将LDAP的信息同步过来。

将其中一个LDAP账号设为高级管理员权限,因为之后使用LDAP方式登录HUE,第一次登陆的账号(这里是admin)将无法登录。

 

5.13、修改“身份验证后端”

搜索“backend”修为“desktop.auth.backend.LdapBackend”

 

5.14、配置“hue_safety_valve.ini Hue 服务高级配置代码段”

如果Hive已经设置LDAP验证,需在Hue中增加以下设置,否则Hue无法正常连接Hive进行查询。

搜索“hue_safety_valve.ini 的 Hue 服务高级配置代码段”添加如下内容:

[desktop]

ldap_username=hue

ldap_password=111111

 

5.15HDFS中配置“core-site.xml 的群集范围高级配置代码段”(无需配置)

在HDFS的配置中搜索“core-site.xml 的群集范围高级配置代码段”添加如下内容:

<property>

<name>hadoop.proxyuser.hue.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.hue.groups</name>

<value>*</value>

</property>

注:目前CDH版本中这个已经默认配置

 

5.16Impala中配置“Impala Daemon 命令行参数高级配置代码段”(无需配置)

在Impala的配置中搜索“Impala Daemon 命令行参数高级配置代码段”添加如下内容:

-authorized_proxy_user_config=hue=*

注:目前CDH版本中这个已经默认配置

 

5.17、重启Hue等相关服务

配置完成并保存后,重启Hue等相关服务。

 

5.18、其他注意事项

注意1LDAPusergroup的属性根据自己的LDAP服务配置的实际情况填入。

 

6、Hue通过LDAP认证测试

打开Hue的网页,使用LDAP中的用户junjie登录,此时第一次登陆的账号(这里是admin)已经无法再次登录。

 

进行Hive测试:

 

进行Impala测试:

 


有关各组件配置LDAP认证手册的更多相关文章

  1. ruby-on-rails - Ruby net/ldap 模块中的内存泄漏 - 2

    作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代

  2. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  3. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  4. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  5. 神州数码无线产品(AC+AP)配置 - 2

    注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配

  6. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  7. Ruby 默认将 IRB 配置为 Pretty_Inspect - 2

    我是ruby​​的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽

  8. ruby - 是否可以将 IRB 提示配置为动态更改? - 2

    我想在IRB中浏览文件系统并让提示更改以反射(reflect)当前工作目录,但我不知道如何在每个命令后进行提示更新。最终,我想在日常工作中更多地使用IRB,让bash溜走。我在我的.irbrc中试过这个:require'fileutils'includeFileUtilsIRB.conf[:PROMPT][:CUSTOM]={:PROMPT_N=>"\e[1m:\e[m",:PROMPT_I=>"\e[1m#{pwd}>\e[m",:PROMPT_S=>"FOO",:PROMPT_C=>"\e[1m#{pwd}>\e[m",:RETURN=>""}IRB.conf[:PROMPT_MO

  9. ruby - 如何配置 Ruby Mechanize 代理以通过 Charles Web 代理工作? - 2

    我正在使用Ruby/Mechanize编写一个“自动填写表格”应用程序。它几乎可以工作。我可以使用精彩CharlesWeb代理以查看服务器和我的Firefox浏览器之间的交换。现在我想使用Charles查看服务器和我的应用程序之间的交换。Charles在端口8888上代理。假设服务器位于https://my.host.com。.一件不起作用的事情是:@agent||=Mechanize.newdo|agent|agent.set_proxy("my.host.com",8888)end这会导致Net::HTTP::Persistent::Error:...lib/net/http/pe

  10. ruby - token 认证 - 2

    简单代码require'net/http'url=URI.parse('getjson/otherdatahere[link]')req=Net::HTTP::Get.new(url.to_s)res=Net::HTTP.start(url.host,url.port){|http|http.request(req)}putsres.body只是想知道如何在phpcURL中放置身份验证token,我是这样做的    curl_setopt($ch,CURLOPT_HTTPHEADER,array('Authorization:Bearerxxx'));//Bearertokenfora

随机推荐