无法使用 curl 协商到不同的域

Posted

技术标签:

【中文标题】无法使用 curl 协商到不同的域【英文标题】:Unable to negotiate to a different domain using curl 【发布时间】:2013-07-10 18:44:20 【问题描述】:

我想使用 curl 使用 B.COM 用户的凭据从域 A.COM 访问域 B.COM 上的 Web 服务器。所有这些都使用 Kerberos 身份验证。所以我使用以下命令:

curl.exe --negotiate -u username_domain_b:password myserver.b.com

两个域之间存在信任,但问题是 AS-REQ/TGS-REQ 请求被发送到域 A.COM 而不是域 B.COM 的域控制器。因此,SPNEGO 身份验证失败,回退到 NTLM(我的 Web 服务器中未启用),因此我得到了未经授权的响应。

有没有办法让 curl 与域 B.COM 的 DC 协商,从而正确完成 Kerberos 身份验证?

【问题讨论】:

【参考方案1】:

打开命令提示符
runas /user:your_user cmd.exe

通过此命令提示符,您可以将 curl 与模拟身份一起使用

curl.exe --negotiate -u anything:any myserver.b.com

如果有更好的解决方案,我想知道!

【讨论】:

以上是关于无法使用 curl 协商到不同的域的主要内容,如果未能解决你的问题,请参考以下文章

Dante 代理无法在 ubuntu 18.04 上运行导致协商超时

协商后跨源 SignalR 连接停止

无法在跨域上使用 JSONP 发布数据

无法通过 Android 发送 Firebase 通知,但可以通过 curl 工作

Vcenter 无法使用已授权的域账号登陆的解决

无法使用 Nginx(反向代理+SSL 协商)和 Tomcat 上传大文件