如何对 HTTP 代理使用身份验证和协商(例如 Kerberos)?

如何对 HTTP 代理使用身份验证和协商(例如 Kerberos)?

一般接受的是使用HTTP_PROXY/HTTPS_PROXY环境变量来指定代理服务器的使用。身份验证可以包含在该 URL 中,例如。HTTP_PROXY=http://user:[email protected]:3128/

但是,我使用 Kerberos SSO 通过代理进行身份验证。我该如何配置呢?因此,假设 Squid 代理服务器配置如下所述:https://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberos。它描述了 Windows 客户端如何通过协商使用代理身份验证,但没有信息如何配置 Linux/Unix 客户端。

对于 cURL,使用--proxy-negotiate -u :可以解决问题,例如:

HTTPS_PROXY=http://myproxy.mydomain.tld:3128/ curl --proxy-negotiate -u : https://www.google.com

如何告诉非 cURL 应用程序使用此机制?例如 Debian/Ubuntu APT 带有Acquire::http::Proxy "http://myproxy.mydomain.tld:3128/";?

我发现cntlm它充当中间另一个本地运行的代理,促进来自本地主机的未经身份验证的连接。但是,这仅适用于 NTLM,而我需要 Kerberos。 Squid 是否能够使用 Kerberos 作为客户端进行连接?在网络上找到身份验证功能似乎是出了名的困难外向的代理服务器的连接。所有似乎都集中在身份验证功能上监听套接字反而。

相关内容