带有反向代理的ASP.NET Owin OAuth OAuth回调URL

时间:2018-09-18 12:39:06

标签: asp.net asp.net-mvc nginx oauth

我需要您的帮助来解决我在MVC5应用程序上与OAuth有关的问题。在我的开发环境中,一切都很好。我设置了Twitter / Google / Facebook / Microsoft提供程序,目前它的作用像是一种魅力。

我的问题是在测试环境上。我使用nGinx作为前端服务器来保存证书,并通过域的子目录提供一些静态内容。 代理部分的配置如下:

location / {
            proxy_pass http://localhost:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }

问题是我为外部提供程序配置的所有回调URL都在HTTPS方案上,但是在HTTP上运行应用程序使回调URL具有HTTP协议(例如,授权的回调URL为https://example.com/signin-facebook,但是发送给提供商的有效回调URL为http://example.com/signin-facebook)。

我在其他帖子上看到,有一个带有UseForwardedHeaders的AspNetCore解决方案,但是由于我仍然使用普通的AspNet,所以这不是一个选择。

作为一种肮脏的解决方法,我暂时允许使用HTTP协议的URL作为Twitter / Facebook和Google的回调URL,但是Microsoft严格并且仅允许HTTPS(此解决方法有效,因为我的nGinx配置为对传入的HTTP执行301重定向通过HTTPS请求到同一请求)

是否有人可以更改用于构建回调URL的基本URL的方案?

0 个答案:

没有答案