在 Keycloak 中禁用刷新令牌

Disable Refresh Token in Keycloak

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

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

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

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

较新版本的 Keycloak 在“OpenID Connect 兼容模式”部分下的客户端级别实现了此功能。

我已经验证了版本 14.x。