微服务中的 JWT 身份验证

Posted

技术标签:

【中文标题】微服务中的 JWT 身份验证【英文标题】:JWT Authentication in Microservices 【发布时间】:2021-08-13 19:04:04 【问题描述】:

我正在开发一个包含 5 个微服务的 Spring Rest 微服务项目。我在用户 MS 中添加了 JWT 身份验证,并且正在生成 JWT 令牌。 现在如果我想调用一个不同的微服务,验证那个外国 MS 的令牌的过程是什么?我尝试了各种资源来研究 JWT 与微服务,但找不到任何好的资源。欢迎提供资源和参考。

【问题讨论】:

Spring Security 文档通常非常好,我建议您阅读一下。从记忆中,我相信一旦令牌是身份验证和/或授权令牌被保存在安全上下文中,理论上它应该非常简单地将令牌转发/附加到对其他服务的请求。如果您需要为其他服务使用具有不同声明的 JWT,最好为请求创建一个新的 JWT。同样,应该可以从安全上下文中检索 JWT 的声明。 【参考方案1】:

可以在api网关上认证授权,如果使用Feign,可以使用@RequestHeader在header中添加token

【讨论】:

以上是关于微服务中的 JWT 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

使用 JWT 对单独的 API 微服务进行身份验证

使用 JWT 和 OpenID Connect 在微服务中进行客户端身份验证

微服务 - 如何使用 JWT 对单独的 API 微服务进行身份验证

.NET Core Authorize 属性与外部 JWT 身份验证微服务?

JWT 是不是应该是一个单独的身份验证微服务,而不是与后端业务逻辑坐在一起?

具有无状态服务器且无服务器端呈现的 cookie 中的 JWT 身份验证