Windows 身份验证在 AWS Application Load Balancer 后不起作用

Windows authentication does not work behind AWS Application Load Balancer

我有一个使用 Windows 身份验证的 ASP .NET WCF 服务网站。将 Web 服务部署到服务器(Windows Server 2012)并在 IIS 上启用 Windows 身份验证后,我使用 localhost 访问该页面,直接进入服务器。它提示输入凭据,我提供了我的 AD username/password 一次并且它有效。

现在,如果我在 AWS Application Load Balancer 后面有相同的服务器,并且我访问了映射到应用程序负载均衡器的 Web 服务的 DNS,然后发现了一个问题。

用于输入 Windows 凭据的 window 弹出窗口。但是当我输入正确的凭据时,它不会接受它们。反复提示user/password?发生了什么? ALB 不支持 IIS 的 AD 集成身份验证?

有什么想法吗?

由于登录问题和与其他用户会话的连接,应用程序负载平衡器将无法工作。

Windows TCP 连接的身份验证(Kerberos 或 NTLM 回退)需要保持相同的源端口才能保持 authenticated.you 必须使用 网络负载平衡器 而不是应用程序负载均衡器。

Windows 无法通过第 7 层“应用程序”负载平衡器进行身份验证。

AWS Application Load Balancer 中似乎有针对此解决方案的解决方法。您需要在 ALB 设置中启用粘性会话。我尝试了这个,现在我没有得到重复的 windows auth 弹出提示,反复提示输入 windows auth 启用的 Web 应用程序的用户名和密码。但是这个快速修复可能对无状态应用程序没有帮助。

在 ALB 上启用粘性会话确实允许 Windows 身份验证工作,但我们发现在某些情况下,您最终可能会以错误的用户身份进行身份验证。当多个用户同时登录时,我们会看到这种情况。请注意。