Nic*_*cue 35 authentication proxy curl ntlm sspi
我使用HTTP代理在公司Windows网络(我登录)上工作.当我使用Internet Explorer时,它神奇地使用代理而无需输入我的密码.某些其他程序似乎也管理这个,就像JavaWebStart有一个"使用浏览器设置"选项.
然而,当我使用脚本/像卷曲或wget的方案,从http取东西,或者我的Java代码我似乎需要有地方存储我的密码,这显然不是最好的安全范围内做到这一点.
如何以编程方式获得Internet Explorer所具有的无密码访问权限?
我主张这是一个堆栈溢出的问题,因为我是一个程序员,我需要我的程序/脚本,而无需在输入密码的工作,虽然我可以看到,别人可能会认为它属于在服务器故障/超级用户.
我知道像curl中的--proxy-ntlm这样的设置,但是这仍然需要一个ntlm用户名和密码.
Nic*_*cue 47
在没有其他人的答案的情况下,这是我发现的,我希望它对其他人有用.
curl.exe -U : --proxy-ntlm --proxy myproxy.com:8080 http://www.google.com使用Windows登录机制进行身份验证的神奇短语是SSPI.这给了一个很好的谷歌搜索短语.我仍然没有找到一种在Java或wget中使用SSPI进行HTTP代理身份验证的好方法.
但是,curl(下载工具) 确实支持SSPI,但仅限于某些版本.不幸的是,默认的cygwin构建不是其中之一.您可以通过获取详细版本信息来了解您的curl构建是否支持SSPI:
curl -v -V
Run Code Online (Sandbox Code Playgroud)
如果支持SSPI,将在功能行中提及.
要获得支持SSPI的Windows版本,我必须转到http://curl.haxx.se/latest.cgi?curl=win32-ssl,然后将下载选项更改为Windows,zip,启用SSL,启用SSPI (7.19.5).当您阅读本文时,版本号可能已更改.
然后从命令行静默失败.当我从Windows资源管理器运行时,我收到一条消息,说明缺少libeay32.dll.从windows获取此功能的一种方法是从openssl.org上的唯一链接到Windows版本.该生产商要求捐赠以支付带宽成本.另一种方法是从源代码构建自己的.
毕竟卷曲使用以下命令行:
curl.exe -U : --proxy-ntlm --proxy myproxy.com:8080 http://www.google.com
Run Code Online (Sandbox Code Playgroud)
将-U :提供配置没有密码,其他的命令行选项设置代理.您可能需要更改代理和端口设置.
如果只有cygwin的curl版本支持SSPI,这将更加容易.我现在要提出要求.
小智 7
请注意我的编辑包含关于-U和-u的不准确假设.我已提交更正,但在临时说明中:
curl -U = Authentication to a proxy
curl -u = Authentication to a server
Run Code Online (Sandbox Code Playgroud)
因此,第一个命令应该是:
curl.exe -U : --proxy-ntlm --proxy myproxy.com:8080 http://www.google.com
Run Code Online (Sandbox Code Playgroud)
第二个,在透明NTLM的示例中:
curl -v -u : --ntlm [the redirection URL from Location: header]
Run Code Online (Sandbox Code Playgroud)
对于那个很抱歉!
| 归档时间: |
|
| 查看次数: |
25820 次 |
| 最近记录: |