NTLM身份验证和智能卡
我在企业互联网代理后面的VMWare VPC中运行程序(Mathematica)。 在IE,Chrome,Excel,Word,Acrobat Reader甚至MS Paint等VPC中安装的各种程序都可以毫无问题地从Internet获取数据,但Mathematica似乎无法正确处理代理。
我的猜测是它无法处理代理的NTLM身份验证。
在早期的情况下,在不同的防火墙后面,作为Mathematica与代理之间的中介,CNTLM取得了一些成功。 CNTLM与代理进行会谈,并负责NTLM身份验证,Mathematica被赋予CNTLM侦听的端口和IP地址(本地主机)以进行通信。 然而,在那个早期的案例中,我知道代理(即我自己)使用的凭证。
在目前情况下,我的登录使用智能卡和PIN进行。 VPC获得凭据通过透明(我不必输入),显然上面提到的所有程序自动知道它们。 这让我认为Mathematica或CNTLM应该能够做到这一点。 但是,我用作密码的PIN码不起作用(事实上,如果我经常尝试,我会被锁定)。 我假设所使用的证书实际上并不是我自己的,但是要么是Windows密码(我没有作为智能卡用户),要么是从我的PIN和智能卡派生的。
我的问题是:我如何使这个设置工作? 这可能涉及CNTLM,但也欢迎其他解决方案。
您可以通过使用浏览器代理(如Fiddler)获得机会
像CNTLM一样,Fiddler也充当本地代理,允许支持代理的应用程序,但不支持NTLM(它们支持“普通”代理),而不是直接使用公司代理,而是通过本地代理。
与CNTLM不同,Fiddler不需要配置凭证,但它使用当前用户信用来验证Web请求。
我不能确定这是你的解决方案,因为我没有像你这样的环境,但是这个解决方法在一些其他情况下工作,如在这个关于ruby gem或/和这个关于mercurial的博客的回答中所报道的,所以我希望这也可以与Mathematica一起使用。
注意:运行Fiddler后,它会自动将浏览器代理配置为自身( http://localhost:8888
),因此您可以将应用程序的代理设置保留为“使用来自我的系统或浏览器的代理设置” 。 顺便提一下,它不仅是一个本地代理,还可以用于故障排除或调试,功能列表在这里可用