如何在Spring中为微服务项目仅为外部客户端启用身份验证



我正在进行一个项目,在该项目中,我使用微服务来处理我的业务逻辑的各个部分。我当前的实现使用JWT令牌来验证请求。出于性能原因,我需要跨模块请求来跳过令牌生成或身份验证步骤,并始终被允许。

我想到的一种方法是将我的项目模块配置为使用带有";"无限";可以说是到期了。这是一个合适的方法,还是有更好的方法来实现我想要的。

提前感谢!

如果你只关心身份验证而不关心授权,我的意思是,如果你想确保某个微服务只能被特定的微服务调用,但你不在乎这个服务上调用了什么操作或端点,你可以使用互tls。

除了服务器之外,还有这种机制,HTTP连接中的客户端必须使用证书对自己进行身份验证。通过这样做,客户端和服务器都信任另一部分,并且可以对通信进行身份验证。

这样做,你可以忘记代币及其到期时间

最终对我有效的方法是一种服务,它以比令牌到期时间短几秒的间隔创建一个刷新的JWT令牌。

然后,RestInterceptor将该Bearer令牌添加到用于模块间通信的所有请求(通过匹配主机名来检测(。

所有这些都包含在每个模块中使用的安全JAR中。这还有一个优点,即允许每个模块都有自己的身份验证端点(私钥是共享的(,因此即使一个服务以某种方式关闭,其他服务仍然可以访问。

最新更新