Azure API 管理 - 当 APM 落后于 WAF 时如何获取原始 IP

Man*_*sar 5 ip-address azure azure-api-management x-forwarded-for web-application-firewall

我们有以下技术堆栈

  • Imperva WAF
  • API 管理
  • WebApp 中的 WebApi

这是当前的实现

  • 客户端 IP 在 WAF 级别进行身份验证
  • WAF IP 在 APIM 被列入白名单
  • APIM IP 在 WebApp 级别被列入白名单

一切正常,并符合预期。

现在,当我转到 APIM -> Analytics -> 请求时,我看到这里列出了 WAF IP,而不是客户端 IP。所以在这种情况下,我们将无法跟踪谁在使用什么

我知道我们可以选择通过订阅密钥进行跟踪,但这还不够。

有人可以建议如何配置以获得正确的IP吗?

在此处输入图片说明

Man*_*sar 4

向微软提出支持请求后,我们得到了我们想要的

这就是我们完成的方式

  • 当 Imperva WAF 调用 APIM 端点时,它还会在标头中传递 Incap-Client-IP
  • 在 APIM -> API -> 所有 API -> 设置 -> 输入要在 App Insights 的请求日志中添加的标头属性 在此输入图像描述
  • 在请求日志 -> 自定义维度 -> 下,您可以看到 App Insights 中添加了 InCap-Client-IP 属性

在此输入图像描述

现在我们可以将其导出为 csv 格式,并可以根据客户端 IP 跟踪使用情况。