【问题标题】:Disable Refresh Token in Keycloak在 Keycloak 中禁用刷新令牌
【发布时间】:2020-09-01 01:55:24
【问题描述】:

我们有一个由 OIDC 使用隐式流程授权的 Angular SPA。我们使用 Keycloak 作为我们的授权服务器。访问令牌的生命周期很短,并通过隐藏的 iframe 定期刷新。

在阅读授权代码流程 + PKCE 是授权 SPA 的新推荐方式后,我们决定切换流程。 一切正常,但每次调用 Token-Endpoint 时,Keycloak 都会给我们一个 Refresh Token(连同 Access 和 ID-Token)。 由于没有安全的方式来存储刷新令牌,我们想继续使用隐藏的 iframe 方法来刷新访问令牌。

有没有办法在 Keycloak 中禁用刷新令牌? 还是我们错过了什么?可以在 SPA 中存储刷新令牌吗?

【问题讨论】:

  • 你发现了吗?
  • 我还没有发现。我们仍在使用隐藏的 iframe。一旦我解决了这个问题,我肯定会更新这个问题,因为有些人似乎对此感兴趣。根据这个post SPA 中的刷新令牌,只要使用“刷新令牌轮换”就可以了。我在 Keycloak 中没有找到这样的功能。
  • 您是否尝试减少 refresh_token 的寿命。例如 - 到 1 分钟?
  • 我相信这在 13.0.0 版本中是可能的。 issues.redhat.com/browse/…

标签: oauth-2.0 single-page-application keycloak openid-connect


【解决方案1】:

最近版本的 Keycloak 已在“OpenID Connect Compatibility Modes”部分下的客户端级别实现了此功能。

我已使用 14.x 版本进行了验证。

【讨论】:

    【解决方案2】:

    从 Keycloak 的源代码中可以看出,它仍然没有提供在身份验证代码流期间禁用刷新令牌发布的方法。不幸的是,您应该继续使用隐式授权流程,因为存储在客户端的刷新令牌是一个很大的缺陷。

    【讨论】:

      猜你喜欢
      • 2019-04-21
      • 2021-01-22
      • 2018-03-29
      • 2020-08-14
      • 2021-05-13
      • 2017-07-18
      • 2018-12-08
      • 2022-10-13
      • 2022-01-21
      相关资源
      最近更新 更多