NTLM身份验证和智能卡

8
我正在一个公司网络代理后面的VMWare VPC中运行一个编程软件(Mathematica)。在该VPC中安装的各种程序,如IE、Chrome、Excel、Word、Acrobat Reader甚至MS Paint都可以从互联网获取数据,但Mathematica似乎无法正确处理代理。我的猜测是它不能处理代理的NTLM身份验证。
在早期的情况下,在不同的防火墙后面,我使用CNTLM作为Mathematica和代理之间的中间件取得了一些成功。CNTLM与代理通信并处理NTLM身份验证,然后将端口和IP地址(localhost)提供给Mathematica进行通信。但是,在那个早期的情况下,我知道要用于代理的凭据(即我的凭据)。
在当前情况下,我的登录需要使用智能卡和个人识别码(PIN码)。虚拟专用网络(VPC)会自动传递凭据(我不需要输入它们),似乎上述所有程序都能自动识别这些凭据。这使我认为Mathematica或CNTLM也应该能够做到这一点。然而,我的PIN码作为密码无法使用(实际上,如果我尝试太多次,我会被锁定)。我认为所使用的凭据实际上不是我的凭据,而是Windows密码(我作为智能卡用户没有)或者是从我的PIN码和智能卡派生出来的。

我的问题是:如何使此设置工作?这可能涉及CNTLM,但其他解决方案也可以接受。


你有检查从“帮助”菜单访问的“互联网连接”对话框吗?如果使用“检查互联网连接”,会有什么响应? - likeitlikeit
@likeitlikeit 我已经完成了所有这些工作,我已经确定了问题的主要原因是Mathematica无法处理NTLM身份验证。我已经与Wolfram Research讨论过这个问题,他们同意MMA目前无法处理NTLM。在这个问题中,我正在寻求解决我遇到的问题的解决方法,这是我通常解决此问题的解决方法。CNTLM有助于不支持NTLM的应用程序,但在这种情况下,问题在于CNTLM无法与单点登录环境一起使用,其中身份验证不能从直接的用户名/密码输入中获得。 - Nescio
1个回答

5
您可以使用浏览器代理(如Fiddler),这样您就有机会了。
像CNTLM一样,Fiddler也充当本地代理,允许支持代理但不支持NTLM(它们支持“普通”代理)的应用程序通过本地代理而非直接使用公司代理。
与CNTLM不同,Fiddler不需要配置凭据,而是使用当前用户凭据来验证Web请求。
我无法确定这是否适用于您,因为我没有像您这样的环境,但是在其他一些情况下,此解决方法已得到报告,如此有关Ruby Gem的答案或/和此有关Mercurial的博客,因此我希望这也可以在Mathematica中使用。
注意:运行Fiddler后,它会自动将浏览器代理配置为自己(http://localhost:8888),因此您可以将应用程序的代理设置保留为"从我的系统或浏览器使用代理设置"。顺便说一句,Fiddler不仅是一个本地代理,还可用于故障排除或调试,功能列表在此处

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接