【发布时间】:2017-11-12 06:06:08
【问题描述】:
我正在尝试弄清楚如何在微服务环境中管理授权。
这是我的假设场景。
我有一项服务,它通过 oauth2 提供身份验证(使用 devise gem)和授权(使用 doorkeeper gem)。登录后,服务会向用户返回一个JWT 令牌。
现在假设我有两个 API 服务器。用户必须向这些 API 服务器提供 JWT 令牌才能访问私有资源。
是否可以与我的两个 API 服务器共享用于签署 JWT 令牌的 JWT 密钥,以便他们可以解码令牌并验证其有效性?或者我的 API 服务器应该将 JWT 令牌转发给授权服务并要求它进行验证?
与 API 服务器共享 JWT 密钥的优点:
- 授权服务没有往返
与 API 服务器共享 JWT 密钥的缺点:
- 如果有人闯入我的任何 API 服务器,他/她可以访问我的 JWT 密钥
我被困住了。我什至不知道是否有我没有考虑过的第三种解决方案:)
谢谢!
【问题讨论】:
标签: authentication authorization token jwt microservices