You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keycloak集群环境下Token跨实例共享失效问题

Keycloak集群Token跨实例验证失败解决方案

问题诊断

你的Keycloak集群已成功组建(日志显示节点发现并完成数据重平衡),用户/客户端数据能跨实例同步,但Token无法在其他实例验证,核心原因是签名密钥未在集群节点间同步。

你之前修改owners数量无效,是因为owners仅作用于分布式缓存的副本数,而负责存储签名密钥的keys缓存原本配置为local-cache,根本不会参与集群数据同步。每个节点会生成独立的签名密钥对,导致其他节点无法验证异节点生成的Token。

修复步骤

修改infinispan.xml配置,将keys缓存从local-cache改为**replicated-cache**(推荐,密钥数据量小,全节点复制更高效):

<!-- 替换原有的local-cache name="keys"配置 -->
<replicated-cache name="keys">
    <encoding>
        <key media-type="application/x-java-object"/>
        <value media-type="application/x-java-object"/>
    </encoding>
    <expiration max-idle="3600000"/>
    <memory max-count="1000"/>
</replicated-cache>

验证操作

  1. 重启所有Keycloak节点,让新的缓存配置生效
  2. 用其中一个节点生成REST API认证Token,调用另一个节点的API接口,确认Token验证通过
  3. 检查集群日志,确保keys缓存完成数据同步(可搜索ISPN100010关键词确认重平衡完成)

内容的提问来源于stack exchange,提问作者NihalAntony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 20:34:55