使用公共微服务验证Api网关(Kong)

使用公共微服务验证Api网关(Kong),api,microservices,kong,api-gateway,Api,Microservices,Kong,Api Gateway,我们有一个可以通过互联网公开访问的web应用程序。此应用程序在web服务器上运行,该服务器包含应用程序可以调用的单一API集,包括用户身份验证。我们希望公开一个API ex//gather data,以便用户从自己的代码中查询有关其帐户的有限数据集。这将允许他们使用我们为他们收集的数据编写自定义仪表板 有了这个新的API,API调用现在可以来自web ap之外的其他地方。因此,我们希望设置一个API网关来管理请求负载。例如,网关可以将用户的请求限制为每十分钟一次 最终用户将获得一个API密钥以通

我们有一个可以通过互联网公开访问的web应用程序。此应用程序在web服务器上运行,该服务器包含应用程序可以调用的单一API集,包括用户身份验证。我们希望公开一个API ex//gather data,以便用户从自己的代码中查询有关其帐户的有限数据集。这将允许他们使用我们为他们收集的数据编写自定义仪表板

有了这个新的API,API调用现在可以来自web ap之外的其他地方。因此,我们希望设置一个API网关来管理请求负载。例如,网关可以将用户的请求限制为每十分钟一次

最终用户将获得一个API密钥以通过Kong发出请求,然后Kong将使用HTTP GET/POST向web服务器执行API查询。由于我们的web服务器是公开的,我们需要一种方法来验证API收集数据的请求是否仅来自香港。我对JWTs做了一些研究,似乎是一种可能的方法。简单地将web服务器发布的JWT交给Kong服务器有意义吗?然后,拒绝向没有Kong JWT的web服务器发送任何GET/POST


我知道,对于API网关来说,这可能不是最合理的设置,通常情况下,您将在与Kong相同的专用网络上拥有微服务,以便彼此通信,并且不必验证传入请求的真实性,因为Kong将处理这些请求。但是,考虑到我们当前的设置,JWT方法最有意义吗?

因此,您希望您的Kong实例与上游服务器进行通信,其中包含一些只有您知道的秘密,以便您可以确定到上游服务器的流量来自您的Kong实例

当然可以!有几种方法可以做到这一点。您可以使用添加包含某些机密字符串的头,然后在响应客户端之前可能使用删除该头

实际上,这取决于上游服务器在请求验证方面支持什么


你还提到给你的最终用户API密钥——我希望你能用它来实现

你最后做了什么?我们有类似的设置。