0

您好我正在尝试让 Chrome 针对基于 NTLMv2 的服务器进行身份验证。作为最终目标,我并不介意是否必须填写提示或是否使用 Windows 凭据。

主要问题:当我在 Wireshark 中查看从 Chrome 发送的数据包时,我可以看到它进入了 URL,得到了一个 401 请求 NTLM 数据。然后 Chrome 继续发送一条NEGOTIATE消息,从服务器接收一条CHALLENGE消息,之后它直接关闭整个连接并给我一个ERR_UNEXPECTED. 使用身份验证服务器设置的某些组合,它有时会提示我输入用户,但它甚至从未尝试发送AUTHENTICATE消息。

现在这变得有点奇怪了,因为我从另一台机器获得了一个带有与正常AUTHENTICATE消息反应的确切 http 流量(如字面上相同的协商标志、用户、域、cookie 等)的wireshark 跟踪。

同样,在同一台机器上,我在 python 中使用 requests_ntlm 制作了一个脚本,其具有相同的凭据,可以很好地进行身份验证,因此服务器不会阻止我。

IE 和 Firefox 确实有相同的奇怪行为,这让我认为这可能是一个政策问题,但我无法终生弄清楚什么政策会导致这种不寻常的行为。(IE给出INET_E_DOWNLOAD_FAILURE

铬标志

我正在使用以下参数调用 chrome:

-auth-server-whitelist=<the domain>
-auth-negotiate-delegatewhitelist=<the domain>
-auth-schemes="digest,ntlm,negotiate"

组策略

每个 NTLM 相关设置都已尽可能放宽:

计算机配置 > Windows 设置 > 安全设置 > 本地策略

登记处

按照 chrome 管理的模板,我在Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome

"AdvancedProtectionAllowed"=dword:00000001
"AllowCrossOriginAuthPrompt"=dword:00000001
"AllowedDomainsForApps"="managedchrome.com,<domain>"
"AmbientAuthenticationInPrivateModesEnabled"=dword:00000000
"ApplicationLocaleValue"="en"
"AuthNegotiateDelegateAllowlist"="<domain>"
"AuthSchemes"="basic,digest,ntlm,negotiate"
"AuthServerAllowlist"="<domain>"
"BasicAuthOverHttpEnabled"=dword:00000001
"BlockThirdPartyCookies"=dword:00000000
"BrowserSignin"=dword:00000002
"DisableAuthNegotiateCnameLookup"=dword:00000000
"DiskCacheDir"="${user_home}/Chrome_cache"
"DiskCacheSize"=dword:06400000
"EnableAuthNegotiatePort"=dword:00000001
"GloballyScopeHTTPAuthCacheEnabled"=dword:00000000

凭证管理器

Windows 商店有一组相关域的凭据,域\用户

4

0 回答 0