首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用cURL实现从Windows到Hadoop HTTPFS的身份认证

用cURL实现从Windows到Hadoop HTTPFS的身份认证
EN

Stack Overflow用户
提问于 2018-01-30 20:21:43
回答 1查看 636关注 0票数 1

我想使用带有curl的HTTPFS将数据从我的本地Windows计算机加载到HDFS。Hadoop群集使用Kerberos进行保护。

我如何设法完成身份验证?

在尝试以下语句时...

代码语言:javascript
复制
curl -k --negotiate -u : -i -X PUT "HTTP..."

它失败了,错误为

代码语言:javascript
复制
HTTP/1.1 401 Unauthorized
Server: Apache-Coyote/1.1
WWW-Authenticate: Negotiate
Set-Cookie: hadoop.auth=; Path=/; Secure; HttpOnly
Content-Type: text/html;charset=utf-8
Content-Length: 997
Date: Tue, 30 Jan 2018 12:15:30 GMT

HTTP/1.1 403 Forbidden
Server: Apache-Coyote/1.1
Set-Cookie: hadoop.auth=; Path=/; Secure; HttpOnly
Content-Type: text/html;charset=utf-8
Content-Length: 1149
Date: Tue, 30 Jan 2018 12:15:30 GMT

curl版本为:

代码语言:javascript
复制
curl 7.46.0 (x86_64-pc-win32) libcurl/7.46.0 OpenSSL/1.0.2e zlib/1.2.8 WinIDN libssh2/1.6.0
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL libz

我安装了MIT Kerberos for Windows,它显示了一个有效的票证。不幸的是,我对Kerberos了解不多,这就是为什么我有点卡住了。

任何帮助或研究的起点都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2018-01-30 23:45:46

在Windows上不需要MIT Kerberos。您的curl是使用SSPI编译的,SSPI是MS的GSS-API的变体。启用--verbose以查看是否发送了票证。

我高度假设您的网络配置有误。启动Wireshark,过滤“kerberos”,查找包含您设计的SPN的TGS-REQTGS-REP (是否已注册?)。

从Windows和类Unix的7.38.0版本开始,Curl就可以完美地与SPNEGO协同工作。

此外,如果我看到403,身份验证已经通过,您的帐户就没有资格访问资源。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48521373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档