NTLM 通过代理服务器

1 http active-directory proxy squid ntlm

  • 我们使用 squid 作为 HTTP 代理(如果需要,我可以修改它的配置)。
  • 我们要访问一个使用ntlm进行身份验证的网站
  • 当我们通过squid访问网站时,我们看到一个空白页面
  • 当我们通过 DSL 框访问网站时,我们会看到一个身份验证弹出窗口(预期结果)

我对 NTLM 了解不多......疯狂的想象力......糟糕的protolol...... grmbl grmbl :D :D :D

这个线程说它不能完成:http : //www.squid-cache.org/mail-archive/squid-users/200708/0578.html

有没有大师可以提供解决方案或解决方法?

这是所需网站的端口 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 
Run Code Online (Sandbox Code Playgroud)

奖励:我们使用 2 个链式代理 (squid-2.6 rhel5) 服务器

编辑:使用 NTLM 进行鱿鱼身份验证不是我们想要实现的。

编辑 2 :我们尝试访问的网站在我们公司之外,在我们的网络之外。实际上它是一个具有公共IP的公共网站。如果我从代理配置中排除这个网站,它将无法工作,因为我们的工作站没有到互联网的路由,也没有直接连接。

HBr*_*ijn 5

NTLM 是面向连接的,因为当您使用代理时,您和网络服务器之间没有直接连接,所以 NTLM 会失败。(您与代理之间存在连接,代理与网站之间存在第二个连接。)

如果您无法升级到例如 Kerberos 身份验证,最好的办法是将网络服务器添加到客户端配置(PAC 文件?)中的代理排除列表。由于这个原因,通常公司 Intranet 上的内部服务器(这是您期望 NTLM 身份验证的地方)被排除在代理之外,并且客户端直接连接。

编辑

显然,Squid 中有一个用于 NTLM passthrough 身份验证的选项:Connection Pinning。从 Squid 2.6 及更高版本和 3.1 及更高版本可用。

http_port ... connection-auth[=on|off]
https_port ... connection-auth[=on|off]
Run Code Online (Sandbox Code Playgroud)