各种微服务中 JWT 的共享签名密钥

Nit*_*waj 4 security spring-security jwt microservices spring-cloud

我有各种微服务。我已经使用 JWT 实现了安全性。每个服务通过所有服务共享的密钥验证 JWT 令牌。

是否可以在所有微服务中共享相同的 JWT 签名密钥?

我无法在 API 网关上实现这一点,因为我必须使用某些需要在每个微服务中触发 Spring Security 的库。

Not*_*ple 7

是的,您需要共享密钥才能让 JWT 安全/正确地运行。

我推荐的是使用公私钥签名方法并按值传递 JWT。这意味着您将获得一个只有您的网关需要知道的私有签名密钥和一个公共验证密钥。

然后,您可以将验证密钥分发到所有微服务。这可以是您通过部署执行的操作,也可以是您的微服务可以使用某种刷新周期并将您的签名密钥与网关一起发布。前者更安全,后者更擅长自愈。

这可能很有用:JWK