OpenLDAP + Ranger +Kerberos 三方集成实现身份、权限认证

        基于OpenLDAP和Kerberos权限认证,在Ranger配置权限策略,实现三方集成。身份认证和权限管理之间又会产生什么火花~,下面将我们一步步揭开它们的神秘面。

         在我们搜索时,常见的两张关于三方集成之间关系的图。可以说很清晰的阐述了三者之间的关系。【图片是借鉴的哈!】

OpenLDAP + Ranger +Kerberos 三方集成实现身份、权限认证_第1张图片

OpenLDAP + Ranger +Kerberos 三方集成实现身份、权限认证_第2张图片

        基于图片逻辑,我们来进行实操讲解。 

一、OpenLDAP创建用户,并同步到Ranger

        1、环境准备OpenLDAP、Ranger

        2、创建用户

        2.1 安装vim插件apt-get update -y && apt-get install -y vim

        2.2 vim用户test.ldif文件

vim test.ldif
dn: [email protected],cn=CYBEROPS.DATAC.COM,cn=kerberos
 ,dc=datac,dc=com
krbLoginFailedCount: 0
krbPrincipalName: [email protected]
krbPrincipalKey:: MIIBkqADAgEBoQMCAQGiAwIBAaMDAgEBpIIBejCCAXYwRKAHMAWgAwIBAKE5
 MDegAwIBEaEwBC4QADDwBeuV42XUcM7rYb5HXj6pLFSQVWuHHuQwZkgBNssStNEKTaWLR1b71KSpM
 ESgBzAFoAMCAQChOTA3oAMCARehMAQuEAB9G42BtqYIdZnh9LZ5/RGcjOvKNEIWLj4LSBanqM0EuB
 ObXruB5/3LrfjNDjBUoAcwBaADAgEAoUkwR6ADAgEaoUAEPiAADgqlx9kQ1XxqrOI64WQ+MPg6nW7
 sA7HqKBGOJf+vMFmeHQRq8WhMeMXGSMWlxzmrvlGU6tJIxC56NJg7MESgBzAFoAMCAQChOTA3oAMC
 ARmhMAQuEAA7QNjXfhzks4k2TVFAtPfve/krsyGUpqO5ejcBYQQE+psrTsgSFZObF3pS8TBMoAcwB
 aADAgEAoUEwP6ADAgEQoTgENhgAWfnJn9NDBD20Dso7vAgBJ0DcGlIwF5MBwzv8UyAtrXvsdUxgv5
 FTYz6N01sxOrWKqvpyHA==
krbLastPwdChange: 20221020055012Z
krbExtraData:: AAKU4VBjcm9vdC9hZG1pbkBDWUJFUk9QUy5EQVRBQy5DT00A
krbExtraData:: AAgBAA==
objectClass: krbPrincipalAux
objectClass: krbTicketPolicyAux
objectClass: person
cn: test
sn: test01
userPassword: 123456
description: 测试用户是否同步

        # 将数据拷贝到组件opt下面:

         kubectl cp test.ldif k8s的命名空间/ldap的集群节点:/opt/ 

        2.3 向Ldap中添加用户数据

        ./ldapadd -x -D cn=admin,dc=datac,dc=com -W -f /opt/test.ldif

        

        #进入kerberos下查看用户

        cd /opt/kerberos/sbin/

        ./kadmin.local

        #查看添加用户

        list_principals

 OpenLDAP + Ranger +Kerberos 三方集成实现身份、权限认证_第3张图片

        2.4 在Ranger页面查看用户

        # 如果用户不存在,可能是ranger-userSync未到同步时间,可查看上次同步时间

        #如果未同步,则可以重启ranger-userSync服务:

        #进入ranger的Pod内执行命令: ranger-usersync restart

         2.5确认Ranger和OpenLDAP是否都 已经存在用户

OpenLDAP + Ranger +Kerberos 三方集成实现身份、权限认证_第4张图片

         #在OpenLDAP的web页面查看用户已经同步成功

OpenLDAP + Ranger +Kerberos 三方集成实现身份、权限认证_第5张图片

二、Kerberos创建用户,并同步到OpenLDAP

        1、环境准备 Kerberos、Ranger

        2、由于我已经安装OpenLDAP环境我就不赘述了,从Kerberos客户端安装开始记录

        2.1安装Kerberos客户端,使用如下命令:

        yum install krb5-workstation

OpenLDAP + Ranger +Kerberos 三方集成实现身份、权限认证_第6张图片

       2.2 配置kerberos的客户端

        获取kerberos的配置文件krb5.conf。

        方式一:从kerberos的服务端进行获取

        # krb5.conf配置文件的位置:/opt/kerberos/etc/krb5.conf

        # 使用kubectl cp 拷贝到k8s节点的物理机上,再拷贝到测试用的服务器的/etc/krb5.conf

        # 或者安装 openssh-client,使用scp 直接拷贝krb5.conf文件到指定的服务器上;

        注意:krb5.conf文件realms的配置项,修改为kerberos服务端外部可访问的ip:端口

        方式二:从HDFS的namenode中获取

        # HDFS是使用docker部署的,且HDFS中已经集成了kerberos的,可以进入到namenode的容器中

        docker exec -it 容器名称 /bin/bash

        # 将/etc/krb5.conf拷贝到对应的主机上,可以使用scp命令

        scp /etc/krb5.con [email protected]:/etc/krb5.conf

        注意:从docker容器内获取kerberos的配置文件时,无需做任何修改

  scp命令无法使用需安装插件,命令如下:

        apt-get update -y && apt-get install -y openssh-client

        2.3创建kerberos账号

        # 进入到Kerberos服务端,进行创建账号

        # 进入kerberos的命令交互页面

        sbin/kadmin.local

        # 添加账号

        addprinc test

        # 查看账户信息

        list_principals

OpenLDAP + Ranger +Kerberos 三方集成实现身份、权限认证_第7张图片

        # 生成账号对应keytab文件

        sbin/kadmin.local -q "xst -norandkey -k keytab文件位置 test/@XX.XX"

OpenLDAP + Ranger +Kerberos 三方集成实现身份、权限认证_第8张图片

        注意事项

        kerberos验证,因此需要配置组件的主机名和主机ip映射;

        ranger时,创建数据库/数据表/目录/文件等所属用户拥有对该项的所有操作权限;        

        ip的hosts映射

        3、Kerberos用户添加成功,同步到OpenLDAP

OpenLDAP + Ranger +Kerberos 三方集成实现身份、权限认证_第9张图片

         在三方集成的基础上,可以进行接入大数据组件(Zookeeper、Hadoop、Hive、Hbase、Yarn、Flink、Kafka、Spark、Hue),从而达到使用Ranger + Kerberos +各组件实现用户、权限、认证的控制。

你可能感兴趣的:(大数据,大数据组件集成,docker,linux,运维)