【发布时间】:2018-01-18 21:11:44
【问题描述】:
我目前正在构建一个基于微服务架构的 API。
我正在使用 JWT 对用户进行身份验证。我了解当用户发送登录请求时,会返回包含用户身份及其角色/权限等的 JWT。然后将此令牌与用户后续请求一起发送,以告诉服务器谁正在发送请求。我认为这是正确的理解。
在正常的单体架构中,这可以很好地工作,正如所解释的那样。如何将其转移到微服务架构以在微服务之间建立信任。
我可以简单地将用户 JWT 转发到下游微服务,但这不允许下游微服务知道谁/哪个上游微服务正在发送请求。
一个例子是我有一个位置微服务。我想允许餐厅微服务调用位置微服务。但我也有一个产品微服务,我不想调用位置微服务。
显然我不能编写产品微服务来调用位置微服务,但这并不能阻止其他人这样做。
有什么建议吗?
【问题讨论】:
-
产品服务不允许与定位服务通信还有其他情况吗?
-
您找到了答案还是仍在寻找答案?
-
@xargs-mkdir 我使用 kubernetes 作为我的容器编排系统。 Kubernetes 允许分离命名空间和部署。因此,对于上面的示例,我不允许 products 命名空间与 location 命名空间对话。此外,对于个人用户验证,我将用户 JWT 转发到任何需要特定帐户权限的微服务。
-
这可能是您的解决方案dev.to/s2agrahari/…
标签: authentication jwt microservices