您的位置:首页 > 大数据

基于LDAP和Sentry的大数据认证和鉴权解决方案--Part One:LDAP集成

2016-12-28 14:41 1291 查看
1,背景

项目中需要对大数据平台进行数据权限管理,涉及到数据访问的认证和鉴权。大数据平台中有三个数据访问的入口:HUE,impala-shell和beeline(for hive)。每种入口都必须提供用户名和密码,并且,根据用户所在的角色,能访问的数据库和表是各不相同的。

在项目中采用了LDAP来作为用户的认证机制,使用Sentry来对用户进行数据权限的管理。

整个大数据的运维采用了Cloudera Manager的5.8.0的版本,本文也是基于CM5.8.0来介绍的。

2,LDAP认证实现

由于项目的需求是对HUE,impala-shell和beeline都要进行访问认证,所以需要分别在HUE,Impala和Hive中分别实现LDAP的集成。但不管那个系统与LDAP的集成,不外乎都要配置三个基本的属性:1)告诉系统我要与LDAP集成。2) LDAP服务器的地址。3)LDAP的baseDN。

本文假定LDAP已经成功安装,LDAP打安装和配置网上可以参考的文章很多。

2.1,LDAP和Hive的集成。



完成上面的配置后重新启动Hive,配置就生效了,次数如果通过beeline来链接hive,就需要提供用户名和密码了。例如:

beeline -u "jdbc:hive2://ddw-test-1:10000" -n hive -p hive -d org.apache.hive.jdbc.HiveDriver

如果没有提供用户名和密码,或者用户名密码不匹配,就会报错,如下图



2.2,LDAP与Impala的集成

LDAP和Impala的集成与和Hive的集成非常的类似,除了Hive中提到的3个配置项之外,还需要多配一个配置项(如下图),以告诉Impala密码可以通过明文来传播(如果你的环境中没有配置TSL并且又没有设置这个配置,impala将无法正常启动)



完成上述配置并重启Impala使配置生效,此时用impala  去访问就需要输入密码了,如下图所示:



2.3 LDAP和HUE的集成

LDAP和HUE的集成依然必须包含那三个关键的要素:告诉HUE要启动LDAP认证,LDAP的Server地址以及baseDN

#告诉Hue使用LDAP来做认证
backend=desktop.auth.backend.LdapBackend



#LDAP服务器的地址
ldap_url=ldap://ddw-test-5



# ldap登陆用户的模板,username运行时被替换
ldap_username_pattern="uid=<username>,ou=people,dc=javachen,dc=com"



#其他snippet,Hue登录时,需要使用一个预设的用户名和密码去连接hive/impala,连接成功之后,当真正执行QL的时候,还使用登录时的账号来做鉴权。
[impala]
server_host=ddw-test-5
server_interface=hiveserver2
server_port=21050
query_timeout_s=100
impersonation_enabled=True
auth_username=hue
auth_password=hue

[beeswax]
close_queries=True
use_sasl=False
auth_username=hue
auth_password=hue



至此,LDAP和HUE,Impala,Hive的整合就完成了。用户访问HUE,Impala以及Hive都需要提供用户名和密码了。

整合的过程也遇到了各种问题,但没有任何问题是查看错误日志和google不能解决的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: