Share via


Microsoft Entra-autentisering för Application Insights.

Application Insights stöder nu Microsoft Entra-autentisering. Genom att använda Microsoft Entra-ID kan du se till att endast autentiserad telemetri matas in i dina Application Insights-resurser.

Att använda olika autentiseringssystem kan vara besvärligt och riskabelt eftersom det är svårt att hantera autentiseringsuppgifter i stor skala. Nu kan du välja att avregistrera dig från lokal autentisering för att säkerställa att endast telemetri uteslutande autentiseras med hjälp av hanterade identiteter och att Microsoft Entra-ID matas in i resursen. Den här funktionen är ett steg för att förbättra säkerheten och tillförlitligheten för den telemetri som används för att göra kritiska operativa (aviseringar och autoskalning) och affärsbeslut.

Kommentar

Det här dokumentet beskriver datainmatning i Application Insights med microsoft entra-ID-baserad autentisering. Information om hur du frågar efter data i Application Insights finns i Fråga Application Insights med Microsoft Entra-autentisering.

Förutsättningar

Följande preliminära steg krävs för att aktivera Microsoft Entra-autentiserad inmatning. Du måste:

Scenarier som inte stöds

Följande SDK:er (Software Development Kit) och funktioner stöds inte för användning med Microsoft Entra-autentiserad inmatning:

Konfigurera och aktivera Microsoft Entra ID-baserad autentisering

  1. Om du inte redan har en identitet skapar du en med hjälp av antingen en hanterad identitet eller ett huvudnamn för tjänsten.

  2. Tilldela en roll till Azure-tjänsten.

    Följ stegen i Tilldela Azure-roller för att lägga till rollen Monitoring Metrics Publisher från application insights-målresursen till den Azure-resurs som telemetrin skickas från.

    Kommentar

    Även om rollen Monitoring Metrics Publisher säger "mått" publiceras all telemetri till Application Insights-resursen.

  3. Följ konfigurationsvägledningen i enlighet med det språk som följer.

Kommentar

Stöd för Microsoft Entra-ID i Application Insights .NET SDK ingår från och med version 2.18-Beta3.

Application Insights .NET SDK stöder de autentiseringsklasser som tillhandahålls av Azure Identity.

  • Vi rekommenderar DefaultAzureCredential för lokal utveckling.
  • Vi rekommenderar ManagedIdentityCredential systemtilldelade och användartilldelade hanterade identiteter.
    • För systemtilldelade använder du standardkonstruktorn utan parametrar.
    • För användartilldelad anger du klient-ID:t till konstruktorn.

I följande exempel visas hur du skapar och konfigurerar TelemetryConfiguration manuellt med hjälp av .NET:

TelemetryConfiguration.Active.ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/";
var credential = new DefaultAzureCredential();
TelemetryConfiguration.Active.SetAzureTokenCredential(credential);

I följande exempel visas hur du konfigurerar TelemetryConfiguration med hjälp av .NET Core:

services.Configure<TelemetryConfiguration>(config =>
{
       var credential = new DefaultAzureCredential();
       config.SetAzureTokenCredential(credential);
});
services.AddApplicationInsightsTelemetry(new ApplicationInsightsServiceOptions
{
    ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/"
});

Inaktivera lokal autentisering

När Microsoft Entra-autentiseringen har aktiverats kan du välja att inaktivera lokal autentisering. Med den här konfigurationen kan du mata in telemetri som autentiseras exklusivt av Microsoft Entra-ID och påverkar dataåtkomst (till exempel via API-nycklar).

Du kan inaktivera lokal autentisering med hjälp av Azure-portalen eller Azure Policy eller programmatiskt.

Azure Portal

  1. Från Application Insights-resursen väljer du Egenskaper under rubriken Konfigurera i menyn till vänster. Välj Aktiverad (klicka för att ändra) om den lokala autentiseringen är aktiverad.

    Skärmbild som visar Egenskaper under avsnittet Konfigurera och knappen Aktiverad (välj att ändra) lokal autentisering.

  2. Välj Inaktiverad och tillämpa ändringar.

    Skärmbild som visar lokal autentisering med knappen Aktiverad/Inaktiverad.

  3. När du har inaktiverat lokal autentisering på resursen visas motsvarande information i fönstret Översikt .

    Skärmbild som visar fliken Översikt med knappen Inaktiverad (välj att ändra) lokal autentisering.

Azure Policy

Azure Policy för DisableLocalAuth nekar användare möjligheten att skapa en ny Application Insights-resurs utan den här egenskapen inställd på true. Principnamnet är Application Insights components should block non-AAD auth ingestion.

Om du vill tillämpa den här principdefinitionen på din prenumeration skapar du en ny principtilldelning och tilldelar principen.

I följande exempel visas definitionen av principmallen:

{
    "properties": {
        "displayName": "Application Insights components should block non-AAD auth ingestion",
        "policyType": "BuiltIn",
        "mode": "Indexed",
        "description": "Improve Application Insights security by disabling log ingestion that are not AAD-based.",
        "metadata": {
            "version": "1.0.0",
            "category": "Monitoring"
        },
        "parameters": {
            "effect": {
                "type": "String",
                "metadata": {
                    "displayName": "Effect",
                    "description": "The effect determines what happens when the policy rule is evaluated to match"
                },
                "allowedValues": [
                    "audit",
                    "deny",
                    "disabled"
                ],
                "defaultValue": "audit"
            }
        },
        "policyRule": {
            "if": {
                "allOf": [
                    {
                        "field": "type",
                        "equals": "Microsoft.Insights/components"
                    },
                    {
                        "field": "Microsoft.Insights/components/DisableLocalAuth",
                        "notEquals": "true"                        
                    }
                ]
            },
            "then": {
                "effect": "[parameters('effect')]"
            }
        }
    }
}

Programmatisk aktivering

Egenskapen DisableLocalAuth används för att inaktivera lokal autentisering på Application Insights-resursen. När den här egenskapen är inställd på trueframtvingar den att Microsoft Entra-autentisering måste användas för all åtkomst.

I följande exempel visas den Azure Resource Manager-mall som du kan använda för att skapa en arbetsytebaserad Application Insights-resurs med LocalAuth inaktiverad.

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "name": {
            "type": "string"
        },
        "type": {
            "type": "string"
        },
        "regionId": {
            "type": "string"
        },
        "tagsArray": {
            "type": "object"
        },
        "requestSource": {
            "type": "string"
        },
        "workspaceResourceId": {
            "type": "string"
        },
        "disableLocalAuth": {
            "type": "bool"
        }
     
    },
    "resources": [
        {
        "name": "[parameters('name')]",
        "type": "microsoft.insights/components",
        "location": "[parameters('regionId')]",
        "tags": "[parameters('tagsArray')]",
        "apiVersion": "2020-02-02-preview",
        "dependsOn": [],
        "properties": {
            "Application_Type": "[parameters('type')]",
            "Flow_Type": "Redfield",
            "Request_Source": "[parameters('requestSource')]",
            "WorkspaceResourceId": "[parameters('workspaceResourceId')]",
            "DisableLocalAuth": "[parameters('disableLocalAuth')]"
            }
    }
 ]
}

Token-målgrupp

När du utvecklar en anpassad klient för att hämta en åtkomsttoken från Microsoft Entra-ID för att skicka telemetri till Application Insights läser du följande tabell för att fastställa lämplig målgruppssträng för din specifika värdmiljö.

Azure-molnversion Token-målgruppsvärde
Offentligt Azure-moln https://monitor.azure.com
Microsoft Azure drivs av 21Vianet-molnet https://monitor.azure.cn
Azure US Government-moln https://monitor.azure.us

Om du använder nationella moln kan du även hitta målgruppsinformationen i anslutningssträng. Anslutningssträng följer den här strukturen:

InstrumentationKey={profile. InstrumentationKey}; IngestionEndpoint={ingestionEndpoint}; LiveEndpoint={liveDiagnosticsEndpoint}; AADAudience={aadAudience}

Målgruppsparametern AADAudience kan variera beroende på din specifika miljö.

Felsökning

Det här avsnittet innehåller distinkta felsökningsscenarier och steg som du kan vidta för att lösa ett problem innan du skapar ett supportärende.

HTTP-fel för inmatning

Inmatningstjänsten returnerar specifika fel, oavsett SDK-språk. Nätverkstrafik kan samlas in med hjälp av ett verktyg som Fiddler. Du bör filtrera trafik till inmatningsslutpunkten som anges i anslutningssträng.

HTTP/1.1 400-autentisering stöds inte

Det här felet visar att resursen har angetts endast för Microsoft Entra. Du måste konfigurera SDK:n korrekt eftersom den skickar till fel API.

Kommentar

"v2/track" stöder inte Microsoft Entra-ID. När SDK:t är korrekt konfigurerat skickas telemetri till "v2.1/track".

Därefter bör du granska SDK-konfigurationen.

HTTP/1.1 401 Auktorisering krävs

Det här felet anger att SDK:t är korrekt konfigurerat men att det inte går att hämta en giltig token. Det här felet kan tyda på ett problem med Microsoft Entra-ID.

Därefter bör du identifiera undantag i SDK-loggarna eller nätverksfelen från Azure Identity.

HTTP/1.1 403 Obehörig

Det här felet innebär att SDK använder autentiseringsuppgifter utan behörighet för Application Insights-resursen eller prenumerationen.

Kontrollera först åtkomstkontrollen för Application Insights-resursen. Du måste konfigurera SDK med autentiseringsuppgifter som har rollen Monitoring Metrics Publisher.

Språkspecifik felsökning

Händelsekälla

Application Insights .NET SDK genererar felloggar med hjälp av händelsekällan. Mer information om hur du samlar in händelsekällans loggar finns i Felsöka inga data – samla in loggar med PerfView.

Om SDK:t inte hämtar en token loggas undantagsmeddelandet som Failed to get AAD Token. Error message:.

Nästa steg