文章目录

  • 一、环境
  • 二、非ldap下
    • 1. 验证1:kerberos的认证、sentry的授权不关心用户的来源(ldap,linux),是独立于linxu和ldap的,可以不在linux创建对应用户。
      • {1} 在ldap中添加一个linux中没有的entry(用户),先不赋sentry权限,查看这个用户是否可以访问hive。然后sentry再授权,查看访问情况
        • [1] 创建在linux中没有的ldap用户
        • [2] 进行krb认证
        • [3] 访问hdfs
        • [4] sentry未授权的情况下访问hive
        • [4] 赋予表sentry的权限,查看是否可以访问hive
    • 2. 验证2:整合ldap后,不在ldap但在linux的用户是否仍可以访问hive
  • 三、ldap整合cdh后相关验证
    • 1. ldap中创建的用户linux是否可以查到、登陆、使用ssh登陆
    • 2. ldap中创建一个用户和组,linux上不建。在hive中是否可以使用;是否可以使用sentry控制权限。hue中是否也能映射用户、组、权限。
      • {1} 创建用户时并设置组,注意:创建用户时objectClass不能只选posixAccount,创建组时可以只选posixGroup
      • {3} hue
      • {2} process
    • 3. linux中是否可以同步ldap中`多对多的用户-组的关系`
      • {1}
      • {2} 亲测,是可以的。需要修改sssd的配文
        • 【1】**需要sssd的ldap_schema = rfc2307bis修改为rfc2307,因为默认就是rfc2307,所以直接注释即可。`注意:所有节点上的/etc/sssd/sssd.conf都要改,sssd服务在每个节点上都有`**
        • 【2】 在ldap中,每个用户设置主组,然后在每个组下添加memberUid。此时进入linux用id xxx查看,发现还是原来的,这是因为sssd有缓存,使用`sss_cache -E`清除缓存。linux就可以借助sssd完美映射ldap中用户和组的关系了。

一、环境

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中都没有。

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

  1. Hive+LDAP+Sentry

    为什么80%的码农都做不了架构师?>>>    介绍 hadoop生态里面常用的安全认证无非两种kerberos和ldap,kerberos的繁琐已经领教过了,ldap还好在生产中也 ...

  2. java ladp用户认证_java – LDAP:如何使用连接详细信息验证用户身份

    我无法使用LDAP对用户进行身份验证.我有以下细节: URL=ldap://10.10.10.10:389 LDAP BASE:DC=lab2,DC=ins LDAP Bind Account: CN ...

  3. 微服务架构和相关的组件

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...

  4. UA SIE545 优化理论基础1 例题2 Farkas定理与相关结论

    UA SIE545 优化理论基础1 例题2 Farkas定理与相关结论 Farkas定理的证明方法 Gordan定理 Farkas定理是分离定理的直接结果: Farkas定理 AAA是一个m×nm\t ...

  5. 【转】BI 入门: 体系架构及相关技术

    (1) 老板,你要这么多数据做什么?         假如你是一个商品零售公司的老板.     你的公司很先进,已经实现了业务信息化,每一笔销售单据都保存在数据库中,日积月累,已经保存了十余年的销售数 ...

  6. linux中关于ssh实验,操作系统实验三linux的telnetftpssh的相关配置及验证

    操作系统实验三linux的telnetftpssh的相关配置及验证 -1-昆明理工大学信息工程与自动化学院学生实验报告( 2010 -2011 学年第 二 学期 )课程名称:操作系统 开课实验室:信自 ...

  7. 安卓启动相关以及架构设计相关

    安卓启动相关以及架构设计相关 我们知道安卓大多数是服务等的启动是伴随着init进程启动一起启动,这个init进程类似于linux的init,进程pid为1. 读过安卓源代码的人都应该非常熟悉init会 ...

  8. 矩阵的Kronecker积的相关结论

    矩阵的Kronecker积的相关结论 矩阵的Kronecker积 矩阵的Kronecker积的定义 矩阵的Kronecker积的性质 矩阵的拉直 矩阵的拉直的定义 矩阵的拉直的性质 矩阵的方程 矩阵的 ...

  9. 【运筹学】对偶理论 : 总结 ( 对偶理论 | 原问题与对偶问题对应关系 | 对偶理论的相关结论 ) ★★★

    文章目录 一.对偶理论 1.对称性定理 2.弱对偶定理 3.最优性定理 4.强对偶性 5.互补松弛定理 二.原问题与对偶问题对应关系 二.对偶理论的相关结论 1.对偶问题存在 2.对偶问题转化 3.对 ...

最新文章

  1. 算法时间复杂度求解法【详细过程说明】
  2. 前期优达无人驾驶对课程评价
  3. 2020年度最佳的23个的机器学习项目(附源代码)
  4. React开发(248):react项目理解 ant design input autosize
  5. Mybatis-plus 大数据量数据流式查询通用接口
  6. python官方下载电脑版-Python for windows
  7. Spark与MR的区别
  8. cadence菜鸟之旅
  9. 第三章 机器人系统的动力学模型
  10. 白话区块链 之 14 - ​区块链的技术意义
  11. 伺服舵机带参方向控制
  12. 测试前的准备:搭建测试环境
  13. 齐齐哈尔大学计算机专业好么,齐齐哈尔大学(专业学位)计算机技术考研难吗
  14. 《动手学深度学习》(七) -- 边界框和锚框
  15. python实现千牛客服自动回复语_千牛自动回复话术
  16. MySQL Overview
  17. 然之协同系统漏洞利用汇总
  18. IBM将裁员1700人,科技公司最好的时代过去了吗?
  19. word中插入图表改变数据系列产生在行或列
  20. Matlab中正则表达式

热门文章

  1. 前端-js网页特效(一)倒计时效果及原理
  2. 魅蓝note2解锁bootloader教程
  3. 还不懂苹果的税收政策及结算问题?看这篇就够了!
  4. Android加载PDF文档
  5. 2022-2028全球与中国汽车制动系统市场现状及未来发展趋势
  6. DirectShow之视频处理
  7. 开源之夏 2022 重磅来袭,欢迎报名 Casbin社区项目
  8. html背景图片溢出,如何清除背景图片溢出?
  9. 【Eclipse使用技巧】格式化代码的方法 + 解决注释是繁体字的方法
  10. PayPal开发之IPN的使用