Jwt .Net核心Web API承载器颁发者无效
我已经基于最新的微软模板编写了一个Blazor WASM应用程序。在开发模式下,这一切都很好,但在发布到Azure应用程序服务后,我在调用API时随机得到了一个未经授权的401,查看返回的标题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" 这是客户端
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个。这是可行的,但不是一个很好的解决方案