我对NTLM不太了解…疯狂的想象力…蹩脚的原始… grmbl grmbl:D:D:D
此线程表示无法完成: http : //www.squid-cache.org/mail-archive/squid-users/200708/0578.html
有没有可以提供解决scheme或解决方法的专家?
以下是端口80上的Telnet输出,用于所需的网站:
Trying 111.222.333.444... Connected to www.extranet-example.com (111.222.333.444). Escape character is '^]'. GET /index.htm HTTP/1.1 host: www.extranet-example.com HTTP/1.1 401 Unauthorized Server: Microsoft-IIS/7.5 SPRequestGuid: 2764478a-b14a-4541-9110-27ebf4281e84 WWW-Authenticate: NTLM X-Powered-By: ASP.NET MicrosoftSharePointTeamServices: 14.0.0.4762 Date: Mon, 25 Nov 2013 14:25:26 GMT Content-Length: 0
奖金:我们使用2个链接的代理服务器(squid-2.6 rhel5)
编辑:使用NTLM来做鱿鱼authentication不是我们想要实现的。
编辑2:我们尝试访问的网站在我们公司之外,在我们的networking之外。 实际上它是一个拥有公共IP的公共网站。 如果我从代理configuration中排除这个网站,它将无法工作,因为我们的工作站没有路由到互联网或直接连接。
NTLM是面向连接的,因为当你使用代理时,你和webserver之间没有直接的连接,所以NTLM失败了。 (您和代理之间有连接,代理和网站之间有第二个连接。)
如果你不能升级到例如Kerberosauthentication,最好的办法就是把networking服务器添加到客户端configuration(PAC文件?)中的代理排除列表中。 由于这个原因,通常企业Intranet上的内部服务器(这是您期望的NTLM身份validation)将被排除在代理之外,客户端将直接连接。
编辑
显然有一个选项在Squid NTLM passthoughauthentication: 连接钉牢。 可以从Squid版本2.6以上和3.1以上。
http_port ... connection-auth[=on|off] https_port ... connection-auth[=on|off]
根据所提供的信息,我不认为你可以创build一个解决scheme,通过互联网使用NTLM而不是通过Squid,而不会在某种程度上“超出框架”。
一个可能的build议是使用HAproxy(它执行TCP反向代理)在您的networking中创build一个本地URL,该请求将请求传递到另一端的站点。 如果你必须经过两个不同的跳跃(即运行Squid的两台机器),那么你将不得不设置两个实例。
configuration应该是:
listen localsite 0.0.0.0:80 mode tcp balance roundrobin option tcplog server upstream1 1.2.3.4:80
虽然你必须运行一个单独的应用程序,HAproxy是超级无痛的(安装一个包,10行configuration文件,几乎0configuration,0维护)。
另一种select是修改系统configuration以启用某种SSO,然后使用本地NTLM身份validation程序启动到上游系统的会话。 这可能意味着系统的发展和变化。
我不认为我曾见过在互联网上使用NTLM,但它通常用于局域网。 也许如果你扩展的情况下,我们可以build议一个替代的战略。