首页 文章

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

提问于
浏览
0

我正试图弄清楚如何在微服务环境中管理授权 .

这是我的假设情景 .

我有一个服务,提供身份验证(使用devise gem)和oauth2授权(使用doorkeeper gem) . 登录后,该服务会向用户返回JWT令牌 .

现在让我们假设我有两个API服务器 . 用户必须向这些API服务器提供JWT令牌才能访问私有资源 .

是否可以共享JWT密钥,我曾用我的两个API服务器签署JWT令牌,以便他们可以解码令牌并验证其有效性?或者我的API服务器是否应该将JWT令牌转发给授权服务并要求它进行验证?

与API服务器共享JWT密钥的优点:

  • 没有往返授权服务

与API服务器共享JWT密钥的缺点:

  • 如果有人在我的任何API服务器中断,他/她可以访问我的JWT密钥

我被卡住了 . 我甚至不知道是否有第三种解决方案我没有考虑:)

谢谢!

1 回答

  • 2

    您可以使用PKI签名/验证系统 . 在此方法中,您的授权服务将使用私钥对JWT进行签名,并且所有使用服务都需要使用公钥来使用JWT . 公钥可以轻松分发 - 如果您的架构中有公钥,可以通过配置服务器 . 即使有人闯入您的某项服务,他也只会拥有公钥而不是私钥 .

相关问题