7.5. 模拟(Impersonation)
对于内部和外部令牌交换,客户端可以代表用户请求以模拟其他用户。例如,您可能有一个需要模拟用户的管理员应用程序,以便支持工程师能够调试问题。
7.5.1. 授予对交换的权限 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
subject 令牌代表的用户必须具有模拟其他用户的权限。有关如何启用这个权限的服务器 管理指南。它可以通过角色完成,也可以通过更精细的管理员权限完成。
7.5.2. 发出请求 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
根据其他章节中所述进行请求,但另外另外指定 requested_subject 参数。此参数的值必须是用户名或用户 id。
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:access_token" \
-d "audience=target-client" \
-d "requested_subject=wburke" \
http://localhost:8080/auth/realms/myrealm/protocol/openid-connect/token