Hadoop HDFS over HTTP 2.4.1 - Using HTTP Tools

Security

开箱即可用的HttpFS既支持pseudo认证,也支持Kerberos HTTP SPNEGO认证。

Pseudo Authentication

用Pseudo认证时,用户名必须在HttpFS URL的查询参数里通过user.name=<USERNAME>指定。例如:

$ curl"http://<HTTFS_HOST>:14000/webhdfs/v1?op=homedir&user.name=babu"

Kerberos HTTP SPNEGOAuthentication

Kerberos HTTP SPNEGO认证需要一个支持KerberosHTTP SPNEGO协议的工具或者库。

重要的:如果使用curl,curl的版本必须支持GSS(如果支持的话,curl –v命令会打印出“GSS”)。

例如:

$ kinit
Please enter the password for tucu@LOCALHOST:
$ curl --negotiate -u foo "http://<HTTPFS_HOST>:14000/webhdfs/v1?op=homedir"
Enter host password for user 'foo':

注意:--negotiate 需要-u 用户选项,但是它不使用。当被要求输入密码时直接按回车,使用任何的值作为User都将被忽略。

Remembering Who I Am (Establishingan Authenticated Session)

在大多数的认证机制中,Hadoop HTTP认证机制只认证用户一次,给其一个短暂的Token,为后续的请求提供认证验证凭证。这个Token记录在HTTP Cookie中。

当使用像curl这样的工具时,Token必须在第一次为第一次请求做认证时被存储,在后续的请求中这个Token都要提交。使用curl的-b和-c选项,可以发送和保存必要的HTTP Cookie信息。

例如,第一次请求被认证时应该保存接收到的HTTP Cookie。

用Pseudo认证:

 
$ curl -c ~/.httpfsauth "http://<HTTPFS_HOST>:14000/webhdfs/v1?op=homedir&user.name=babu"

用Kerberos HTTP SPNEGO认证:

$ curl --negotiate -u foo -c ~/.httpfsauth "http://<HTTPFS_HOST>:14000/webhdfs/v1?op=homedir"

然后,后续的操作转发先前接收到的HTTP Cookie:

 
$ curl -b ~/.httpfsauth "http://<HTTPFS_HOST>:14000/webhdfs/v1?op=liststatus"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈振阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值