ldap + sentry架构的相关结论的验证
文章目录
- 一、环境
- 二、非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
切换到超级用户dcdcdc:
kinit dcdcdc
beeline -u “jdbc:hive2://node105:10000/;principal=hive/node105@XYYH.COM”
show roles; dcdcdc当然是可以获取的,testuser直接报错,因为没权限
show current roles;
用超级用户给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;
退出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架构的相关结论的验证相关推荐
- Hive+LDAP+Sentry
为什么80%的码农都做不了架构师?>>> 介绍 hadoop生态里面常用的安全认证无非两种kerberos和ldap,kerberos的繁琐已经领教过了,ldap还好在生产中也 ...
- java ladp用户认证_java – LDAP:如何使用连接详细信息验证用户身份
我无法使用LDAP对用户进行身份验证.我有以下细节: URL=ldap://10.10.10.10:389 LDAP BASE:DC=lab2,DC=ins LDAP Bind Account: CN ...
- 微服务架构和相关的组件
点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...
- UA SIE545 优化理论基础1 例题2 Farkas定理与相关结论
UA SIE545 优化理论基础1 例题2 Farkas定理与相关结论 Farkas定理的证明方法 Gordan定理 Farkas定理是分离定理的直接结果: Farkas定理 AAA是一个m×nm\t ...
- 【转】BI 入门: 体系架构及相关技术
(1) 老板,你要这么多数据做什么? 假如你是一个商品零售公司的老板. 你的公司很先进,已经实现了业务信息化,每一笔销售单据都保存在数据库中,日积月累,已经保存了十余年的销售数 ...
- linux中关于ssh实验,操作系统实验三linux的telnetftpssh的相关配置及验证
操作系统实验三linux的telnetftpssh的相关配置及验证 -1-昆明理工大学信息工程与自动化学院学生实验报告( 2010 -2011 学年第 二 学期 )课程名称:操作系统 开课实验室:信自 ...
- 安卓启动相关以及架构设计相关
安卓启动相关以及架构设计相关 我们知道安卓大多数是服务等的启动是伴随着init进程启动一起启动,这个init进程类似于linux的init,进程pid为1. 读过安卓源代码的人都应该非常熟悉init会 ...
- 矩阵的Kronecker积的相关结论
矩阵的Kronecker积的相关结论 矩阵的Kronecker积 矩阵的Kronecker积的定义 矩阵的Kronecker积的性质 矩阵的拉直 矩阵的拉直的定义 矩阵的拉直的性质 矩阵的方程 矩阵的 ...
- 【运筹学】对偶理论 : 总结 ( 对偶理论 | 原问题与对偶问题对应关系 | 对偶理论的相关结论 ) ★★★
文章目录 一.对偶理论 1.对称性定理 2.弱对偶定理 3.最优性定理 4.强对偶性 5.互补松弛定理 二.原问题与对偶问题对应关系 二.对偶理论的相关结论 1.对偶问题存在 2.对偶问题转化 3.对 ...
最新文章
- 算法时间复杂度求解法【详细过程说明】
- 前期优达无人驾驶对课程评价
- 2020年度最佳的23个的机器学习项目(附源代码)
- React开发(248):react项目理解 ant design input autosize
- Mybatis-plus 大数据量数据流式查询通用接口
- python官方下载电脑版-Python for windows
- Spark与MR的区别
- cadence菜鸟之旅
- 第三章 机器人系统的动力学模型
- 白话区块链 之 14 - ​区块链的技术意义
- 伺服舵机带参方向控制
- 测试前的准备:搭建测试环境
- 齐齐哈尔大学计算机专业好么,齐齐哈尔大学(专业学位)计算机技术考研难吗
- 《动手学深度学习》(七) -- 边界框和锚框
- python实现千牛客服自动回复语_千牛自动回复话术
- MySQL Overview
- 然之协同系统漏洞利用汇总
- IBM将裁员1700人,科技公司最好的时代过去了吗?
- word中插入图表改变数据系列产生在行或列
- Matlab中正则表达式