我很难找到答案。当我有两个Sping Boot 微服务应用程序,微服务A和微服务B,并且它们都相互通信时,我遇到了一个问题。当微服务A在身份验证后生成JWT令牌并将响应与JWT令牌沿着发送给微服务B时,微服务B如何验证JWT令牌以确保其有效性?我知道微服务A已经验证了JWT令牌,但是当它发送JwT令牌时,微服务B也需要在收到时验证它。有人能帮我回答问题,并提供例子来帮助我理解吗?此外,如果有任何可用的Google资源,请在这里分享,因为它们对我的学习课程很有帮助。谢谢你
w8rqjzmb1#
如果你需要两个微服务安全地相互通信,最常见的方法是有第三方。这样想吧,当你要向政府申请护照时,你通常需要带一个家庭成员来为你担保,告诉你你就是你声称的那个人。首先,你需要三个不同的团队:
如果你使用的是JWT,流程如下:
public key
资源服务器获取认证服务器公钥的方法主要有两种。你可以在启动时通过配置文件等方式将它提供给服务器。这通常使得在JWT泄漏或任何其他安全原因的情况下,如果需要,则更难旋转密钥。另一种方法是进行设置,以便授权服务器公开一个JWK端点,这是一个REST端点,服务器可以调用它来动态获取公钥。例如,所有服务器可能每30分钟调用一次auth服务器来获取公钥,这意味着我们可以轮换密钥,30分钟后所有服务器将自动获取新密钥。因此,就像在真实的生活中一样,我们需要一个第三方认证服务器,可以为这两种服务提供担保。
1条答案
按热度按时间w8rqjzmb1#
如果你需要两个微服务安全地相互通信,最常见的方法是有第三方。
这样想吧,当你要向政府申请护照时,你通常需要带一个家庭成员来为你担保,告诉你你就是你声称的那个人。
首先,你需要三个不同的团队:
如果你使用的是JWT,流程如下:
public key
来验证所提供的JWT的签名。资源服务器获取认证服务器公钥的方法主要有两种。你可以在启动时通过配置文件等方式将它提供给服务器。这通常使得在JWT泄漏或任何其他安全原因的情况下,如果需要,则更难旋转密钥。
另一种方法是进行设置,以便授权服务器公开一个JWK端点,这是一个REST端点,服务器可以调用它来动态获取公钥。
例如,所有服务器可能每30分钟调用一次auth服务器来获取公钥,这意味着我们可以轮换密钥,30分钟后所有服务器将自动获取新密钥。
因此,就像在真实的生活中一样,我们需要一个第三方认证服务器,可以为这两种服务提供担保。