公司用的cdh版本为5.14,sentry集成的步骤很简单,参照官方文档就可以完成了:
https://www.cloudera.com/documentation/enterprise/5-14-x/topics/sentry.html
本文主要写一些openldap的搭建和phpldap的使用,还有ldap和(hive,impala,hue)的整合。
ldap的具体概念可以参照这篇文章
LDAP概念和原理介绍
我的系统是centos6,所以有些命令centos7的不太一样,总体区别不大。
一.安装OpenLDAP
yum install openldap openldap-clients openldap-servers
安装完直接启动
service slapd start
设置管理员密码
slappasswd -h {SSHA}
然后会让你输入一个明文密码,返回给你一个加密的密码,记住这个返回的密码
使用ldapsearch命令查询管理员的dn:
ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=config olcRootDN=cn=Manager,dc=**,dc=com dn olcRootDN olcRootPW
这里返回的dn是olcDatabase={2}bdb,cn=config,密码等信息也都一并返回。这里有用的是dn和密码的加密方式,比如这里是SSHA,dn是后面修改的Entry DN,而知道密码的加密方式就可以使用该加密方式生成新密码。
使用ldapmodify修改条目
使用下面的命令来修改管理员条目:
ldapmodify -Y EXTERNAL -H ldapi:///
然后输入修改的条目,也就是第1步中获取到的DN:
dn: olcDatabase={2}bdb,cn=config
#这是第1步获取的管理员dn
replace: olcRootPW
olcRootPW: {SSHA}vAYFH48G4IfrpD57gTR/DNZqLHWzR+Fg
#这里是上面slappasswd生成的密码
输入完毕后,按Crtl+D键保存退出交互模式。
如果出现:
modifying entry "olcDatabase={2}bdb,cn=config"
重启服务使修改生效
/etc/init.d/slapd restart
到此就设定好了管理员的密码。可以用客户端去管理openldap了
打算使用phpldapadmin来管理openldap,这个工具使用的人较多,网上文档多,出现问题容易解决。
二.安装phpldapadmin
首先安装Apache和PHP:
yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml
然后安装phpldapadmin:
yum -y install phpldapadmin
httpd与phpldapadmin进行集成:
修改配置文件:
[root@localhost ~]# vim /etc/phpldapadmin/config.php
#397行取消注释,398行添加注释
$servers->setValue('login','attr','dn');
// $servers->setValue('login','attr','uid');
[root@localhost ~]# vim /etc/httpd/conf.d/phpldapadmin.conf
// 修改配置
把下面的Deny from all 改为Allow from all
修改完之后启动:
service httpd restart
界面:
登陆
用户名,默认是 cn=Manager,dc=my-domain,dc=com(这个也可以改的,仿照修改密码的步骤)
密码就输入刚开始设置的密码
登陆进去后,我的管理界面报这个信息:
This base cannot be created with PLA
显示结果如下:
经过查询,最终总结和处理如下:
1、首先需要在/etc/openldap/目录下,创建一个base.ldif文件,如下所示:
写uid=
2、在base.ldif文件中,写入如下信息,为创建初始化根节点做准备工作:
3、执行ldapadd -f base.ldif -x -D cn=Manager,dc=DouBi,dc=Ren –W 输入之前配置OpenLDAP的密码后,即可完成创建LDAP根节点,如下图所示:
完成以上操作后,再回到phpldapadmin页面,可以看到,已经正常出现了根节点,并可以创建相关OU、Group、Account等对象,如下图所示:
三.整合ldap和hive,impala,hue
先用phpldapadmin在ldp创建一个用户去测试:
首先创建一个ou,叫users
然后再在users下创建一个用户:jiandan
注意,在创建新条目时,可以选择选择默认,然后选inetOrgPerson,那么创建好之后记录则是以uid开头的,如果选Posix或者Generic User Account,记录则是以cn开头的,这个和
按下图选择
这张图用的别人的,如果按我的配置,BaseDN则写:
ou=users,dc=my-domain,dc=com
然后用beeline进行测试
这样就是通过ldap的验证了,如果密码不正确则会:
然后整合impala:
修改配置,和hive类似:
不过要在高级代码段里面增加一个参数,因为我们的密码是明文传输,否则imapala启动不了。
重启impala后,我们来测试
发现已经ok了。
最后我们来整合hue
首先需要配置这些
这个配置好以后,我们就可以登陆hue了,我们看到登陆的界面已经多了个ldap
我们需要配置一些额外的参数从而让hue用户可以代理其他的用户
1.在ldap中创建hue用户
2.hue_safety_valve.ini 的 Hue 服务高级配置代码段(安全阀)中配这些
[beeswax]
close_queries=True
use_sasl=False
auth_username=hue
auth_password=xxxxxxx
[impala]
server_host=datanode1
server_interface=hiveserver2
server_port=21050
query_timeout_s=100
impersonation_enabled=True
auth_username=hue
auth_password=xxxxxxx
在hive和i mpala的core-site.xml 的 Hive 服务高级配置代码段(安全阀)中增加以下配置:
impala的Impala 命令行参数高级配置代码段(安全阀)中再加上
--authorized_proxy_user_config=hue=*
然后就不会报这个错误了。
以上就基本完成了ldap和hive impala hue的整合。
下周会继续研究
LDAP和HUE的集成(搜索绑定)
https://blog.csdn.net/u011026329/article/details/79171890
转载于:https://blog.51cto.com/xiaolanlan/2378004