首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >:使用Config Server / Key旋转分发公钥

:使用Config Server / Key旋转分发公钥
EN

Stack Overflow用户
提问于 2018-08-21 11:11:45
回答 2查看 1.7K关注 0票数 9

如何在Spring环境中管理用于签名/验证JWT的私有/公共密钥?

的“问题”:

现在我生成了一对密钥。然后将私钥+公钥复制到我的auth-server应用程序中。并将公钥复制到每个资源服务器。

当我现在要实现“密钥轮换”时,我必须以某种方式填充每个服务的新密钥。

的想法:

也许我可以用spring-cloud-config-server来存储和分发密钥对?

配置服务器已经提供了数据库登录凭据。那么,为什么不在那里存储更敏感的信息呢?

问题:

如果这是要走的路:如何使用spring-cloud-config-server实现密钥对分发

你对安全有什么顾虑吗?

你是怎么解决这个问题的?我想有更好的解决办法。

编辑:

也许有一些解决方案使用Spring的security.oauth2.resource.jwt.keyUri属性来处理JWK?

EN

回答 2

Stack Overflow用户

发布于 2018-08-25 14:39:29

首先,我将有一个网关来隐藏JWT机制。它将允许您从网关撤消令牌。如果用户知道他的令牌,您就不能在不撤销公钥的情况下撤销它。它看起来是这样的:

使用zuul的过滤器和会话范围内的bean很容易实现。

其次,您是否在注释中这样说过,您可以简单地创建一个新的私钥来生成新的令牌。但是,您的所有资源服务器必须能够读取以前生成的所有令牌。因此,您需要在每个资源服务器上有一个公钥列表,并且每次收到请求时,都必须尝试使用每个公钥来验证它。也许您可以有一个公钥id (并将该id放在每个生成的令牌上),以避免对此任务进行愚蠢的查找。

对于密钥分发,我认为使用spring云总线和兔子mq似乎是对的。

票数 2
EN

Stack Overflow用户

发布于 2018-08-29 19:46:57

您应该考虑使用春云领事,而不是:

领事提供了用于存储配置和其他元数据的密钥/值存储库。是Config服务器和客户端的替代品。在特殊的“引导”阶段,配置被加载到Spring环境中。默认情况下,配置存储在/config文件夹中。多个PropertySource实例是基于应用程序的名称和模拟Spring解析属性顺序的活动概要文件创建的。

您可以向/refresh发布更新您的密钥,或注意变化

领事监视利用领事监视密钥前缀的能力。Config Watch进行阻塞的Consul调用,以确定是否对当前应用程序更改了任何相关的配置数据。如果有新的配置数据,则发布刷新事件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51947402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档