当前位置: 首页 > 知识库问答 >
问题:

使用jwt在微服务中进行认证

阳长恨
2023-03-14

我将使用Laravel框架构建micrservices。我有用户微服务,它处理客户端凭证并验证它们(为客户端创建JWT)。此外,还有另一种需要用户认证的微服务。

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

共有1个答案

寇升
2023-03-14

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

可以在此处找到有关微服务中SSO的更多想法。

 类似资料:
  • 我最大的问题是身份验证(目前)。在阅读了大量文档之后,似乎最好的解决方案是使用OpenID Connect对用户进行身份验证,以检索可以随请求一起传递给微服务的JWT。 此外,为了避免拥有多个endpoint,您可以将和API网关部署为最终用户只有一个endpoint。好了,现在我有两个关于这个体系结构的问题。 身份验证的标准流程为: 非常感谢!

  • 并输出到控制台: 我试图设置断点并找出网关和身份验证器中的问题所在,但这没有帮助,因为我的应用程序类中的任何断点都没有执行。只有当我将日志设置为调试时,我才在日志中发现一个异常: 我不明白这个异常的真正含义,我发现很多人都得到了相同的异常,但它可能在不同的情况下被抛出。 https://raw.githubusercontent.com/pavelmorozov/springbootgateway

  • 是否可以从应用程序中创建JWT令牌,并使用GCP服务帐户在应用程序中验证它?我如何在Python中做到这一点? 这两个应用程序都部署在GCP中。应用程序可以部署在GCF、Cloud Run、AppEngine、GKE甚至GCE中。 我花了一些时间阅读Google Cloud文档,但我没有找到如何处理服务间身份验证的“通用”答案。(很可能是因为它们对每个GCP产品都不相同) 那么,考虑到我们抛开了谷

  • 我正在尝试设计一个JAAS微服务,它处理多个J2EE应用程序的用户身份验证。目前,我们有多个应用程序,它们根据LDAP进行身份验证,并具有独立的角色系统。现在我一直在设计应用程序和认证后端之间的接口。 通过自定义登录模块:设计一个自定义登录模块,使用我们登录服务中的非安全EJB接口进行身份验证和授权,但我记得读到登录模块不能注入EJB/使用EJB。 这是正确的起点,还是我有其他可能性从我们的应用程

  • 我必须使用微服务架构来构建一个应用程序。我将整个系统分成多个组件,每个组件代表一个spring boot项目。6左右有几个spring boot项目。我已经使用eureka服务器注册了所有的服务以实现负载平衡。已经为web门户开发了一个单独的Spring Boot项目,该应用程序包含身份验证、Spring security授权和JWT协议。现在我有7个项目,包括一个web门户,每个项目都有控制器包

  • 我很难为微服务架构选择一个体面的/安全的身份验证策略。我在这个主题上找到的唯一的SO帖子是这样的:微服务架构中的单点登录 在这里,我的想法是在每个服务(例如身份验证、消息传递、通知、配置文件等)中都有一个对每个用户的唯一引用(从逻辑上讲,然后是他的),并且如果登录,可以获得当前用户的。 从我的研究中,我看到有两种可能的策略: null