您的位置:首页 > 理论基础 > 计算机网络

Hadoop HDFS over HTTP 2.4.1 - Using HTTP Tools

2015-11-28 16:51 519 查看


Security

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


Pseudo Authentication

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

[html] view
plaincopy

$ 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”)。

例如:

[html] view
plaincopy

$ 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认证:
[html] view plaincopy$ curl -c ~/.httpfsauth "http://<HTTPFS_HOST>:14000/webhdfs/v1?op=homedir&user.name=babu"


用Kerberos HTTP SPNEGO认证:

[html] view
plaincopy

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

然后,后续的操作转发先前接收到的HTTP Cookie:
[html] view plaincopy$ curl -b ~/.httpfsauth "http://<HTTPFS_HOST>:1400
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: