3

我有一个使用 Windows 身份验证的 ASP .NET WCF 服务网站。在将 Web 服务部署到服务器 (Windows Server 2012) 并在 IIS 上启用 Windows 身份验证后,我使用 localhost 直接访问服务器的页面。它提示输入凭据,我提供一次我的 AD 用户名/密码,它就可以工作。

现在,如果我在 AWS 应用程序负载均衡器后面有相同的服务器,并且我点击了映射到应用程序负载均衡器的 Web 服务的 DNS,那么这里就会发现一个问题。

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

有任何想法吗?

4

3 回答 3

3

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

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

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

于 2020-09-17T07:10:41.873 回答
0

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

于 2020-09-17T09:37:21.343 回答
0

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

于 2021-02-10T01:14:10.013 回答