防止 API 调用来自不需要的内部 services/journeys

Preventing API calls from uwanted internal services/journeys

在 Web 应用程序上,您如何防止 APIs/microservices 在多层应用程序上受到保护,以确保没有来自不想要的旅程的不需要的呼叫? (内部)

假设使用共享登录服务(由 IAM 数据库支持)的网络登录 API/webservice 将生成 JWT 令牌。在正常旅程中,最终用户会开始购买(例如购买积分),这会触发更通用的购买服务(例如积分)。由于业务性质,Login 和 weblogin 是紧耦合的,就像 bui-credits 和 credits 一样,但是 WEB-LOGIN 服务不应该调用 CREDITS 服务。

我们考虑的一个选项是第二层(登录和积分)上的所有服务都应该与授权调用者实现 client-id/secret。 在示例中,这将阻止从 Web 登录(红色箭头)调用 CREDITS,这不是有效的场景,因为 Web 登录无法劫持 'buy-credits' 凭据

Cross API Security

欢迎提出任何想法,因为我无法在同一个 border/application 中找到 API 安全模式。我知道 B2B 模式,但不确定它如何(或是否)适用

在层之间使用某种授权似乎是明智的。

如果您使用 API 管理器,您可以使用标准策略之一,例如 client id enforcement 或 JWT 验证策略,无需修改即可在现有 API 之上应用他们。