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

如何修改AD B2C自定义策略JwtIssuer ClaimsProvider移除Refresh Token?

AD B2C自定义策略禁用Refresh Token报错解决方案

问题原因

AD B2C的JWT签发器技术配置(JwtIssuer)在OAuth类流程中,无论是否实际返回刷新令牌,都强制要求配置issuer_refresh_token_user_identity_claim_type元数据项,作为刷新令牌关联用户身份的唯一标识声明,缺少该配置就会抛出你遇到的报错。

解决步骤

  • 第一步:补全必填的元数据项
    在JwtIssuer的<Metadata>节点中添加issuer_refresh_token_user_identity_claim_type配置,取值选择用户的唯一标识声明,通常用内置的objectId即可。
  • 第二步:添加禁用刷新令牌的配置
    要彻底不返回刷新令牌,需要将刷新令牌的生命周期设为0,添加两个对应的元数据项:
    • refresh_token_lifetime_secs设为0,禁用单次刷新令牌有效期
    • rolling_refresh_token_lifetime_secs设为0,禁用滚动刷新令牌最长有效期

修改后的完整配置如下:

<ClaimsProvider>
  <DisplayName>Token Issuer</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="JwtIssuer">
      <DisplayName>JWT Issuer</DisplayName>
      <Protocol Name="None" />
      <OutputTokenFormat>JWT</OutputTokenFormat>
      <Metadata>
        <Item Key="client_id">{service:te}</Item>
        <Item Key="SendTokenResponseBodyWithJsonNumbers">true</Item>
        <Item Key="AuthenticationContextReferenceClaimPattern">None</Item>
        <Item Key="token_lifetime_secs">3600</Item>
        <!-- 1 H -->
        <Item Key="id_token_lifetime_secs">3600</Item>
        <!-- 新增必填配置 -->
        <Item Key="issuer_refresh_token_user_identity_claim_type">objectId</Item>
        <!-- 禁用刷新令牌配置 -->
        <Item Key="refresh_token_lifetime_secs">0</Item>
        <Item Key="rolling_refresh_token_lifetime_secs">0</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
      </CryptographicKeys>
      <InputClaims />
      <OutputClaims />
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

验证注意事项

  • 上传自定义策略时需遵循层级顺序,先上传基础策略文件,再上传扩展策略、依赖方策略
  • 测试时使用浏览器无痕模式,避免旧策略缓存、Cookie缓存导致的验证异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:30:01