基于Kerberos+Ldap复合认证的大数据权限
● 系统环境说明
Linux环境:centos7.4
CDH:5.16.1
Java:1.8.0_131
LDAP版本:2.4.44
Kerberos版本:1.15.1
● 集群配置
机器数量:50
内存:64G
硬盘:4T
CPU核心数:32
关于Kerberos与Ldap两个方案,此处就不再赘述,分别参考我的另外两篇文章:
Kerberos:基于Kerberos认证的大数据权限解决方案
Ldap:基于LDAP认证的大数据权限解决方案
本篇文章主要讲述如何将KDC与Ldap相整合,整合过程比较简单,下面我们来进行操作。
前提:集群已完成Kerberos、Ldap的权限认证。
为了使Kerberos能够绑定到OpenLDAP服务器,需要创建一个管理员用户和一个principal,并生成keytab文件
设置该文件的权限为LDAP服务运行用户可读(一般为ldap):
创建LDAP绑定管理员
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用户测试
kinit ldapadmin
增加KRB5_KTNAME配置
确保LDAP启动时使用上一步中创建的keytab文件,在/etc/sysconfig/ldap中增加:
export KRB5_KTNAME=/etc/openldap/ldap.keytab
引入 kerberos 的 schema:
cp /usr/share/doc/krb5-server-ldap-1.10.3/kerberos.schema /etc/openldap/schema/
修改配置
修改配置文件/etc/openldap/slapd.conf,在include下追加以下内容:
include /etc/openldap/schema/kerberos.schema
更新slapd.d
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服务
systemctl restart slapd
所有失去的,都会以另一种方式回到你身边。