You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IdentityServer4返回的AccessToken未包含已声明scopes如何排查

排查步骤

  • 首先确认授权请求阶段是否传递了所需scope:授权码流中,授权码本身会绑定首次请求/connect/authorize端点时用户同意的scope,后续调用token端点兑换令牌时传递的scope不能超出授权阶段授予的范围。你当前只在兑换token时传了junky_scope,如果授权跳转时没有携带该scope,兑换阶段会直接过滤掉该scope。
  • 检查服务注册逻辑是否完整:确认你的Startup/Program文件中,同时调用了AddInMemoryApiScopes()和AddInMemoryApiResources()方法,分别传入你定义的ApiScope集合和ApiResource集合,IdentityServer4要求两类资源都完成注册才能正确识别自定义scope,缺任一都会导致scope被静默过滤。
  • 排查自定义扩展逻辑:如果你实现了ICustomTokenRequestValidator、IScopeValidator这类自定义校验扩展,先暂时注释掉相关逻辑再测试,避免自定义代码误过滤了目标scope。
  • 开启Debug日志定位根因:将IdentityServer4的日志级别调整为Debug,兑换token时查看日志输出,会明确标注每个scope被过滤的具体原因(比如客户端无权限、未授予、资源未注册等),是最高效的排查手段。

如果你测试时选择跳过用户同意页面,也要确认你的客户端配置中没有默认过滤自定义scope的相关配置,同时授权请求的scope参数用空格分隔多个值,不要用其他分隔符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 13:03:00