API 请求的访问控制在 WSO2 APIM 4.1.0 中不起作用

Access Control for API requests is not working in WSO2 APIM 4.1.0

我正在尝试 rate limiting - allowed ip operation WSO2 APIM 4.1.0.

遵循的步骤:

问题:

同样请澄清..

如果我们对现有版本进行任何更改,则需要从发布者门户发布 API 的新版本。因此,如果您在发布 API 后采用新的 API 级别政策,请从发布者门户部署 API 的新修订版,并部署适当的 select 网关环境更新后的 API.

回答您的问题(问题)

  1. Set Request Count as 5, it is allowing to hit API Continuously even though rate limit exceed(more than 5 hit)

部署 API 和 try-out 方案的新修订版。正如我所解释的 上面,我们必须部署 API 的新修订版以获取部署在 selected Environments

中的更新配置
  1. if i provide any invalid ip under conditional policy, still API is accessible. I think whatever ip i have provided those are only having access and rate limit applied to that IP.

首先,部署 API 的新修订版以部署更新的配置。

根据共享的屏幕截图,高级策略配置为在两种情况下都在 5 requests/min 之后进行限制;不满足条件组时,满足条件时。出于演示目的,您可以计算任意一个的阈值并尝试该场景。

根据您的限制策略,如果客户端从 192.168.0.0 IP 调用相应的 API,它将在 5 个请求后进行限制,如果有来自其他 IP 的调用,它们'也会在 5 个请求后被限制。

此外,请注意测试场景,您可以在从本地计算机调用 API 时在 X-Forwarded-For header 下发送所需的 IP 地址,因为阻止和白名单根据通过提到的 header 收到的值发生。如果 header 不存在,则从请求中提取客户端 IP。

正如上面@Athiththan 和@Wasura Wattearachchi 所建议的那样,我在将策略应用到 API 后部署了新修订版,这解决了我的用例。

政策:

如上图所示,在调用 api 时,通过在 header 部分传递 X-Forwarded-For 允许来自特定 ip 的 2 个请求。从第 3 个请求开始,它阻止了 api 调用并低于响应。

{
    "code": "900802",
    "message": "Message throttled out",
    "description": "You have exceeded your quota .You can access API after 2022-May-22 10:45:00+0000 UTC",
    "nextAccessTime": "2022-May-22 10:45:00+0000 UTC"
}

注意:如果我在 header 部分传递无效 ip,至少会发生一次 api 命中,这是 APIM 网关

中的预期行为