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.
遵循的步骤:
- 通过导航至管理门户中
Rate Limiting Policies
选项下的 Advanced Policies
添加了新策略。
- 通过选择特定 IP 选项添加的条件组(在下图中,出于安全原因,我只是代表原始 ip 给出了虚拟值)
- 在发布者门户API中参与政策
问题:
将请求计数设置为 5,即使超过速率限制(超过 5 次命中)也允许连续命中 API。
如果我根据有条件的政策提供任何无效的 ip,仍然可以访问 API。我认为我提供的任何 ip 都只对该 IP 应用访问和速率限制。
同样请澄清..
如果我们对现有版本进行任何更改,则需要从发布者门户发布 API 的新版本。因此,如果您在发布 API 后采用新的 API 级别政策,请从发布者门户部署 API 的新修订版,并部署适当的 select 网关环境更新后的 API.
回答您的问题(问题)
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
中的更新配置
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 网关
中的预期行为
我正在尝试 rate limiting - allowed ip operation WSO2 APIM 4.1.0.
遵循的步骤:
- 通过导航至管理门户中
Rate Limiting Policies
选项下的Advanced Policies
添加了新策略。
- 通过选择特定 IP 选项添加的条件组(在下图中,出于安全原因,我只是代表原始 ip 给出了虚拟值)
- 在发布者门户API中参与政策
问题:
将请求计数设置为 5,即使超过速率限制(超过 5 次命中)也允许连续命中 API。
如果我根据有条件的政策提供任何无效的 ip,仍然可以访问 API。我认为我提供的任何 ip 都只对该 IP 应用访问和速率限制。
同样请澄清..
如果我们对现有版本进行任何更改,则需要从发布者门户发布 API 的新版本。因此,如果您在发布 API 后采用新的 API 级别政策,请从发布者门户部署 API 的新修订版,并部署适当的 select 网关环境更新后的 API.
回答您的问题(问题)
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
中的更新配置
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 网关
中的预期行为