首页 > 解决方案 > 多系统集中管理服务器

问题描述

我们打算创建一个 REST API,它将在 100 多台服务器上实施,以供集中管理门户 (CMP) 使用。此 CMP 本身将拥有对 API 的完全访问权限(用于计划任务等),并且授权在 CMP 本身上完成。

作为一项附加的安全措施,所有 100 多台服务器的 API 都只能从 CMP 的 IP 地址访问。

在这种情况下,如果有的话,使用 OAuth2 而不是作为环境变量存储在 CMP 上的一组 API 密钥(每个服务器唯一)的安全优势是什么?阅读本文后,我们的用例似乎有些不同。

最终,我们认为我们可以仅将 CMP 开放给需要访问它的 IP 地址的子集,但是,这在以后可能无法实现。

标签: oauth-2.0oauthdistributed

解决方案


我会从客户的角度考虑 API:

  • Web 或移动客户端如何安全地调用 API?
  • 最终用户身份将如何流向 API?

如果您不需要处理这些问题中的任何一个,那么 OAuth 不会提供令人信服的好处,除了为您提供一些改进的授权机制:

用户诉基础设施安全

当涉及到用户级别的安全性时,我会使用 OAuth,而不是在您的场景中,这更像是基础设施安全性。

某些系统(例如 AWS 或 Kubernetes)为您提供内置的基础设施策略,其中 API 主机可以配置为仅允许来自具有 CMP 角色的主机的调用。

如果可能的话,我更喜欢这种类型的基础设施安全选项,而不是编写代码来管理 API 密钥。


推荐阅读