0583-5.16.1-1.4.2-后台脚本无感知为CDSW用户绑定Kerberos账号(密码认证)

2019-04-28 18:05:43 浏览数 (1)

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

Fayson的github: https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1

文档编写目的

业务用户在安全环境下使用CDSW服务,为了防止用户的Kerberos的账号和密码泄露问题,需要管理系统统一的为业务用户分发Kerberos账号。本篇文章Fayson主要介绍如何通过CDSW API的方式为不同的业务用户设置Kerberos信息。

  • 测试环境

1.RedHat7.4

2.CDSW版本为1.4.2

3.CM和CDH版本为5.16.1

2

涉及API接口

在这篇文章中Fayson主要介绍通过API接口以密码的方式为不同的业务用户绑定Kerberos账号(暂不介绍如何绑定keytab),本篇文章涉及到的API接口如下:

  • 绑定账号密码类型的Kerberos账号
代码语言:javascript复制
请求地址:http://{cdsw_domain}/api/v1/users/{user}/kerberos-credentials
请求类型:POST
请求参数:{"principal":"fayson","password":"123456","clusterId":1}
  • 注销Kerberos绑定
代码语言:javascript复制
请求地址:http://{cdsw_domain}/api/v1/users/{user}/kerberos-credentials?clusterId=1
请求类型:DELETE

3

绑定Kerberos账号

本章节测试主要使用curl命令方式调用API接口,为不同的业务用户绑定Kerberos账号。

1.fayson1用户绑定Kerberos账号之前

2.在命令行执行如下命令为fayson1用户绑定Kerberos账号

代码语言:javascript复制
[root@cdsw ~]# curl -u 'admin:123456' -X POST -H "Content-Type:application/json" -d '{"principal":"fayson","password":"123456","clusterId":1}' 'http://cdsw.fayson.com/api/v/users/fayson1/kerberos-credentials'

3.登录fayson1用户查看Kerberos账号是否绑定成功

4.使用fayson1用户运行一个Session,作业运行正常

Yarn上查看作业运行成功

5.调用注销API测试

代码语言:javascript复制
[root@cdsw ~]# curl -u 'admin:123456' -X DELETE -H "Content-Type:application/json" 'http://cdsw.fayson.com/api/v1/users/fayson1/kerberos-credentials?clusterId=1'

CDSW上显示fayson1用户已注销了Kerberos的绑定

4

总结

1.本篇文章讲到的API接口并未在官网公开,属于私有的API接口,只不过通过web界面的JS调度找到的。

2.在API请求地址中注意,如果需要为某个业务用户设置Kerberos账号则将请求地址中的{user}修改为相应的用户即可。

3.这里的API接口有个漏洞,并未做严格的用户权限控制,只要是认证通过的用户均可以随意为其它用户进行Kerberos账号绑定及注销操作。

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

0 人点赞