ldap + sentry架构的相关结论的验证

9 篇文章 1 订阅
4 篇文章 0 订阅

文章目录

一、环境

ldap跟hdfs、hive整合,kerberos、sentry安装并启用。

二、非ldap下

1. 验证1:kerberos的认证、sentry的授权不关心用户的来源(ldap,linux),是独立于linxu和ldap的,可以不在linux创建对应用户。

kerberos、sentry只接收相关服务(hdfs、hive、impala)的认证、授权委托。验证用户是否认证、授权,用户是由服务提交的,至于用户最终映射到哪里(ldap、linux),kerberos、sentry并不关心

{1} 在ldap中添加一个linux中没有的entry(用户),先不赋sentry权限,查看这个用户是否可以访问hive。然后sentry再授权,查看访问情况

[1] 创建在linux中没有的ldap用户

创建组vim /opt/ldap-groups/testgroup.ldif
在这里插入图片描述
ldapadd -D “cn=ldapadmin,dc=example,dc=com” -W -x -f /opt/ldap-groups/testgroup.ldif -hnode105 -p389
在这里插入图片描述
创建用户vim /opt/ldap-users/testuser.ldif
在这里插入图片描述
ldapadd -D “cn=ldapadmin,dc=example,dc=com” -W -x -f /opt/ldap-users/testuser.ldif -hnode105 -p389
在这里插入图片描述
id testuser
在这里插入图片描述

[2] 进行krb认证

在这里插入图片描述
在这里插入图片描述

[3] 访问hdfs

没进行krb认证,报如下错误
在这里插入图片描述
如果kdestory,则不能访问
在这里插入图片描述
kinit testuser
在testuser认证的情况下,有的目录可以访问,有的访问不了
在这里插入图片描述
那是因为hdfs根本不归sentry管,通过自己的acls,在hue中给hdfs授权,其实也是走的acls,并不是sentry

[4] sentry未授权的情况下访问hive

beeline -u "jdbc:hive2://node105:10000/;principal=hive/node105@XYYH.COM"
后面的principal是hive服务的主体,用户是当前krb认证的

无法访问对应表。
在这里插入图片描述
此时testuser用户所在组testgroup没有任何角色:
在这里插入图片描述

[4] 赋予表sentry的权限,查看是否可以访问hive
  1. 切换到超级用户dcdcdc: kinit dcdcdc
    在这里插入图片描述

  2. beeline -u “jdbc:hive2://node105:10000/;principal=hive/node105@XYYH.COM”

  3. show roles; dcdcdc当然是可以获取的,testuser直接报错,因为没权限
    在这里插入图片描述

  4. show current roles;
    在这里插入图片描述

  5. 用超级用户给testuser授权
    创建role:create role testgrouprole;
    show roles;
    在这里插入图片描述
    将dctest库的权限付给testgrouprole: grant all on database dctest to ROLE testgrouprole;
    在这里插入图片描述
    将角色testgrouprole分配给testgroup组: GRANT ROLE testgrouprole TO GROUP testgroup;
    在这里插入图片描述

  6. 退出beeline,重新用testuser认证
    在这里插入图片描述
    beeline -u “jdbc:hive2://node105:10000/;principal=hive/node105@XYYH.COM”
    show current roles;会发现相比上一节,多了role
    在这里插入图片描述
    再次查询select * from dctest.test limit 10;会发现能查到dctest库中的数据。
    在这里插入图片描述

2. 验证2:整合ldap后,不在ldap但在linux的用户是否仍可以访问hive

kinit hive/hive, 发现可以访问
在这里插入图片描述
在这里插入图片描述

三、ldap整合cdh后相关验证

1. ldap中创建的用户linux是否可以查到、登陆、使用ssh登陆

在ldapadmin中创建一个用户test1在这里插入图片描述
在linux中使用ldapsearch -D “cn=admin,dc=xyyh,dc=com” -W |grep dn可以查到,在id test1却提示没有这个用户。==》
需要安装sssd
第一遍安装时没有安装ssd,之后在步骤中添加,最后所有客户端linux中可以查看到ldap中添加linux中没有添加的用户:但这个用户必须符合linux 的基本要求,比如要有组,如果ldap中添加一个没有组的用户,linux中还是查不到
在这里插入图片描述

2. ldap中创建一个用户和组,linux上不建。在hive中是否可以使用;是否可以使用sentry控制权限。hue中是否也能映射用户、组、权限。

在ldap上创建1个linux中没有的用户,设置好组,然后在不同sentry权限的情况下测试。

{1} 创建用户时并设置组,注意:创建用户时objectClass不能只选posixAccount,创建组时可以只选posixGroup

在这里插入图片描述

### {2} 在hive的beeline中测试

此时已经可以直接用test12登陆hive了
在这里插入图片描述
select current_user();
在这里插入图片描述
因为还没有授权,所以只能查看默认库
在这里插入图片描述
授权,另开一个窗口用超级用户hive登陆
在这里插入图片描述
此时就可以查看所有库了,也可以查看表中数据
在这里插入图片描述
在这里插入图片描述
再把权限取消
在这里插入图片描述
此时就不能查看了
在这里插入图片描述

{3} hue

## 3. 在beeline命令中 + ldap一个用户多个组的时 :测试sentry ### {1} src 环境: 2个库,test1和test2, test1下有表test1_table,数据是1,1 test2下有表test2_table,数据是2,2

思路:
创建2个role,role1有test1的权限,role2有test2的权限。
在ldap中的用户test12,目前有一个组test12group,给它添加2个组,group1和group2,然后分别授role1和role2。
看看sentry是否能正常发挥作用。

{2} process

创建role,授权role
create role role1;grant all on database test1 to role role1;show grant role role1;
在这里插入图片描述
create role role2;grant all on database test2 to role role2;show grant role role2;
在这里插入图片描述

ldap中创建2个组
在这里插入图片描述
sentry中建立组和role的关联

取消test12group组的role,此时test12用户只能查看default库
在这里插入图片描述
只给test12授role1,查看show databases;和select * from test1.test1_table;

只给test12授role2,取消role1,查看show databases;和select * from test2.test2_table;

目前,beeline中发现只认一个主组,别的组的role都无效,除非把主组给删掉,其他组的role才发挥作用。如何才能使用户和组多对多???

3. linux中是否可以同步ldap中多对多的用户-组的关系

{1}

安装sssd
sssd配置用户和组的多对多

{2} 亲测,是可以的。需要修改sssd的配文

【1】需要sssd的ldap_schema = rfc2307bis修改为rfc2307,因为默认就是rfc2307,所以直接注释即可。注意:所有节点上的/etc/sssd/sssd.conf都要改,sssd服务在每个节点上都有

LDAP的Schema定义了服务器上检索到默认属性名以及一些属性的含义,特别是成员属性。有两种最广泛的使用模式rfc2307和rfc2307bis,rfc2307为默认的模式。当使用rfc2307模式时,组成员是配置在memberUid的属性中。使用rfc2307bis模式时,需要在sssd.conf文件中增加如下配置;
在这里插入图片描述

【2】 在ldap中,每个用户设置主组,然后在每个组下添加memberUid。此时进入linux用id xxx查看,发现还是原来的,这是因为sssd有缓存,使用sss_cache -E清除缓存。linux就可以借助sssd完美映射ldap中用户和组的关系了。

下图中的test12用户和它的3个组都是ldap中的,linux中都没有。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值