Ошибка настройки веб-приложения ASP.NET Core с помощью службы приложений Azure и удостоверения Facebook - PullRequest
0 голосов
/ 04 июня 2019

«Настройка внешнего входа в Facebook» моего приложения ASP.Net Core 2.2 работает на моем локальном компьютере, но не работает со службой приложений Azure.Я получаю ошибку You can't get an access token or log in to this app from an insecure page. Try re-loading the page as https://, когда приложение перенаправляет на Facebook.Тем не менее, я настроил защищенный URL своего приложения в конфигурации facebook => «Действительные URI перенаправления OAuth» (см. Скриншот ниже).

Что мне не хватает?

Startup.cs:

public void ConfigureServices(IServiceCollection services)
{
  services.Configure<ForwardedHeadersOptions>(options =>
  {
    options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
  });
.............

}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
      app.UseForwardedHeaders();
    }

Вывод устранения неполадок на основе этой ссылки:

Header: "X-Client-IP": ["76.187.198.247"]
Header: "X-Client-Port": ["51335"]
Header: "Upgrade-Insecure-Requests": ["1"]
Header: "DNT": ["1"]
Header: "X-WAWS-Unencoded-URL": ["/Identity/Account/Login"]
Header: "CLIENT-IP": ["76.187.198.247:51335"]
Header: "X-ARR-LOG-ID": ["3b69d760-03e7-4199-bec4-38ff77055413"]
Header: "DISGUISED-HOST": ["simplerproductsscrubber.azurewebsites.net"]
Header: "X-SITE-DEPLOYMENT-ID": ["SimplerProductsScrubber"]
Header: "WAS-DEFAULT-HOSTNAME": ["simplerproductsscrubber.azurewebsites.net"]
Header: "X-Original-URL": ["/Identity/Account/Login"]
Header: "X-Forwarded-For": ["76.187.198.247:51335"]
Header: "X-ARR-SSL": ["2048|256|C=US, O=DigiCert Inc, CN=DigiCert SHA2 Secure Server CA|C=US, S=Washington, L=Redmond, O=Microsoft Corporation, CN=*.azurewebsites.net"]
Header: "X-Forwarded-Proto": ["https"]
Header: "X-AppService-Proto": ["https"]
Request RemoteIp: "::ffff:172.16.1.1"
Request Method: "GET"
Request Scheme: "http"
Request Path: "/Identity/Account/Login"
Header: "Connection": ["close"]
Header: "Accept": ["text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3"]
Header: "Accept-Encoding": ["gzip, deflate, br"]
Header: "Accept-Language": ["en-US,en;q=0.9"]
Header: "Cookie": ["ARRAffinity=152c130e21c95ce31be52418aed58ed4a1114b560e108246b2120e2d4dbf27ee; .AspNetCore.Antiforgery.nixphHDAMN4=CfDJ8G1Jn3njIA5IoKC-W8RHjabWwnkwCrPq4ZnU7-ZRlTXbuf8kfpKPQACS5HEylcqol59j-9GJ4AzKFgirMIn8yclO5QSucBnlED9aKjQgAlRrkuZmIZeu8VKT9oOA1V_dvEpjhDoqKxxWrRpfVwST6hU"]
Header: "Host": ["simplerproductsscrubber.azurewebsites.net"]
Header: "Max-Forwards": ["10"]
Header: "Referer": ["https://simplerproductsscrubber.azurewebsites.net/Dashboard"]
Header: "User-Agent": ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"]

Конфигурация Facebook: действительное перенаправление OAuthURI, показывающие мой веб-сайт, настроенный с использованием https:

enter image description here

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Для меня сработало решение, документированное здесь . Параметр приложения ASPNETCORE_FORWARDEDHEADERS_ENABLED=true также необходимо добавить в Microsoft Azure.

// ConfigureServices

if (string.Equals("true", hostingContext.Configuration["ForwardedHeaders_Enabled"], StringComparison.OrdinalIgnoreCase))
            {
                services.Configure<ForwardedHeadersOptions>(options =>
                {
                    options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
                    // Only loopback proxies are allowed by default. Clear that restriction because forwarders are
                    // being enabled by explicit configuration.
                    options.KnownNetworks.Clear();
                    options.KnownProxies.Clear();
                });
            }
0 голосов
/ 04 июня 2019

В Facebook разработчике вы зарегистрировали приложение в appId и appSecret и хорошо его протестировали на местном уровне. После публикации веб-сайта в веб-приложении Azure вам необходимо сбросить AppSecret на портале для разработчиков Facebook .

Согласно вашему описанию, кажется, что ваш URL-адрес OAUTH, заданный на экране OAUTH API FaceBook, не соответствует URL-адресу, который вы пытаетесь использовать в качестве OAUTH.

Добавьте следующий URL в поле Valid OAuth redirect URIs: https://yourwebsite.azurewebsites.net/auth/facebook/callback, где yoursite.com является вашим доменом. И добавьте ssl сертификат на свой лазурный сайт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...