基于Kerberos+Ldap复合认证的大数据权限

2021-09-26 17:17:21 浏览数 (2)

说明

本文描述问题及解决方法同样适用于 弹性 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大数据复合认证权限的整合。

0 人点赞