禁用Keycloak中的刷新令牌功能

8
我们有一个Angular SPA,使用Implicit Flow通过OIDC进行授权。我们使用Keycloak作为授权服务器。Access Token的有效期很短,并且会定期通过hidden iframe刷新。
在阅读了Authorization Code Flow + PKCE是授权SPA的新推荐方法后,我们决定更改流程。 一切运作良好,但每次调用Token-Endpoint时,Keycloak都会给我们一个Refresh Token(以及Access和ID-Token)。 由于没有安全的存储Refresh Token的方式,我们希望继续使用隐藏iframe方法来刷新access token。
有没有办法在Keycloak中禁用Refresh Token? 或者我们错过了什么?在SPA中存储Refresh Tokens是否可以?

你找到了吗? - phanin
我还没有找到答案。我们仍在使用隐藏的iframe。一旦我解决了这个问题,我一定会更新这个问题,因为有些人似乎对此很感兴趣。根据这篇文章(https://auth0.com/blog/securing-single-page-applications-with-refresh-token-rotation/),只要使用“刷新令牌轮换”,SPA中的刷新令牌就没问题。我在Keycloak中没有找到这样的功能。 - tobiso
你试过减少refresh_token的生命周期吗?例如-缩短到1分钟? - xardbaiz
我相信在13.0.0版本中是可能的。https://issues.redhat.com/browse/KEYCLOAK-17202?jql=project%20%3D%20KEYCLOAK%20AND%20fixVersion%20%3D%2013.0.0%20AND%20text%20~%20%22refresh%22 - LLeon
2个回答

2

较新版本的Keycloak在"OpenID Connect Compatibility Modes"中已经在客户端级别实现了此功能。

我已经验证过14.x版。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接