7.4.2. 发出请求
subject_token_type 必须是 urn:ietf:params:oauth:token-type:access_token 或 urn:ietf:params:oauth:token-type:jwt。如果类型是 urn:ietf:params:oauth:token-type:access_token,您必须指定 subject_issuer 参数,且必须是配置的身份提供程序的别名。如果类型为 urn:ietf:params:oauth:token-type:jwt,该提供程序将通过 JWT 中的 签发者 声明(必须是提供程序的别名)或提供程序配置中的注册签发者进行匹配。
为进行验证,如果令牌是访问令牌,则将调用提供程序的用户 info 服务来验证令牌。成功调用意味着访问令牌有效。如果主题令牌是 JWT,如果提供程序启用了签名验证,则它将默认在用户信息服务上调用来验证令牌。
默认情况下,内部令牌 Minted 将使用调用客户端来确定令牌中的使用为调用客户端定义的协议映射程序。另外,您可以使用 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=...." \
-d "subject_issuer=myOidcProvider" \
--data-urlencode "subject_token_type=urn:ietf:params:oauth:token-type:access_token" \
-d "audience=target-client" \
http://localhost:8080/auth/realms/myrealm/protocol/openid-connect/token
如果您的 requested_token_type 参数是刷新令牌类型,则响应将包含访问令牌、刷新令牌和过期。以下是您从此调用返回的示例 JSON 响应:
{
"access_token" : "....",
"refresh_token" : "....",
"expires_in" : 3600
}