首页 > 解决方案 > AADB2C90006 在 redirect_uri 中带有 https-> http 转换

问题描述

我有一个 ASP.NET Core 应用程序,它使用 Azure Active Directory B2C 进行身份验证,我将其部署到 Google App Engine 实例中。在我的 AD B2C 应用程序配置中,我有https://<domain>/signin-oid我的重定向 URL,但是当我登录时,我收到错误AADB2C90006消息说域http://<domain>/signin-oid无效。我的代码中没有http指定此 url 的版本。

我尝试在我的开发环境中本地运行它,它按预期工作。我了解 Nginx 在启动的 Kestrel 实例之前充当代理,并且我已在我的 Kestrel 实例中配置 SSL 以使用 App Engine 实例使用的相同证书。我提到这一点是因为我怀疑 App Engine 和 Kestrel 配置之间存在某种脱节,尽管问题可能出在哪里非常模糊。

      return new WebHostBuilder()
            .ConfigureKestrel((context, options) =>
            {
                if (!string.IsNullOrEmpty(aspEnv) && !string.Equals(aspEnv,"Development"))
                {                        
                    options.ListenAnyIP(443,opt => opt.UseHttps("myfile.pfx","mypass"));
                }
            })

我的Configure函数中也有这一行:

                app.UseForwardedHeaders(new ForwardedHeadersOptions
                {
                    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
                });

标签: asp.net-coregoogle-appsazure-ad-b2c

解决方案


在 Linux 上将 .NET Core 应用程序部署到 Azure 应用程序服务时,我遇到了同样的问题。我能够通过转发此答案中指定的XForwardedProto标头来解决它。Startup.cs


推荐阅读