在Elastic Beanstalk上运行.NET Core 3.1时重定向到登录错误

问题描述 投票:0回答:1

我正在将.NET Core 3.1应用程序部署到AWS Elastic Beanstalk。

我的管道是HTTPS -> ALB -> HTTP -> Instance

我面临的问题是,当我需要身份验证时,重定向Location:标头是httpabsolute,浏览器重定向不正确。

要解决此问题,我需要:

  • 使Location:标头相对,或
  • Location:标头设为https。

我根据app.UseForwardedHeaders()Startup.cs文件中使用Configure ASP.NET Core to work with proxy servers and load balancers,尝试将其设置为https,但它仍然是http。

要使ASP.NET核心身份在Elastic Beanstalk上工作需要做什么?

c# amazon-web-services asp.net-core amazon-elastic-beanstalk
1个回答
0
投票

我的问题是Microsoft.AspNetCore.HttpOverrides模块的配置。

默认情况下,它是将KnownNetworks限制为127.0.0.1,将KnownProxies限制为::1。因此,当请求来自我的ALB时,它没有将方案从X-Forwarded-For移至this.Request.Scheme

当我在配置过程中清除网络和代理时,此问题已解决,如下所示:

services.Configure<ForwardedHeadersOptions>(options =>
    {
        options.ForwardedHeaders =
            ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
        options.KnownNetworks.Clear(); // These are key
        options.KnownProxies.Clear();
    });

新未知:

问:这样做安全吗?

A:就我而言,我的EC2实例位于私有子网中,并且我的安全组将流量限制为来自ALB的流量,因此我感到非常安全。但是需要更多的研究。

© www.soinside.com 2019 - 2024. All rights reserved.