-3

在微服务部署中处理微服务级别或 API 网关级别的安全性更好吗?是否存在一种比另一种更合适的情况?

4

2 回答 2

2

这篇文章:

使用 API 网关的一个主要好处是它封装了应用程序的内部结构。客户端无需调用特定服务,只需与网关对话即可。

这仅仅意味着客户端通过 API 网关与微服务通信,并且该网关处理来自任何底层服务的所有请求。

因此,我认为如果您需要对请求进行任何授权,最好在 API 网关本身进行授权,因为这样,未经授权的请求永远不会到达您的服务。

但这也不是一个完整的解决方案。让我们考虑一个实际验证用户的服务。此服务将始终由尚未授权的用户访问,因此,在服务级别而不是 API 网关上实现此服务的安全性是有意义的。

另外,考虑一个创建订单的服务。如果任何内部服务都可以调用此服务并创建订单,而不需要任何令牌(或任何其他身份验证过程)会怎样。现在可以使用多种方法解决此问题,例如:

  • 限制对内部服务的网络访问,例如API网关以外的其他服务不能访问该服务。
  • 将安全令牌(如 JWT)添加/代理到所有服务,并针对每个服务中的该令牌验证请求。

当然,这是一个高层次的概述,是我的想法,我愿意看看其他人要说什么。

于 2017-06-12T16:04:09.497 回答
1

我想说这是你使用某种反向代理作为安全网关的常见方式,它生成某种安全令牌,如 SAML。

否则,例如,如果您有一些链式调用,例如微服务用户调用微服务事务日志,则每个微服务都会一次又一次地为自己进行身份验证。这可能会变得非常昂贵。

于 2017-06-12T15:45:28.873 回答