集成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认证