【问题标题】:Windows authentication does not work behind AWS Application Load BalancerWindows 身份验证在 AWS Application Load Balancer 后面不起作用
【发布时间】:2020-09-16 11:27:43
【问题描述】:

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

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

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

有什么想法吗?

【问题讨论】:

    标签: amazon-web-services iis-7.5 windows-authentication aws-application-load-balancer aws-alb


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,@JalaPanchal。但是当我在 ALB 上启用粘性会话时,它可以工作。 ??!!...我偶然发现了这篇文章并尝试了它。当我们启用粘性会话时这是如何工作的。虽然这个临时修复。我们的应用程序是无状态的。所以不能用这个。在这种情况下,我们切换到支持 TCP 的经典负载均衡器。检查此链接以获取 AD auth resetenv.com/2018/05/09/elb 的临时修复
    • @CharlesD 这个帖子解决方案对你有用吗?
    • 是的,@Jalpa。我现在不会在浏览器上反复弹出 Windows 登录弹出窗口。我只需要输入一次。
    • @CharlesDeeZee 您可以将您的解决方案发布为答案并标记,这样可以帮助面临同样问题的其他人。
    【解决方案2】:

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

    【讨论】:

    • 如果您的问题得到解决,我请求您将有用的建议标记为答案。这将帮助面临同样问题的其他人。
    • 当然@JalpaPanchal
    【解决方案3】:

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

    【讨论】:

    • 最好将此类输入作为评论/注释添加到原始问题中,而不是将其作为答案发布。
    猜你喜欢
    • 2019-07-08
    • 2023-01-04
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    • 2021-01-21
    • 2012-03-18
    • 2020-04-12
    • 1970-01-01
    相关资源
    最近更新 更多