日本語版
最新ニュース
企業

Application Insights の地理検索に使用する IP HTTP ヘッダーを変更する

DXP 上、または Cloudflare の背後にある他の ASP.NET アプリ内で、より正確な地理検索をログに記録する場合は、これが推奨されます。 何も変更しない場合は、Application Insights が都市、地域、国を検索するためにエッジ ノードの IP が使用されます。もちろん、ユーザーの IP を使用する方が正確です。 CMS11または.NET Framework 4.8.1以前で実行されている他のアプリの場合は、ApplicationInsights.configでこれを構成し、適切なCloudflareカスタムHTTPヘッダーを設定できます。 CF-Connecting-IP ユーザーにより近い IP が含まれます。 ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings"> TelemetryInitializers> .. Add Type="Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer, Microsoft.AI.Web"> HeaderNames> Add>CF-Connecting-IPAdd> HeaderNames> HeaderValueSeparators>;HeaderValueSeparators> UseFirstIp>falseUseFirstIp> Add> .. しばらくの間、カスタムヘッダーを使用していました True-Client-IP しかし、これは主にAkamaiの製品からの移行を容易にするために有効にできることがわかった。価値は同じである…

1718035700
2024-06-10 07:00:00

DXP 上、または Cloudflare の背後にある他の ASP.NET アプリ内で、より正確な地理検索をログに記録する場合は、これが推奨されます。

何も変更しない場合は、Application Insights が都市、地域、国を検索するためにエッジ ノードの IP が使用されます。もちろん、ユーザーの IP を使用する方が正確です。

CMS11または.NET Framework 4.8.1以前で実行されている他のアプリの場合は、ApplicationInsights.configでこれを構成し、適切なCloudflareカスタムHTTPヘッダーを設定できます。 CF-Connecting-IP ユーザーにより近い IP が含まれます。

ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
  TelemetryInitializers>
    ..
    Add Type="Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer, Microsoft.AI.Web">
      HeaderNames>
        Add>CF-Connecting-IPAdd>
      HeaderNames>
      HeaderValueSeparators>;HeaderValueSeparators>
      UseFirstIp>falseUseFirstIp>
    Add>
    ..

しばらくの間、カスタムヘッダーを使用していました True-Client-IP しかし、これは主にAkamaiの製品からの移行を容易にするために有効にできることがわかった。価値は同じである CF-Connecting-IP

現代のドットネットでは、 CMS12 での Azure Application Insights の微調整に関する Arjan Paauw のブログ投稿 素晴らしい出発点です。

ただし、ジオルックアップ IP ヘッダーの変更については、ほとんどのドキュメントに記載されていないようです。上記の古い構成変更と同じ設定を実現するには、デコンパイルされたコードにジャンプして、Cloudflare のヘッダー名を挿入する場所を確認する必要がありました。

上記の他の 2 つの設定が現在のデフォルトであることも確認しました。

このプロジェクトではStartup.csがまだ使用されており、ヘッダーを変更するコード例は Configure() 方法。

var telemetryInitializers =
    app.ApplicationServices.GetServicesITelemetryInitializer>();

foreach (var telemetryInitializer in telemetryInitializers)
{
    if (telemetryInitializer is not ClientIpHeaderTelemetryInitializer ipInitializer)
    {
        continue;
    }

    ipInitializer.HeaderNames.Clear();
    ipInitializer.HeaderNames.Add("CF-Connecting-IP");

    
    ipInitializer.HeaderNames.Add("X-Forwarded-For");
}

プロジェクトでProgram.csのみを使用する場合は、サービスが構成され、アプリが Build() と呼ばれる。

#span #classinlineblockApplication #Insights #の地理検索に使用する #HTTP #ヘッダーを変更するspan

執筆者について: nipponese

Nipponese News編集部は、国内外のニュースを日本語で分かりやすくお届けします。