在IIS反向代理后面运行时,如何在docker上使用dotnet core为Facebook oauth授权设置重定向uri

时间:2018-12-09 22:37:01

标签: docker iis oauth .net-core reverse-proxy

我们正在构建一个在Docker容器中运行的具有dotnet核心的Web应用程序。我们已将应用程序放在WS2016上的IIS后面,用作反向代理。借助于URL重写模块(在我们的情况下,我们称其为“ web”),使用容器名称作为主机名将传入我们URL(www.myurl.com)的请求转发到相关的docker容器。此设置适用于此处。

但是,几天前,我们需要添加Facebook oauth授权支持才能向系统注册。我们将授权设置如下:

...
services.AddAuthentication().AddFacebook(o =>
{
    o.CallbackPath = new PathString("/account/facebookreturn");
    o.AppId = appSettings.FacebookLogin.AppId;
    o.AppSecret = appSettings.FacebookLogin.AppSecret;
})
...

我们的Facebook身份验证挑战然后使用以下重定向uri将用户重定向到Facebook oauth页面: https://www.facebook.com/v2.12/dialog/oauth......redirect_uri=http%3A%2F%2Fweb%2Faccount%2Ffacebookreturn&state= ....

如您所见,redirect_uri具有docker容器的容器名称/主机名,而实际上应为“ www.myurl.com”。

我们尝试了几种解决方案,例如使用x-forwarded标头。使用UseIISIntegration()UseUrls似乎也不起作用。我们在这里想念什么?我对IIS和Web标头的经验不是很多,所以这很明显,我感谢您的帮助。

0 个答案:

没有答案