Azure API管理-如何在APM位于WAF之后时获取原始IP

rqdpfwrv  于 2023-02-25  发布在  其他
关注(0)|答案(3)|浏览(175)

我们的技术堆栈不足

  • 因 perl 瓦WAF
  • API管理
  • WebApp中的WebApi

这是当前实施

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

一切都运行良好,如预期。
现在,当我转到"APIM"-〉"Analytics"-〉"Request"时,我看到此处列出了WAF IP,而不是客户端IP。因此,在这种情况下,我们将无法跟踪谁在使用什么
我知道我们可以选择通过订阅密钥跟踪,但这是不够的。
有人能建议如何配置以获得正确的IP吗?

lnxxn5zx

lnxxn5zx1#

我相信你可以在here中找到答案,你只需要配置你的服务器从相关的头中检索正确的IP。
引用相关部分:
需要原始客户端IP如果您的应用程序需要真实的的客户端IP地址,请确保您已启用从以下任一位置检索此值:“X-Forwarded-For”或“Incap-Client-IP”报头。使用Imperva时,服务器将看到Imperva IP而不是真实的客户端IP。但是,Imperva默认将原始客户端IP地址插入两个HTTP报头:“X-转发-For”和Imperva报头“Incap-客户端-IP”。
但是请注意,您应该使用给定XFF值中的第一个IP,否则,第二个报头real-client-IP的使用可能会受到第三方代理等的影响。
希望能有所帮助。

6yoyoihd

6yoyoihd2#

在向微软提出支持请求后,我们得到了我们想要的
这就是我们如何

  • 当Imperva WAF调用APIM端点时,它还在报头中传递Incap-Client-IP
  • 在APIM -〉API-〉所有API-〉设置-〉输入要添加到App Insights x1c 0d1x请求日志中的标题属性
  • 在请求日志-〉自定义维度-〉下,您可以看到InCap-Client-IP属性已添加到App Insights中

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

vhmi4jdf

vhmi4jdf3#

这对于Azure APIM中的内置报告是不可能的。如果你可以让WAF在头中将客户端IP转发到APIM,那么你可以构建自己的报告基础设施,但这将是相当复杂的。

相关问题