在我的网络中,我们位于代理(pac 脚本)后面,当尝试访问以下 url 格式的站点时:
http://服务器名称.domain.com:8080/somePath
IE(9.0.8112.16421)无法浏览该网站(需要 http auth NTLM),但我能够打开主页http://服务器名称.域名.com:8080/ (这实际上是 Web 服务器 apache tomcat 的主页)
请查看最新更新,看起来该问题与 NTLM 身份验证更相关
然而,我注意到 Chrome 可以完美浏览该网站,并且通过在 Internet Explorer 中打开开发人员工具(F12)并将用户代理字符串设置为“Chrome”,IE 便可以浏览该网站而无需进行任何其他更改。
现在的问题是,proxy+http auth+ie 有问题吗?<<更新:不是代理>>当我使用 Chrome 用户代理字符串时还有哪些变化,为什么以这种方式工作?
我一直在阅读并知道有一些方法可以使用 IEM 永久更改 IE9 (9.0.8112.16421) 用户代理(http://technet.microsoft.com/en-us/library/cc770379.aspx) 和 Windows 注册表,但需要管理员权限,不知道这是不是问题所在或者是其他问题。
注意:当检查开发工具(IE)中的“网络”选项卡时,结果显示“已中止”,甚至没有请求标头/正文,只有响应标头可用:
Key Value
Response HTTP/1.1 401 Unauthorized
Server Apache-Coyote/1.1
WWW-Authenticate NTLM TlRMTVNTUAACAAAAAAAAACgAAAABggAAAAICAgAAAAAAAAAAAAAAAA==
Content-Type text/html;charset=utf-8
Content-Length 951
Date Fri, 16 Jan 2015 17:04:36 GMT
Cache-Control proxy-revalidate
Proxy-Connection Keep-Alive
Connection Keep-Alive
Proxy-support Session-based-authentication
更新 我与其他国家的合作伙伴进行了核实,他们无需切换用户代理字符串即可打开网站,代理脚本看起来几乎相同,来自 ipconfig 命令的 DNS 信息看起来也相同,我只能认为我们的代理服务器(放置 pac 脚本的地方)中存在问题<<更新:不是代理>>
我想我可以丢弃有关 DNS 服务器的任何信息,因为通过切换用户代理我可以访问该网站,但如果您知道我的说法不正确,请发表评论。
更新 2 刚刚意识到设置任何其他自定义用户代理我都可以打开该网站,我甚至设置了单词“hello”,并且成功了。经过多次尝试/失败后,我还意识到“MSIE”用户代理字符串中的部分是导致失败的原因(除了代理服务器中的任何其他错误配置之外)。
通过删除“MSIE”甚至只是一个字符,我就可以浏览该网站,但如果我在任何其他用户代理字符串中包含这 4 个字符,那么我就无法浏览该网站。
更新 3 到目前为止,我在其他国家的队友无需使用其他用户代理字符串即可访问该网站,一切都表明代理 + http 身份验证与活动目录身份验证混淆了,或者类似的东西我已经阅读了一些有关 kerberos 身份验证的问题,但到目前为止我不知道它是如何工作的以及为什么 IE 会出现问题。
更新 4 我刚刚检查了我队友的请求/响应,看起来几乎一样,他们也使用 NTLM 身份验证,但他们能够使用 Internet Explorer 访问该网站无需修改用户代理字符串。
更新 5 好吧,我们对本地账户进行了域名迁移,除了不通过“其他网络”(我们位于拉丁美洲,在我看来,我们的旧域名在亚洲或类似的地方,没有从 IT 方面获得太多信息)之外,不知道还有其他变化,但现在它可以工作了。如果有人想分享关于可能发生的变化或 NTLM 身份验证如何影响的任何好想法,我将非常感激评论/答案
笔记 Web 服务器是 Apache Tomcat/7.0.33,使用 http 身份验证,您知道/认为这是活动目录中与权限相关的内容吗?我有服务器名称和 IP,如果这是权限问题,我可能缺少哪种权限?将用户代理切换到 Chrome 时,我在 fiddler 上看不到 NTLM 标头,为什么我可以使用 Chrome 用户代理(没有 NTLM 身份验证)访问,但不能使用 IE(NTLM 身份验证)<<更新:域迁移后,我可以使用 IE 访问并使用 NTLMT 身份验证>>?