应用程序洞察和.Net Core - 0.0.0.0 IP

问题描述 投票:0回答:4

我所有

requests
登录的应用程序见解都有
0.0.0.0
IP。为什么?

详情:
- 在azure应用程序服务上运行应用程序
- 使用.Net Core 2
- 其他信息似乎还可以,例如来自全球各地的一些请求等等

azure-application-insights
4个回答
19
投票

这是出于 GDPR 的考虑而设计的。来自二月份的这篇博文

从 2018 年 2 月 5 日开始,Application Insights 将设置 客户端/服务器端 SDK 收集的 IP 地址清零后 查找城市、国家和其他地理位置属性。这 加强了隐私性,并且是对之前设置的处理的改变 最后一个八位字节为零。

进行此更改是为了解决客户对 IP 地址的担忧 以及 GDPR 的影响。

注:

• 如果您需要 IP 地址的前 3 个八位字节,您可以使用 用于添加自定义属性的遥测初始值设定项。

• 这不 影响 2018 年 2 月 5 日之前收集的数据。


4
投票

Application Insights 的 IP 屏蔽功能可以禁用。

在此之前先了解您的合规要求!

有两种方法可以做到这一点:

首先,进行 REST 调用以重新配置现有的 App Insights 实例

我建议利用 Azure CLI 来完成该任务,因为您不必处理访问令牌。相应地替换缺失值

  • <sub-id>
  • <rg-name>
  • <resource location>
az rest --method patch \
        --url https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/microsoft.insights/components/<resource-name>?api-version=2018-05-01-preview \
        --body { \"location\": \"<resource location>\", \"kind\": \"web\", \"properties\": { \"Application_Type\": \"web\", \"DisableIpMasking\": true } }

其次,使用自定义的 TelemetryInitializer

public class CloneIpAddress : ITelemetryInitializer
{
    public void Initialize(ITelemetry telemetry)
    {
        if (telemetry is ISupportProperties propTelemetry && !propTelemetry.Properties.ContainsKey("client-ip"))
        {
            var clientIPValue = telemetry.Context.Location.Ip;
            propTelemetry.Properties.Add("client-ip", clientIPValue);
        }
    }
}

不要忘记向 DI 容器注册类型

services.AddSingleton<ITelemetryInitializer, CloneIpAddress>();

IP 地址将显示为自定义维度


2
投票

https://learn.microsoft.com/en-us/azure/azure-monitor/app/data-model-context#client-ip-address

客户端IP地址 客户端设备的 IP 地址。支持 IPv4 和 IPv6。当从服务发送遥测数据时,位置上下文是关于在服务中发起操作的用户的。 Application Insights 从客户端 IP 中提取地理位置信息,然后将其截断。因此客户端 IP 本身不能用作最终用户的身份信息。


0
投票

Matthias 的回答很棒,对我帮助很大。如果通过 PowerShell 在 Azure CLI 中执行此操作,请记住格式要求略有不同,并且需要内容类型标头。见下图:

az rest --method patch --url "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/microsoft.insights/components/{application-insights-resource-name}?api-version=2018-05-01-preview" --body '{ \"location\": \"{region-identifier}\", \"kind\": \"web\", \"properties\": { \"Application_Type\": \"web\", \"DisableIpMasking\": true } }' --headers "content-type=application/json"

参考:https://learn.microsoft.com/en-us/cli/azure/reference-index?view=azure-cli-latest#az-rest()

© www.soinside.com 2019 - 2024. All rights reserved.