Keycloak 令牌管理与扩展功能全解析
1. 刷新令牌管理
刷新令牌的有效期对用户体验和应用安全至关重要。当刷新令牌过期时,使用浏览器的用户将被迫重新向客户端进行身份验证,这会影响用户体验。更糟糕的是,刷新令牌一旦泄露,攻击者就能从 Keycloak 获取令牌,通过伪装成令牌颁发的客户端来访问应用程序。
为避免或减少刷新令牌泄露带来的影响,可以采用刷新令牌轮转策略。Keycloak 允许启用刷新令牌轮转,其原理是在合法客户端进行刷新令牌请求时,在颁发新令牌之前使旧令牌失效。这样做有助于快速识别刷新令牌是否泄露,并迫使攻击者或合法客户端重新进行身份验证以获取新的令牌集,包括新的有效刷新令牌。
启用刷新令牌轮转的操作步骤如下:
1. 导航到 Realm Settings 页面的 Tokens 选项卡。
2. 启用 Revoke Refresh Token 设置。
启用该设置后,会出现一个额外的 Refresh Token Max Reuse 设置,用于定义客户端在颁发新的刷新令牌之前可以使用同一个刷新令牌的次数。默认情况下,该设置为 0,意味着刷新令牌只能使用一次。如果客户端尝试重复使用同一个刷新令牌,Keycloak 将拒绝请求并强制客户端重新对用户进行身份验证。例如,将该值增加 1,则允许客户端使用同一个刷新令牌两次。
刷新令牌轮转通常是减少刷新令牌泄露时攻击面的良好实践,也有助于快速识别泄露情况并应对可能的漏洞。但对于公共客户端,仅依靠刷新令牌轮转是不够的。公共客户端本质上不安全,因为它们无需提供任何凭证即可向令牌端点进行身份验证。因此,建议使用 Mutual TLS 客户端身份验证,通过客户端证书将令牌绑定到颁发
超级会员免费看
订阅专栏 解锁全文
2530

被折叠的 条评论
为什么被折叠?



