使用 jwt 在微服务中进行身份验证

Posted

技术标签:

【中文标题】使用 jwt 在微服务中进行身份验证【英文标题】:Authentication in microservices using jwt 【发布时间】:2020-06-12 10:11:04 【问题描述】:

我将使用 Laravel 框架构建微服务。 我有用户微服务来处理客户端凭据并对其进行身份验证(为客户端创建 JWT)。 此外,还有其他需要用户身份验证的微服务。

问题是,如果秘密访问令牌密钥仅在用户微服务中,我如何验证微服务中的客户端访问令牌(用户微服务除外)?或者,我应该在每个微服务中保留密钥吗?

【问题讨论】:

【参考方案1】:

您可能需要考虑使用 RSA 使用私钥/公钥对对 JWT 进行签名,而不是将密钥分发给每个服务。这样,只有一个服务能够创建/修改令牌,而其他服务只能验证它们。公钥应存储在服务中或从后端的身份验证服务请求。

更多关于微服务中单点登录的想法可以在here找到。

【讨论】:

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

如何在微服务架构中进行身份验证和授权

JHipster - 网关如何在微服务中进行身份验证?

Quarkus:如何在微服务之间进行身份验证?

在微服务架构的每个服务中验证访问令牌 (JWT)

使用 JWT Auth 对 LDAP 服务进行身份验证

在微服务环境中,任何生产者都应该能够验证 JWT 令牌吗?