asp.net-core - 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
});
解决方案
在 Linux 上将 .NET Core 应用程序部署到 Azure 应用程序服务时,我遇到了同样的问题。我能够通过转发此答案中指定的XForwardedProto
标头来解决它。Startup.cs
推荐阅读
- c# - 编译时未知类型的嵌套委托调用
- reactjs - 如何减少下一个 JS 中的包大小?
- python - 在 Python 3.9 中使用正则表达式在已知分隔符之间提取文本(以“johab”编码进行编码)
- php - 如何通过 jquery $.ajax() 正确传递图像文件?
- r - 运行闪亮的应用程序时如何仅运行特定的mac地址
- php - 使用没有图像名称的父目录在 html 页面上显示图像
- r - ggplot2 - 如何替换图例中的几何符号?
- javascript - 在谷歌网络应用脚本中使用three.js - 无法使用脚本模块类型加载three.js
- reactjs - React - 当浏览器开始绘制或重新绘制哪个生命周期方法结束时?
- java - 请高中需要帮助;将输出写入文件(使用距离程序)?