从 Azure 逻辑应用获取客户端 IP 地址

时间:2021-03-14 05:35:41

标签: azure azure-functions azure-logic-apps

我有一个由 HTTP 请求触发的逻辑应用,我想在工作流中使用调用者的 IP 地址进行日志记录和管理。

我收到的 HTTP 标头(由门户显示)仅包含以下内容:

 "Host": "prod-101.westeurope.logic.azure.com",
    "User-Agent": "Mozilla/5.0,(Windows NT 6.3; Microsoft Windows 6.3.9600; hu-HU),PowerShell/7.1.3",
    "Content-Length": "350",
    "Content-Type": "application/json"

是否有任何进一步的设置可以将“X-Forwarded-Host”添加到标头,或以任何其他方式从逻辑应用获取调用方的外部 IP。

谢谢!

1 个答案:

答案 0 :(得分:1)

逻辑应用本身不支持此功能,您可以在此处为 user voice 请求投票。

但是,您可以将 HTTP 请求传递给 LogicApp 中的 Azure 函数并使用以下逻辑

#r "System.Web"

using System.Net;
using System.Web;

public static HttpResponseMessage Run(HttpRequestMessage req, TraceWriter log)
{
    string clientIP = ((HttpContextWrapper)req.Properties["MS_HttpContext"]).Request.UserHostAddress;
    return req.CreateResponse(HttpStatusCode.OK, $"The client IP is {clientIP}");
}