我有各种微服务。我已经使用JWT实现了安全性。每个服务都通过所有服务共享的密钥验证JWT令牌。
在所有微服务中为JWT共享相同的签名密钥是否可以?
我无法在API网关上实现这一点,因为我必须使用某些库,这些库需要在每个微服务中触发弹簧安全性。
答案 0 :(得分:2)
是的,您需要共享密钥才能让JWT安全/正确地运行。
我建议使用公钥 - 私钥签名方法并按值JWT传递。这将意味着您将获得只有您的网关需要知道的私人签名密钥和公共验证密钥。
然后,您可以将验证密钥分发给所有微服务。这可以是您通过部署执行的操作,也可以是您的微服务可以使用某种刷新周期并将您的签名密钥与网关一起发布。前者更安全,后者更善于自我治疗。
这可能很有用:JWK。