tonglin0325的个人主页

CDH5.16集成ldap

集成ldap之前请参考安装好openldap:Ubuntu16.04安装openldap和phpldapadmin

1.hadoop集成ldap

HDFS 的文件权限与 Linux/Unix 系统类似,也是采用UGO模型,分成用户、组和其他权限。其权限you两种实现方式:1.基于Linux/Unix系统的用户和用户组;2.基于使用LDAP协议的数据库

参考网易数帆的文章:HDFS权限管理实践

使用基于Linux/Unix系统的用户和用户组,即 hadoop.security.group.mapping 的值为 org.apache.hadoop.security.ShellBasedUnixGroupsMapping

使用基于使用LDAP协议的数据库,即 hadoop.security.group.mapping 的值为
 org.apache.hadoop.security.LdapGroupsMapping

首先在phpldapadmin上配置好user和group

1.给用户创建一个新的ou,叫person

 

并在这个person ou下面创建一个名为xiaoming的person

 

选择默认

选择person

 

 

2.给组创建新的ou,叫hadoopGroup

 

然后在这个hadoopGroup ou下面创建一个groupOfNames的object,名为hive

 

 

并把刚刚的xiaoming用户添加到hive用户组中

 

在CDH上配置hadoop

 

hadoop.security.group.mapping.ldap.search.filter.user 的值为

(|(&(objectClass=person)(cn={0}))(&(objectClass=account)(uid={0})))

将会同时支持os用户和外部用户的权限,需要注意外部用户和os用户不能同名,否则hue会无法登录

然后重启集群,接下来验证权限

可以看到外部用户xiaoming属于hive组,和ldap上配置的一样,即表示CDH hadoop集成ldap成功

1
2
3
4
root@master:~# kinit -kt /var/lib/hadoop-hdfs/hdfs.keytab hdfs/master@HADOOP.COM
root@master:~# hdfs groups xiaoming
xiaoming : hive

再将os用户hive也拉到hive组中

1
2
3
root@master:~# hdfs groups hive
hive : hive

os用户hive也拥有了hive组的权限

参考:Setting Up Hadoop Group Mapping for LDAP/AD

hdfs+hive+impala+hue+sentry与ldap整合全套方案

CDH5.10.0基于OpenLDAP配置 Hadoop GroupMapping

 

如果你参考下面的配置来集成ldap的话,只能对linux上的用户生效,而对于外部在os上不存在的用户,及时在ldap上添加了组,也不能拿到访问hdfs的权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Hadoop 用户组映射实现 
hadoop.security.group.mapping

org.apache.hadoop.security.LdapGroupsMapping
----------------------------------------------------------------
Hadoop 用户组 进程ping LDAP URL
hadoop.security.group.mapping.ldap.url

ldap://master
----------------------------------------------------------------
Hadoop 用户组映射 LDAP 绑定用户可分辨名称
hadoop.security.group.mapping.ldap.bind.user

uid=admin,ou=people,dc=hadoop,dc=com
----------------------------------------------------------------
Hadoop 用户组 进程ping 搜索基础
hadoop.security.group.mapping.ldap.base

dc=hadoop,dc=com
----------------------------------------------------------------
Hadoop 用户组 进程ping LDAP 用户搜索筛选器
hadoop.security.group.mapping.ldap.search.filter.user

(&(objectClass=posixAccount)(uid={0}))
-----------------------------------------------------------------
Hadoop 用户组 进程ping LDAP 组搜索筛选器
hadoop.security.group.mapping.ldap.search.filter.group

(objectClass=posixGroup)
-----------------------------------------------------------------
Hadoop 用户组 进程ping LDAP 组成员身份属性
hadoop.security.group.mapping.ldap.search.attr.member

memberUid
-----------------------------------------------------------------
Hadoop 用户组 进程ping LDAP 组名称属性
hadoop.security.group.mapping.ldap.search.attr.group.name

cn
-----------------------------------------------------------------
Hadoop 用户组 进程ping LDAP 绑定用户密码
hadoop.security.group.mapping.ldap.bind.password

password
-----------------------------------------------------------------
hdfs-site.xml的HDFS服务高级配置代码段(安全阀)

hadoop.security.group.mapping.ldap.posix.attr.uid.name
uid

hadoop.security.groups.cache.secs
10
-----------------------------------------------------------------
core-site.xml的群集范围高级配置代码段(安全阀)

hadoop.security.group.mapping.ldap.posix.attr.uid.name
uid
-----------------------------------------------------------------
hadoop-policy.xml的HDFS服务高级配置代码段(安全阀)

hadoop.security.group.mapping.ldap.posix.attr.uid.name
uid

 

2.HUE集成ldap

hue也同时支持os用户和外部用户登录

 

 

参考:6.如何为Hue配置OpenLDAP认证