微服务 - 进程间通信认证/授权

3
我们正在寻找IPC身份验证和授权的最佳实践。我来解释一下。
我们的微服务架构SaaS有一个专门的认证服务,负责进行身份验证和管理身份令牌(JWT)。
对于登录并开始从不同服务消耗资源的用户,一切都运作得非常完美。
现在的问题是如何验证和授权由其他服务发起的请求(没有特定用户的上下文)?
1. 我们应该为每个服务生成一个专用用户,并像系统中的任何其他用户一样进行处理(具有适当的权限)吗? 2. 我们应该在服务之间部署“硬编码”/动态令牌吗? 3. 还有其他想法吗?
我们最担心的是这些令牌/密码在某个时候会被泄露,因为一个服务向另一个服务的请求被视为高级别权限。
干杯,
2个回答

0

通常,API 网关是任何 MS 系统的重要组成部分。所有服务都被封装起来,不应该在没有 API 网关的情况下被访问。

这种封装允许服务之间直接通信,而不提供请求者有效载荷,如果请求直接来自 API 网关,则应该需要有效载荷。

在这种情况下,请求被视为不同的东西,并遵循不同的逻辑/中间件管道。不需要额外的特殊用户。


0

我不是微服务专家,刚开始涉足微服务领域。从我现在所读的内容来看,这可以用许多方法来处理,其中一个方法就像你提到的硬编码API密钥,使得服务能够相互识别。但是我个人从未喜欢过这个想法 - 也可以使用你提到的每个服务使用一个用户的方式。我真正喜欢的解决方案是使用Oauth2来处理这些情况 - 我发现的一个有趣的实现是Gluu Server,而且我认为客户端授权授予类型是你要寻找的 - 参考https://gluu.org/docs/integrate/oauth2grants/.

玩得开心 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接