401 Invalid_token Издатель недопустим - Asp. Net Core 3.1, Angular, Identity Server 4, Azure App Service, Linux - PullRequest
0 голосов
/ 19 июня 2020

Я создал веб-приложение https://www.alpacabiriba.com, используя шаблон Visual Studio 2019 (Создать новый проект | Asp. Net Базовое веб-приложение | Angular + Индивидуальные учетные записи пользователей). Я опубликовал это в службе приложений Azure Linux с помощью мастеров VS2019.

Он отлично работает в Azure, за исключением случаев, когда я нажимаю «Получить данные», когда получаю WWW-Authenticate: ошибка носителя = "invalid_token", error_description = "Эмитент 'https://www.alpacabiriba.com' недействителен"

Не могли бы вы помочь кому-нибудь?

Я нашел пару похожих сообщений на здесь, но я не понимаю, что мне нужно делать.

Я изменил как можно меньше, чтобы попытаться заставить его работать, прежде чем я продолжил менять его, чтобы делать вещи Biriba ...

  1. Я изменил его, чтобы загрузить сертификат SSL p12 из / var / ssl / private. Служба приложений Azure поместила его. Это включало мою попытку встроить метод расширения AddApiAuthorization, чтобы обойти его, настаивая на доступ к ключу сертификата из appsettings. json, а не /var/ssl/private.

  2. Я добавил код в void Startup.Configure (приложение IApplicationBuilder, IWebHostEnvironment env) для применения миграции базы данных, когда ru n в Azure.

Чтобы загрузить p12, я изменил ...

services.AddIdentityServer()
  .AddApiAuthorization<ApplicationUser, ApplicationDbContext>();

на

var identityServicesServicesColection = services.AddIdentityServer();
identityServicesServicesColection
  .AddAspNetIdentity < ApplicationUser > ()
  .AddOperationalStore < ApplicationDbContext > ()
  //.ConfigureReplacedServices()
  .AddIdentityResources()
  .AddApiResources()
  .AddClients();
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
if (environment == Environments.Development)
{
  identityServicesServicesColection.AddSigningCredentials();
}
else
{
  var p12 = LoadP12Certificate();
  // https://www.domstamand.com/loading-x509-cert-from-azure-keyvault-into-netcore-app/
  identityServicesServicesColection.AddSigningCredential(p12);
}

Чтобы применить миграции Я добавил следующее в Startup.Configure (приложение IApplicationBuilder, IWebHostEnvironment env) ...

ApplyAnyPendingMigrations(app);

, который вызывает ...

public void ApplyAnyPendingMigrations(IApplicationBuilder app)
{
    using (var serviceScope = app.ApplicationServices.CreateScope())
    {
        var context = serviceScope.ServiceProvider.GetService<ApplicationDbContext>();
        context.Database.Migrate();

        if (context.Database.GetPendingMigrations().Any())
        {
            context.Database.Migrate();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...