领导者指南:API网关如何提高安全性

作者:szSun · 2024-10-09 · 阅读时间:6分钟

当应用程序使用微服务架构时,客户端和微服务可以直接通信。但是,此操作适用于微服务数量较少的受限功能域。可用的微服务数量越多,知道应该调用哪个微服务就越复杂。更何况,客户端通常必须调用多个微服务来收集应用程序运行所需的所有数据。

为了优化应用程序,您需要提出几个问题,限制发送到后端的请求数量,并管理安全等问题。您可以使用 API 网关来执行此操作。

在这篇文章中,我们将解释如何使用API 网关来提高安全性。

什么是 API 网关?

API 网关充当客户端(Web 应用程序、移动应用程序等)的单一入口点,通过监控和保护流量并确保服务的可用性来保护后端 API

它可以做几件事,其中包括:

  • 聚合或分解不同的 API
  • 实现协议或数据的转换、非互联网兼容协议的使用以及不同 API 的缓存和编排
  • 集中安全性,从而避免在应用服务器 API 级别执行此操作
  • 参与应用程序的可用性和可扩展性
  • 帮助消费者简化 API 的使用

为什么使用 API 网关而不是直接客户端到 API 通信?

可用的 API 数量越多,知道应该调用哪个 API 就越复杂。尤其是因为客户端经常调用多个 API 来收集应用程序运行所需的数据。

如果没有 API 网关,客户端应用程序会直接向 API 发送请求,其后果如下:

  • 应用程序必须准确地知道所有的服务才能调用它们。
  • 强制客户端应用程序和后端之间进行多次往返可能会增加网络延迟。
  • 由于所有服务都是公开的,因此确保数据安全也更加复杂,从而增加了攻击面。

此外,由于 API 网关从服务的实际实现中抽象出来,它可能只向消费者提供必要的信息,并以更简单的方式管理 API 版本

API 网关如何提高安全性?领导者指南图像

API 网关与 API 管理器有何不同?

API API 安全性和定位过滤器。

实际上,API 管理器在其结构中整合了 API 网关,就像一个管理系统一样。该工具包含促进其他 API 开发和应用的功能。这些功能有助于强化使用规则、改进访问控制、详细收集和分析使用统计数据,以及管理整个 API 生命周期

API 网关如何帮助提高安全性

成功的网络攻击可以暴露公司、应用程序和用户数据。考虑到这一点,API 网关可以提高系统的安全性,保护系统免受恶意代理的攻击。

可以使用缓冲区添加一个保护层来抵御由数字攻击触发的载体。这样可以将应用程序的重点转移到业务上,而缓存和安全性则由 API 网关负责。

API 网关为流量交换、控制第三方系统之间的调用和数据流量提供单一接入点。此外,它们通过将所有内容集中在一个界面中,提供对共享信息的更大控制。

例如,使用 API 网关,可以限制会计合作伙伴的权限,使他们只能查看财务信息,而无法查看患者数据。这样一来,组织就可以确保数据是安全的,用户也可以。同时,技术团队也不需要付出太多努力。相反,他们可以依靠一个地方来管理众多系统之间的集成。这意味着数据安全性更高,工作量更少。

API 网关不仅协调和控制不受攻击的服务。它还保证如果出现漏洞,整个系统不会受到影响。因此,除了在受到攻击时减少损害外,这种策略还可以帮助用户,因为其他功能在受到攻击时仍保持正常。

使用 API 网关可以简化您的架构,使其更安全,并减少网络负载,因为它忽略了微服务的实际实现。例如,通过忽略微服务的实际实现,甚至通过调用单片类型架构中的旧应用程序,它可以标准化返回消息,同时允许调用不同类型的服务:API、SOAP和REST等。

成功的网络攻击可以暴露公司、应用程序和用户数据。考虑到这一点,API 网关可以提高系统的安全性,保护其免受恶意代理的攻击

API 网关安全最佳实践

API 网关必须是独立的,位于客户端和后端之间。作为微服务抽象层,它通过将请求重新分发到各个相应的微服务来充当反向代理。因此,它成为应用程序的入口点。在此层中,可以实现其他功能,例如身份验证、缓存或安全性(例如 SSL)。

API 网关还必须进行复制和负载平衡,以避免成为“单点故障”应用程序。因此,它不能成为整体式的,也不能将所有调用集中到微服务中。您可以使用功能域或平台(桌面、Web、移动)分离 API 网关。它将平衡负载并向客户端提供正确的数据。

您可以将身份验证或缓存实现委托给网关,从而避免每个微服务都进行特定的实现。它通过减少负载来缩短实现时间,通过外包某些部分使编写和读取微服务代码变得更容易,并促进了可扩展性。这是因为这些实现是“集中式”的,因此更容易扩展,而避免这些实现的微服务更容易维护和扩展。

如果正确实施,API 网关将带来许多好处。但仍存在风险,例如成为集中故障点。API 网关可能会成为瓶颈。但是,可以使用 AWS API 网关、Azure API Management for Azure 或 Ocelot for .Net Core 等解决方案来解决此类问题。

文章来源:How Does an API Gateway Improve Security? A Leader’s Guide