使用KONG进行API身份验证和JWT令牌验证

时间:2018-06-16 12:24:49

标签: api jwt microservices kong api-gateway

我打算在我们的项目中使用Kong。我目前正在研究POC,看看我们如何将它作为主API网关集成到我们的平台中。我还想使用 JWT 插件进行身份验证和授权。我知道所有API调用都应通过Kong网关进行身份验证。然后,如果验证身份验证,则可以转到API。

客户--->香港门户---->蜜蜂

我脑海中不太清楚的部分是API和Kong如何结合在一起。

  1. 想象一下客户端尝试使用令牌直接调用API(绕过网关)的情况。 API如何使用Kong来验证此令牌?

  2. Kong如何验证API(而不是客户端)?在我到目前为止看到的示例中,仅记录了客户端的身份验证,而不是对受到保护的API的身份验证。由孔。

1 个答案:

答案 0 :(得分:1)

当使用kong作为API网关(或任何网关)时,我们倾向于将其置于外部客户端与您的服务通信的位置。它是发现个人服务的一种手段。并且kong可以做足够好的工作来验证这样的请求。

对于您在微服务集中对其他服务进行的调用,您可以通过直接调用服务来允许自由通过。在这种情况下,挑战将是服务如何相互发现。 (一种方法是依赖DNS条目。我们曾经这样做但后来转移到kubernetes并开始使用他们的服务发现),并限制来自外部世界的所有传入流量到给定服务。所以他们只能通过网关进入(这就是我们拥有所有安全性的地方)

上述理念背后的原因是我们信任我们创建的服务(这可能适用于您,也可能不适用于您,如果不是,那么您需要通过api网关路由所有流量并将您的API视为正确另一个客户端,他们需要获取访问令牌以进一步继续,或者可能有内部流量的另一个服务发现)

或者您可以在kong中编写一个自定义插件,用于过滤掉源自子网内的所有流量并验证其他所有流量。