Azure API 管理 - 当 APM 落后于 WAF 时如何获取原始 IP
Azure API Management - How to get original IP when APM is behind WAF
我们有以下技术栈
- Imperva WAF
- API 管理
- WebApp 中的 WebApi
这是当前的实现
- 客户端 IP 在 WAF 级别进行身份验证
- WAF IP 被列入白名单 APIM
- APIM IP 在 WebApp 级别列入白名单
一切正常,符合预期。
现在,当我转到 APIM -> 分析 -> 请求时,我看到此处列出了 WAF IP 而不是客户端 IP。所以在这种情况下我们将无法追踪谁在使用什么
我知道我们可以选择通过订阅密钥进行跟踪,但这还不够。
有人可以建议如何配置以获得正确的 IP 吗?
Azure APIM 中的 built-in 报告无法做到这一点。如果您可以在 header 中让 WAF 将客户端 IP 转发到 APIM,那么您就可以构建自己的报告基础架构,但这会非常复杂。
相信您可以在here中找到您的答案。
您只需要配置您的服务器以从相关 header.
检索正确的 IP
引用相关部分:
Original Client IP is required In case your application requires a real client IP address, please make sure you have enabled retrieval of this value from either: "X-Forwarded-For" or "Incap-Client-IP" header. When working with Imperva your server will see Imperva IPs instead of real client IPs. However, Imperva inserts by default the original client IP address into two HTTP headers: "X-Forwarded-For" and Imperva header "Incap-Client-IP".
但是请注意,您应该在给定的 XFF 值中使用第一个 IP,否则,第二个 header real-client-IP 的使用可能会受到第三方代理等的影响
希望对您有所帮助。
向 Microsoft 提出支持请求后,我们如愿以偿
这就是我们的成就
- 当 Imperva WAF 调用 APIM 端点时,它还会在 header
中传递 Incap-Client-IP
- 在 APIM -> APIs -> 所有 APIs -> 设置 -> 输入 header 属性 您想要添加到 App Insights 的请求日志
- 在request log -> custom dimension -> 可以看到InCap-Client-IP 属性 已添加到App Insights
现在我们可以将其导出为 csv 格式,并可以根据客户端 IP 跟踪使用情况。
我们有以下技术栈
- Imperva WAF
- API 管理
- WebApp 中的 WebApi
这是当前的实现
- 客户端 IP 在 WAF 级别进行身份验证
- WAF IP 被列入白名单 APIM
- APIM IP 在 WebApp 级别列入白名单
一切正常,符合预期。
现在,当我转到 APIM -> 分析 -> 请求时,我看到此处列出了 WAF IP 而不是客户端 IP。所以在这种情况下我们将无法追踪谁在使用什么
我知道我们可以选择通过订阅密钥进行跟踪,但这还不够。
有人可以建议如何配置以获得正确的 IP 吗?
Azure APIM 中的 built-in 报告无法做到这一点。如果您可以在 header 中让 WAF 将客户端 IP 转发到 APIM,那么您就可以构建自己的报告基础架构,但这会非常复杂。
相信您可以在here中找到您的答案。 您只需要配置您的服务器以从相关 header.
检索正确的 IP引用相关部分:
Original Client IP is required In case your application requires a real client IP address, please make sure you have enabled retrieval of this value from either: "X-Forwarded-For" or "Incap-Client-IP" header. When working with Imperva your server will see Imperva IPs instead of real client IPs. However, Imperva inserts by default the original client IP address into two HTTP headers: "X-Forwarded-For" and Imperva header "Incap-Client-IP".
但是请注意,您应该在给定的 XFF 值中使用第一个 IP,否则,第二个 header real-client-IP 的使用可能会受到第三方代理等的影响
希望对您有所帮助。
向 Microsoft 提出支持请求后,我们如愿以偿
这就是我们的成就
- 当 Imperva WAF 调用 APIM 端点时,它还会在 header 中传递 Incap-Client-IP
- 在 APIM -> APIs -> 所有 APIs -> 设置 -> 输入 header 属性 您想要添加到 App Insights 的请求日志
- 在request log -> custom dimension -> 可以看到InCap-Client-IP 属性 已添加到App Insights
现在我们可以将其导出为 csv 格式,并可以根据客户端 IP 跟踪使用情况。