1

我们正在使用nimbus-jose-jwt 第三方库中的 RemoteJWKSet 进行基于 JWKS 端点的 JWT 验证

使用 RemoteJWKSet,我们可以从远程端点检索 JWKS,并缓存检索到的 JWK 集,以最大限度地减少网络调用。它还能够在远程服务器上处理密钥轮换,因为每当密钥选择器尝试获取具有未知 KID 的密钥时,缓存都会更新。

我的问题是,假设由于安全原因,从远程 JWKS 端点中删除了一个特定的密钥集。但是当我们得到一个使用移除的密钥签名的 JWT 时,它仍然是有效的,因为该密钥集在缓存中可用(RemoteJWKSet 只会在它获得具有未知 KID 的令牌时更新缓存)。

我需要知道是否有任何可能的方法来使 RemoteJWKSet 中的缓存 JWK 集无效(如果需要重新启动服务器)?

4

1 回答 1

2

在 connect2id 支持门户 [1] 上提出了同样的问题

他们建议放置一个空的 JWK 集,这将导致 RemoteJWKSet 在下次调用时从 URL 重新加载密钥集,作为使 JWKS 缓存无效的机制。

[1] https://bitbucket.org/connect2id/nimbus-jose-jwt/issues/287/how-to-invalidate-cache-of-remotejwkset-in

于 2018-11-27T09:07:09.353 回答