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

ForgeRock v7.1.0令牌交换返回Invalid Token Exchange问题求助

解决方案

1. 确认OAuth2客户端已开启令牌交换权限

你使用的client_id为steve的OAuth2客户端需要先开启对应功能:

  • 登录AM管理控制台,进入Realms > Root > Applications > OAuth 2.0 > Clients > steve
  • 切换到Advanced标签页,找到Grant Types配置项,确认已添加urn:ietf:params:oauth:grant-type:token-exchange到允许的授权类型列表
  • 同页面找到Token Exchange Allowed Subject Token Types配置项,确认已添加urn:ietf:params:oauth:token-type:access_token
  • 找到Token Exchange Allowed Requested Token Types配置项,确认已添加urn:ietf:params:oauth:token-type:id_token
  • 保存配置后重启AM实例清空缓存

2. 修正令牌交换请求参数

你当前的请求缺少两个必填参数:

  1. ForgeRock AM要求令牌交换时必须指定目标受众audience
  2. ID Token属于OpenID Connect范畴的令牌,scope必须携带openid作用域才能正常生成

修正后的完整请求如下:

curl --location --request POST 'http://am.example.com:8080/am/oauth2/realms/root/access_token' \
--header 'Authorization: Basic c3RldmU6cGFzc3dvcmQ=' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=urn:ietf:params:oauth:grant-type:token-exchange' \
--data-urlencode 'subject_token_type=urn:ietf:params:oauth:token-type:access_token' \
--data-urlencode 'subject_token=BS8vVbJ4EEygzdEE3jQH-xsKW9w' \
--data-urlencode 'scope=cn openid' \
--data-urlencode 'requested_token_type=urn:ietf:params:oauth:token-type:id_token' \
--data-urlencode 'audience=steve'

3. 可选:检查全局令牌交换配置

如果上述操作后仍报错,检查全局OAuth2配置:

  • 进入Realms > Root > Services > OAuth2 Provider
  • 切换到Advanced标签页,确认Enable Token Exchange开关已开启

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:12:03