Jwt .Net核心Web API承载器颁发者无效

Jwt .Net核心Web API承载器颁发者无效,jwt,identityserver4,blazor,webapi,Jwt,Identityserver4,Blazor,Webapi,我已经基于最新的微软模板编写了一个Blazor WASM应用程序。在开发模式下,这一切都很好,但在发布到Azure应用程序服务后,我在调用API时随机得到了一个未经授权的401,查看返回的标题 WWW-Authenticate: Bearer error="invalid_token", error_description="The issuer 'https://*domain*.azurewebsites.net' is invalid" 这是客户端

我已经基于最新的微软模板编写了一个Blazor WASM应用程序。在开发模式下,这一切都很好,但在发布到Azure应用程序服务后,我在调用API时随机得到了一个未经授权的401,查看返回的标题

WWW-Authenticate: Bearer error="invalid_token", error_description="The issuer 'https://*domain*.azurewebsites.net' is invalid"
这是客户端使用https://domain.azurewebsites.net 客户因此,它与web API相匹配

我还有一个自定义域连接到应用程序服务,这意味着还有https://www.domain.co.uk 及https://domain.co.uk 两者都是SSL的

我已经检查了JWT令牌,它包含我正在调用的网站版本的正确URL

有时一切正常,但60%的时间允许用户登录,然后API调用失败。我似乎无法像过期登录一样跟踪到1个域名或模式。如果您先注销,然后再重新登录,则不会清除该问题

配置文件如下所示

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseDatabaseErrorPage();
            app.UseWebAssemblyDebugging();
        }
        else
        {
            app.UseExceptionHandler("/Error");
        }

        app.UseHttpsRedirection();
        app.UseBlazorFrameworkFiles();
        app.UseStaticFiles();

        app.UseRouting();

        app.UseIdentityServer();
        app.UseAuthentication();
        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapRazorPages();
            endpoints.MapControllers();
            endpoints.MapFallbackToFile("index.html");
        });
    }
任何方向正确的帮助或提示都将不胜感激

干杯


Dave

你明白了吗Dave,我在azure web app for containers(linux)中运行IS4也有同样的问题Hi J King,没有,我从来没有追根究底,我最终为每个URL创建了一个web应用,并将每个web应用的URL减至1个。这是可行的,但不是一个很好的解决方案