使用 API-网关时如何处理原始 API

What to do with original API when using a API-Gateway

我想知道在使用 API 网关时如何处理 API 端点。例如,当您按照此处的教程进行操作时:https://wiredcraft.com/blog/securing-components-in-a-microservice-context

您正在使用 keycloak 和 kong(api-网关)来保护 api。使用 kong,您将在 http://localhost:8000/data. But the "original" express Server is still listening on http://localhost:3001/data 下获得一个新的端点。

这意味着当user/attacker知道"orignal"服务的url并且不使用kong url(端口8000)he/she 仍然可以使用 api.

所以我的问题是关于策略以及如何处理原始 api?这怎么可能是安全的。我们是否也应该在 api 上实现 keycloak 请求?但是kong的好处在哪里呢?

您的 API 网关为您提供了一个 simplifies how client applications access your services 的入口点。您可以在网关上而不是在后面的服务上添加 keycloak 安全性——也许如果您有一个设置,您可以在其中阻止客户端对除网关之外的任何服务的网络访问。但即便如此,您可能仍然希望网关和密钥斗篷在后面的服务上。

您可能将 keycloak 放在后面的服务上的原因是因为它们可能需要知道发出请求的用户的身份。如果他们无论如何都要读取令牌,那么向他们添加 keycloak 可能是最直接的。而且您仍然希望网关能够简化客户的生活。然后您还希望网关将令牌转发到网关后面的服务。 (我们在 Activiti Cloud 项目上使用 keycloak 和 spring 云网关,这基本上就是我们决定使用 keycloak 保护服务本身并让网关将令牌转发给它们的方式。)