0

我在 Keycloakclient1-webclient2-server. client1-web是公开的,client2-server保密的。

这是我目前拥有并且工作正常的流程:

  1. 用户通过 webapp 登录到client1-web
  2. 使用身份验证令牌调用 API 服务器client1-web进行身份验证
  3. API 服务器调用 Keycloakclient2-server为不同的用户交换令牌
  4. Token交换成功,从API服务器返回给webapp

我已经按照文档配置了 Keycloak 。在夏天:

  • 启用细粒度权限
  • 客户 > client1-web> 权限 > 令牌交换
  • 添加策略
    • 客户->client2-server
    • 策略 -> 一致

我的理解是,这应该只允许客户端上的令牌交换,为client2-server客户端铸造令牌client1-web

问题:

虽然我可以在 上进行令牌交换client2-server,并为模拟用户取回令牌,但我也可以直接进行令牌交换,client1-web这会带来真正的安全风险。

期望的结果:

只能client2-server做代币兑换,不能client1-web

4

0 回答 0