【问题标题】:Connecting to Azure B2C, with .NET Core from behind a NGINX Proxy通过 NGINX 代理后面的 .NET Core 连接到 Azure B2C
【发布时间】:2017-06-28 14:55:04
【问题描述】:

几乎可以正常工作。差不多了。

我的设置是我设置了一个 Azure B2C 租户,并修改了一些 example code 以反映租户信息。这一切都可以在本地正常工作,使用 localhost uri。

我的远程设置是一个 Ubuntu 16.01 服务器,一个 Nginx 1.10.0 网络服务器充当 .NET Core 1.0.4 的反向代理,并且都带有 LetsEncrypt SSL 证书。

代理可以很好地服务于 .NET 项目,但是当我点击登录时,它会将我带到 B2C 登录,并且重定向 URL 不正确。

我希望该值反映设置文件“https.sub.host.suffix/signin-oidc”中的内容,而不是我得到“http.sub.host.suffix,sub.host.suffix /signin-oidc"

任何想法或建议表示赞赏!

【问题讨论】:

标签: azure nginx asp.net-core openid azure-ad-b2c


【解决方案1】:

如果 NGINX 正在卸载 SSL/TLS,然后调用 .NET Core 应用程序,检查很可能是通过开放的 HTTP(端口 80)进行的。

您需要确保始终使用 HTTPS,或者在调用 HTTP 端点时发出信号以触发 HTTPS 方案。

当 .NET Core 应用通过 HTTP 端点获取请求时,它创建的每个 URI 都将保持相同的方案。因此,您需要在链接构建时强制使用 https://。

希望对你有帮助!

【讨论】:

  • 我需要做更多调查,但看起来它从租户那里带回了返回 URI,并用它运行的方案替换了该方案。只需更改 OnRedirectToIdentityProvider 中的 {RedirectContextObject}.ProtocolMessage.RedirectUri 即可解决问题。这不是一个长期的解决方案,但对于概念证明来说很好。现在只需要获取 cookie 才能很好地与反向代理配合使用。
  • 太棒了。 @DavidFury 你找到解决这个问题的合适方法了吗?谢谢
猜你喜欢
  • 2019-11-12
  • 1970-01-01
  • 2014-07-17
  • 2021-07-22
  • 1970-01-01
  • 2018-08-26
  • 2020-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多