公司用的cdh版本爲5.14,sentry集成的步驟很簡單,通過cdh的界面就可以完成了 主要寫一些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
// 修改配置
<IfModule mod_authz_core.c>
Apache 2.4
Require local
#添加一行內容,指定可訪問的ip段(雖然我也不知道爲什麼,但不填不能運行這管理工具,我就直接寫的本地ip)
Require ip 172.31.101.110
</IfModule>
把下面的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文件,如下所示:
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,不要選擇什麼Posix或者Generic User Account,否則後面驗證不通過
按下圖選擇
首先整合hive:
在cdh裏面修改一下配置:
這張圖用的別人的,如果按我的配置,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