【发布时间】:2018-03-10 15:19:40
【问题描述】:
我们有一个可通过互联网公开访问的网络应用程序。此应用程序在包含应用程序可以调用的单片 API 集(包括用户身份验证)的 Web 服务器上运行。我们希望为用户公开一个“API”(例如//收集数据),以便从他们自己的代码中查询有关其帐户的一组有限数据。这将允许他们使用我们为他们收集的数据编写自定义仪表板。
有了这个新的 API,API 调用现在可以来自我们的网络应用之外的其他地方。所以我们要设置一个 API 网关来管理请求“负载”。例如,网关可以将用户的请求限制为每十分钟一次。
最终用户将获得一个 API 密钥以通过 Kong 发出请求,然后 Kong 将使用 HTTP GET/POST 向 Web 服务器执行 API 查询。由于我们的网络服务器是公开可用的,我们需要一种方法来验证对 API(收集数据)的请求是否仅来自 Kong。我对 JWT 进行了一些研究,似乎是一种可能的方法。简单地为 Kong 服务器提供由 Web 服务器发布的自己的 JWT 是否有意义?然后任何 GET/POST 到没有 Kong JWT 的网络服务器都会被拒绝。
我知道这可能不是 API 网关最合乎逻辑的设置,通常您会在与 Kong 相同的私有网络上拥有微服务相互通信,并且不一定需要验证传入请求的真实性Kong会处理这个问题。但是,鉴于我们当前的设置,JWT 方法是否最有意义?
【问题讨论】:
-
你最后做了什么?我们有类似的设置。
标签: api microservices kong api-gateway