我在公司NTLM代理后面使用macOS Sierra 10.12.6。我的浏览器和其他应用程序正在使用系统代理设置,在其中保存了我的用户名和密码,以便通过代理进行身份验证。一切正常。
系统服务一直存在一个问题,这些问题试图访问Internet上的信息,但看不到我的用户帐户中的代理凭据的访问权。我每隔几分钟就会看到以下弹出窗口,无论我做什么(在“系统偏好设置”中更新我的凭据,或按“不立即”),弹出窗口都会不断出现:
弹出窗口中的文本显示为:
需要代理身份验证
在系统偏好设置中输入HTTP代理的密码http://xxx.xxx.xxx.xxx:yyyy。
我该怎么做才能阻止此弹出窗口出现?
到目前为止我尝试过的事情:
- 更新了我在“系统偏好设置”中的凭据(“ 网络”>“高级”>“代理”)
- 将凭证条目从我的登录钥匙串复制到系统钥匙串,因为我在博客文章或论坛问题中阅读了有关此建议的内容。
这些都不起作用,我每隔几分钟就会收到一次弹出窗口,似乎没有显示出来的模式。
更新1:
通过单击以上对话框中的“ 系统偏好设置”按钮输入我的凭据(例如,可以通过打开Safari并开始在“位置”框中键入URL来强制输入),在登录钥匙串中会创建两条记录,两者均相同内容:
@ xxx.xxx.xxx.xxx(用户名)Internet密码今天09:10-登录
两条记录看起来相同,但名称和属性相同。两者都显示请求此操作的应用程序是AuthBrokerAgent
:
更新2:
我也尝试过以下建议:https : //discussions.apple.com/message/23848961#message23848961,将身份验证条目从登录钥匙串复制到系统钥匙串,然后重新启动,但没有解决。实际上,在键入此内容时,再次出现了可怕的“需要代理身份验证”框。
更新3:
我使用Wireshark来查看计算机与代理之间的流量:
- 由于我们的代理使用的是NTLM,因此代理返回以
407 Proxy Authentication Required
和Proxy-Authenticate: NTLM
,这与我的期望相符。 - 我在流量中看到的一些示例(例如iCloud)然后发回
NTLMSSP_NEGOTIATE
响应。 - 代理返回
NTLMSSP_CHALLENGE
请求 - 服务以
NTLMSSP_AUTH
和我的用户名作为响应,它必须是从某个地方获取的。 - 代理最终以
200 Connection established
对我来说,这表明通常,如果系统可以从某个地方获取用户名和代理,则代理身份验证可以正常工作。问题仍然是如何/在何处存储用户名/密码,以便所有系统服务都能找到它。某些系统服务(我假设)没有任何方法可以在我当前将其存储的地方找到代理凭证。