12.2.2.2. 发出请求


当客户端针对另一个客户端为目标的令牌交换现有令牌时,您可以使用 audience 参数。此参数必须是您在管理控制台中配置的目标客户端的客户端标识符。

curl -X POST \
    -d "client_id=starting-client" \
    -d "client_secret=the client secret" \
    --data-urlencode "grant_type=urn:ietf:params:oauth:grant-type:token-exchange" \
    -d "subject_token=...." \
    --data-urlencode "requested_token_type=urn:ietf:params:oauth:token-type:refresh_token" \
    -d "audience=target-client" \
    http://localhost:8080/realms/myrealm/protocol/openid-connect/token

subject_token 参数必须是目标域的访问令牌。如果您的 requested_token_type 参数是刷新令牌类型,则响应将同时包含访问令牌、刷新令牌和过期。以下是您从此调用返回的示例 JSON 响应:

如果没有设置 audience 参数,则参数的值默认为提交令牌交换请求的客户端。

与机密客户端不同,不允许公共客户端使用来自其他客户端的令牌执行令牌交换。如果您要传递 subject_token,签发令牌的(机密)客户端应与发出请求的客户端匹配,或者如果向其他客户端发出,则使请求的客户端应设置为令牌的使用者。

如果您明确设置目标 audience (客户端与发出请求的客户端不同),您应确保为客户端集配置了 token-exchange 范围权限,设置 audience 权限以允许客户端成功完成交换。

{
   "access_token" : "....",
   "refresh_token" : "....",
   "expires_in" : 3600
}
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部