使用 NTLM 时 cURL 始终返回 401

发布于 2024-10-05 22:50:31 字数 359 浏览 7 评论 0原文

我正在开发一个使用 PHP 与 Microsoft Exchange 进行通信的库。在我的生产服务器上一切正常,但我在开发计算机上不断收到 401 Unauthorized 错误。我尝试从命令行使用curl,得到了相同的结果。

使用以下命令在我的机器上返回“401”:

curl https://mail.example.com/EWS/Exchange.asmx -w %{http_code} --ntlm -u username:password

同样的调用在我的生产机器上返回“302”,这正是我所期望的。

我的开发机器使用的是curl 7.19.7,我的生产机器使用的是curl 7.18.0。

I'm working on a library to communicate with Microsoft Exchange using PHP. Everything works fine on my production servers, but I keep getting a 401 Unauthorized on my development machine. I tried using curl from the command line and I get the same results.

Using the following returns "401" on my machine:

curl https://mail.example.com/EWS/Exchange.asmx -w %{http_code} --ntlm -u username:password

The same exact call returns "302" on my production machines, which is what I expect.

My development machine is using curl 7.19.7 and my production machine is using curl 7.18.0.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

楠木可依 2024-10-12 22:50:31

这是一个老问题,但如果它最终可以帮助任何人,我想我会发布一个答案。

在某些最新版本的 Ubuntu(我相信是 10.04 及更高版本)上,NTLM 和curl 存在错误。

如果您在 ubuntu 上使用 PHP 的curl 模块,并且您的 libcurl 版本受此错误影响,这可以解释为什么您的身份验证请求失败。

如果将详细标志添加到命令 (-v),您应该在响应部分看到类似以下内容:

  • gss_init_sec_context() failed: : Credentials cache file '/tmp/krb5cc_1000' not find

如果您确实看到此内容,则表明您'受到该错误的影响,您将不得不降级您的库或寻找另一台机器。

我希望这有帮助:P

This is an old question but if it can eventually help anybody, I figured I'd post an answer.

There's a bug with NTLM and curl on certain recent version of Ubuntu (10.04 and up I believe).

If you're using the curl module of PHP on ubuntu and your libcurl version is affected by this bug, this could explain why your authentication requests are failing.

If you add the verbose flag to your command (-v), you should see something like this in the response part:

  • gss_init_sec_context() failed: : Credentials cache file '/tmp/krb5cc_1000' not found

If you do see this, you're affected by the bug and you'll have to either downgrade your library or find another machine.

I hope this helps :P

攒眉千度 2024-10-12 22:50:31

对于所有 Centos / RHEL 6.X 用户,请查看:

https://bugzilla。 redhat.com/show_bug.cgi?id=953864

For all Centos / RHEL 6.X Users please take a look into:

https://bugzilla.redhat.com/show_bug.cgi?id=953864

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文