You need to enable JavaScript to run this app. 使用有效AccessToken调用IdentityServer保护的WebAPI失败求助
优惠活动
大模型
产品
解决方案
定价
更多

使用有效AccessToken调用IdentityServer保护的WebAPI失败求助

问题根源

你部署在https://localhost:6001的受保护WebAPI服务,错误配置了面向前端Web应用的Cookie、OpenIdConnect认证方案,默认优先用Cookie方案校验请求,携带Bearer令牌的API请求未匹配到有效Cookie就触发OIDC登录跳转,不会触发JwtBearer逻辑校验你携带的Access Token,因此返回未认证错误。

修复步骤

1. 替换WebAPI服务的认证配置

删除WebAPI项目中原有包含AddCookie、AddOpenIdConnect的认证配置,仅保留JwtBearer相关配置即可:

using Microsoft.AspNetCore.Authentication.JwtBearer;

services.AddAuthentication(options =>
{
    options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
    options.Authority = "https://localhost:5001";
    options.Audience = "Bond";
});

2. 校验接口授权配置

确认API接口的[Authorize]特性未指定非Jwt的认证方案,也可显式指定用JwtBearer校验:

[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
    // 你的接口逻辑
}

3. 验证权限匹配

你用相同Token在Postman可调用成功,说明Token本身的scope、受众配置均有效,完成上述配置修改后即可正常调用。

内容的提问来源于stack exchange,提问作者yogihosting

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 14:54:01