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

隐式流包含自定义声明但PKCE授权码流对应声明缺失问题咨询

问题根因

该问题由Azure AD B2C自定义策略中授权码流与隐式流的令牌生成逻辑差异导致:

  • 隐式流(response_type=id_token)在用户完成身份验证流程后,直接在授权端点读取依赖方(RelyingParty)配置的OutputClaims生成ID令牌返回,因此你在依赖方中配置的两个自定义声明可以正常返回。
  • 授权码流(response_type=code)分为两步:第一步用户完成流程后生成授权码,同时持久化当前上下文的声明集;第二步使用授权码兑换令牌时,会直接调用JwtIssuer技术配置生成ID令牌和访问令牌,不会再读取依赖方的OutputClaims配置。你当前的配置存在两处缺失:
    1. 未在JwtIssuer技术配置的OutputClaims列表中添加displayName和organization声明,生成令牌时不会将这两个字段写入最终返回的令牌中
    2. 生成授权码的编排步骤未将两个自定义声明纳入持久化范围,兑换令牌时无法从授权码关联的缓存中读取到对应值

修复方案

  1. 找到自定义策略基础层中定义的JwtIssuer声明提供程序,在其技术配置的OutputClaims节点下新增两个输出声明:
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="organization" />
  1. 检查生成授权码的编排步骤对应的技术配置,将两个声明加入持久化声明列表,确保兑换令牌时可以正常读取。
  2. 若需要两个声明同时出现在访问令牌中,需确认你为应用配置的API权限未过滤这两个自定义声明。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:06:03