密钥泄露:模拟冒充了错误客户的令牌

时间:2020-06-19 08:49:17

标签: jwt keycloak access-token impersonation

我正在尝试使用信任客户端并通过模拟为公共客户端颁发令牌来颁发访问令牌。我已经设置了令牌交换权限,该请求有效。但是,我的问题是发行的令牌似乎在AZP中包含错误的客户端。

以下是我的要求:

curl -v -X POST \
    -d "client_id=impersonator-client" \
    -d "client_secret=<secret omitted>" \
    --data-urlencode "grant_type=urn:ietf:params:oauth:grant-type:token-exchange" \
    -d "audience=target-client" \
    --data-urlencode "requested_subject=john.doe" \
    http://localhost:8080/auth/realms/swarm/protocol/openid-connect/token

基本上,我想通过用“ impersonator-client”模拟用户来获取用户“ john.doe”的访问令牌。应该为“目标客户端”铸造发行的令牌,但是AZP仍然包含“模拟客户端”。

之所以这样做,是因为应该可以使用外部身份验证工作流程登录,最后提供了一个访问令牌,然后可以在我的后端服务器上对其进行验证,该后端服务器将受信任的客户端用于冒充。

根据文档(https://www.keycloak.org/docs/latest/securing_apps/#_token-exchange),听众应该定义应该为其铸造令牌的目标客户端。

关于权限:

我已经使用引用“ impersonator-client”的客户端策略设置了“ admin-impersonating.permission.users”权限。 “目标客户端”本身配置有权限“ token-exchange.permission.client.e236d39c-9b9c-4815-b734-90364fea4e91”,其中包括引用“模仿者-客户端”的客户端策略。我在那里省略了什么吗?这里的问题是文档似乎是错误的。该文档使用“ user-impersonated.permission.users”而不是“ admin-impersonating.permission.users”。当我这样尝试时,请求甚至被拒绝。

这是Keycloak中的错误还是我做错了什么?

谢谢!

0 个答案:

没有答案
相关问题