![](/img/trans.png)
[英]Facebook authentication callback to wrong server with AWS ELB elastic load balancer
[英]Windows Authentication behind AWS Elastic Load Balancer (ELB) not working
我有一个使用 Windows 身份验证的 ASP .NET MVC 5 站点。 主页只显示当前身份名称 (Controller.User.Identity.Name) 用于测试目的。 将网站部署到服务器 (Windows Server 2012) 并在 IIS 上启用 Windows 身份验证后,我访问了直接进入服务器的页面。 它提示输入凭据,我提供了一次我的 AD 用户名/密码,它可以工作。 到现在为止还挺好。
现在,如果我在 AWS Elastic Load Balancer 后面有相同的服务器(只有一台服务器)并且我在负载均衡器上访问了站点,我注意到两个问题:
这很奇怪。 几乎就像 Kerberos 票证因为负载均衡器而丢失或混淆一样。 我尝试了这个和从这里开始的第 4 步,仍然没有运气。
有任何想法吗?
根据这篇博客文章,如果您将其切换到 TCP 模式,ELB 将起作用:
我要做的第一件事是为您的 ELB 启用“访问日志”选项,这样您就可以确切地看到在 ELB 级别可能记录的错误。 您可以在下面查看有关如何执行此操作的步骤。 如果 ELB 和 Web 服务器位于不同的安全组中,您可能还需要确保允许它们之间的正确端口。 最后检查您的 IIS 日志以查看它们在通过 ELB 访问该 URL 时提供的信息。
http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-access-logs.html
似乎 Windows 身份验证仅适用于 TCP 模式下的 Classic Load Balancer 或新的网络负载均衡器。 NTLM 或 Kerberos 身份验证在 L7 上是不可能的,即应用程序 LB,因为它会中断连接以进行终止、检查或重定向(如通过代理)。
您可能需要在 elb 上启用粘性会话,以便在 elb 后面的同一台服务器上完成身份验证和协商。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.