【发布时间】:2019-06-17 10:40:12
【问题描述】:
我有一个 ASP.NET Core 应用程序,它使用 Azure Active Directory B2C 进行身份验证,我将其部署到 Google App Engine 实例中。在我的 AD B2C 应用程序配置中,我有 https://<domain>/signin-oid 作为我的重定向 URL,但是当我登录时,我收到错误 AADB2C90006,说域 http://<domain>/signin-oid 无效。我的代码中的任何位置都没有指定此 url 的 http 版本。
我已尝试在我的开发环境中本地运行它,它按预期工作。我了解 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
});
【问题讨论】:
-
我认为这是因为 Web 应用程序在重定向到期待
https回复 URL 的 Azure AD B2C 之前没有从http重定向到https。 this 有帮助吗? -
我对这个建议做了一些进一步的改进,它重定向到
https地址,但给了我一个 404,因为来自 B2C 的响应仍在寻找http.还尝试添加github.com/Azure-Samples/active-directory-b2c-dotnetcore-webapp/…,但没有运气。
标签: asp.net-core google-apps azure-ad-b2c