说明
本文描述问题及解决方法同样适用于 弹性 MapReduce(EMR)。
- 系统环境说明
Linux环境:centos7.4
CDH:5.16.1
Java:1.8.0_131
LDAP版本:2.4.44
Kerberos版本:1.15.1
背景
关于Kerberos与Ldap两个方案,此处就不再赘述,分别参考我的另外两篇文章:
Kerberos:基于Kerberos认证的大数据权限解决方案
Ldap:基于LDAP认证的大数据权限解决方案
前提:集群已完成Kerberos、Ldap的权限认证。
本篇文章主要讲述如何将KDC与Ldap相整合,整合过程比较简单,下面我们来进行操作。
创建LDAP绑定管理员
为了使Kerberos能够绑定到OpenLDAP服务器,需要创建一个管理员用户和一个principal,并生成keytab文件
设置该文件的权限为LDAP服务运行用户可读(一般为ldap):
代码语言:javascript复制kadmin.local -q "addprinc ldapadmin@CDH.AI.COM"
kadmin.local -q "addprinc -randkey ldap/cdh01.ali.aiwaystack.com@CDH.AI.COM"
kadmin.local -q "ktadd -k /etc/openldap/ldap.keytab ldap/cdh01.ali.aiwaystack.com@CDH.AI.COM"
chown ldap:ldap /etc/openldap/ldap.keytab && chmod 640 /etc/openldap/ldap.keytab
使用ldapadmin用户测试
代码语言:javascript复制kinit ldapadmin
增加KRB5_KTNAME配置
确保LDAP启动时使用上一步中创建的keytab文件,在/etc/sysconfig/ldap中增加:
代码语言:javascript复制export KRB5_KTNAME=/etc/openldap/ldap.keytab
引入 kerberos 的 schema:
代码语言:javascript复制cp /usr/share/doc/krb5-server-ldap-1.10.3/kerberos.schema /etc/openldap/schema/
修改配置
修改配置文件/etc/openldap/slapd.conf,在include下追加以下内容:
代码语言:javascript复制include /etc/openldap/schema/kerberos.schema
其他不变。
更新slapd.d
代码语言:javascript复制slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
chown -R ldap:ldap /etc/openldap/slapd.d && chmod -R 700 /etc/openldap/slapd.d
重启slapd服务
代码语言:javascript复制systemctl restart slapd
至此,则完成了基于Kerberos Ldap大数据复合认证权限的整合。