Teilen über


Microsoft Entra-Authentifizierung für Application Insights

Application Insights unterstützt jetzt die Microsoft Entra-Authentifizierung. Mit Microsoft Entra ID können Sie sicherstellen, dass ausschließlich authentifizierte Telemetriedaten in Ihren Application Insights-Ressourcen erfasst werden.

Die Nutzung mehrerer Authentifizierungssysteme kann umständlich und riskant sein, weil es schwierig ist, Anmeldeinformationen im großen Stil zu verwalten. Sie können jetzt wahlweise die lokale Authentifizierung deaktivieren, um sicherzustellen, dass in Ihrer Ressource nur Telemetriedaten erfasst werden, die ausschließlich mithilfe von verwalteten Identitäten und Microsoft Entra ID authentifiziert wurden. Diese Funktion ist ein Schritt zur Verbesserung der Sicherheit und Zuverlässigkeit der Telemetrie, die für kritische betriebliche (Warnung und automatische Skalierung) und geschäftliche Entscheidungen verwendet wird.

Voraussetzungen

Die folgenden vorläufigen Schritte sind erforderlich, um die authentifizierte Aufnahme von Microsoft Entra zu aktivieren. Sie müssen folgende Schritte durchführen:

Nicht unterstützte Szenarien

Die folgenden Software Development Kits (SDKs) und Features werden bei der authentifizierten Datenerfassung in Microsoft Entra nicht unterstützt:

Konfigurieren und Aktivieren der Microsoft Entra ID-basierten Authentifizierung

  1. Wenn Sie noch keine Identität haben, erstellen Sie eine entweder mithilfe einer verwalteten Identität oder eines Dienstprinzipals.

  2. Weisen Sie der Azure-Identität, dem Dienstprinzipal oder dem Azure-Benutzerkonto die erforderliche rollenbasierte Zugriffssteuerungsrolle (RBAC) zu.

    Führen Sie die Schritte in Zuweisen von Azure-Rollen aus, um der erwarteten Identität, dem erwarteten Dienstprinzipal oder dem erwarteten Azure-Benutzerkonto die Rolle „Herausgeber für Überwachungsmetriken“ zu erteilen, indem Sie die Zielressource „Application Insights“ als Geltungsbereich der Rolle festlegen.

    Hinweis

    Obwohl in der Bezeichnung der Rolle „Herausgeber von Überwachungsmetriken“ nur der Begriff „Metriken“ verwendet wird, werden in der Application Insights-Ressource alle Telemetriedaten veröffentlicht.

  3. Folgen Sie der Konfigurationsanleitung in Übereinstimmung mit der folgenden Sprache.

Hinweis

Microsoft Entra ID wird im .NET-SDK von Application Insights ab Version 2.18-Beta3 unterstützt.

Das Application Insights-.NET SDK unterstützt die von Azure Identity bereitgestellten Anmeldeinformationsklassen.

  • Wir empfehlen DefaultAzureCredential für die lokale Entwicklung.
  • Authentifizieren Sie sich in Visual Studio mit dem erwarteten Azure-Benutzerkonto. Weitere Informationen finden Sie unter Authentifizieren über Visual Studio.
  • Wir empfehlen ManagedIdentityCredential wird für systemseitig zugewiesene und benutzerseitig zugewiesene verwaltete Identitäten.
    • Verwenden Sie bei systemseitig zugewiesenen Identitäten den Standardkonstruktor ohne Parameter.
    • Stellen Sie bei benutzerseitig zugewiesenen Identitäten die Client-ID für den Konstruktor bereit.

Das folgende Beispiel wird gezeigt, wie Sie TelemetryConfigurationmithilfe von .NET manuell erstellen und konfigurieren:

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

Im folgenden Beispiel wird gezeigt, wie Sie TelemetryConfiguration mithilfe von .NET Core konfigurieren:

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/"
});

Umgebungsvariablenkonfiguration

Verwenden Sie die Umgebungsvariable APPLICATIONINSIGHTS_AUTHENTICATION_STRING, um die Authentifizierung von Application Insights bei Microsoft Entra ID zu ermöglichen und Telemetrie zu senden, wenn Sie die automatische Instrumentierung von Azure App Services verwenden.

  • Für systemseitig zugewiesene Identität:
App-Einstellung Wert
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Authorization=AAD
  • Für benutzerseitig zugewiesene Identität:
App-Einstellung Wert
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Authorization=AAD;ClientId={Client id of the User-Assigned Identity}

Abfragen von Application Insights mithilfe der Microsoft Entra-Authentifizierung

Sie können eine Abfrageanforderung mithilfe des Azure Monitor Application Insights-Endpunkts https://api.applicationinsights.io übermitteln. Um auf den Endpunkt zuzugreifen, müssen Sie sich über Microsoft Entra ID authentifizieren.

Einrichten der Authentifizierung

Sie registrieren eine Client-App bei Microsoft Entra ID und fordern ein Token an, um auf die API zuzugreifen.

  1. Registrieren Sie eine App bei Microsoft Entra ID.

  2. Wählen Sie auf der Übersichtsseite der App API-Berechtigungen aus.

  3. Wählen Sie Berechtigung hinzufügen aus.

  4. Suchen Sie auf der Registerkarte Von meiner Organisation verwendete APIs nach Application Insights, und wählen Sie in der Liste Application Insights-API aus.

  5. Wählen Sie Delegierte Berechtigungen aus.

  6. Aktivieren Sie das Kontrollkästchen Data.Read.

  7. Wählen Sie Berechtigungen hinzufügen aus.

Nachdem Ihre App registriert ist und über Berechtigungen zur Verwendung der API verfügt, gewähren Sie Ihrer App Zugriff auf Ihre Application Insights-Ressource.

  1. Wählen Sie auf der Übersichtsseite der Application Insights-Ressource die Option Zugriffssteuerung (IAM) aus.

  2. Wählen Sie Rollenzuweisung hinzufügen aus.

  3. Wählen Sie die Rolle Leser und dann Mitglieder aus.

  4. Wählen Sie auf der Registerkarte Mitglieder die Option Mitglieder auswählen aus.

  5. Geben Sie den Namen Ihrer App in das Feld Auswählen ein.

  6. Wählen Sie zunächst Ihre App und dann Auswählen aus.

  7. Wählen Sie Überprüfen und zuweisen aus.

  8. Nachdem Sie die Active Directory-Einrichtung und die Berechtigungen abgeschlossen haben, fordern Sie ein Autorisierungstoken an.

Hinweis

In diesem Beispiel haben wir die Rolle „Leser“ angewendet. Diese Rolle ist eine von vielen integrierten Rollen und enthält möglicherweise mehr Berechtigungen als benötigt. Sie können auch differenziertere Rollen und Berechtigungen erstellen.

Anfordern eines Autorisierungstokens

Stellen Sie vor Beginn sicher, dass Sie über alle Werte verfügen, die für die erfolgreiche Anforderung erforderlich sind. Für alle Anforderungen wird Folgendes benötigt:

  • Ihre Microsoft Entra-Mandanten-ID
  • Ihre App Insights-App-ID: Wenn Sie derzeit API-Schlüssel verwenden, ist dies die gleiche App-ID.
  • Ihre Microsoft Entra-Client-ID für die App
  • Einen geheimen Microsoft Entra-Clientschlüssel für die App

Die Application Insights-API unterstützt die Microsoft Entra-Authentifizierung mit drei verschiedenen Flows von Microsoft Entra ID OAuth2:

  • Client credentials (Clientanmeldeinformationen)
  • Authorization code (Autorisierungscode)
  • Implizit

Clientanmeldeinformations-Flow

Im Flow für Clientanmeldeinformationen wird das Token mit dem Application Insights-Endpunkt verwendet. Es wird eine einzelne Anforderung zum Empfangen eines Tokens mithilfe der Anmeldeinformationen gestellt, die für Ihre App im vorherigen Schritt Registrieren einer App in Microsoft Entra ID angegeben wurden.

Verwenden Sie den Endpunkt https://api.applicationinsights.io.

URL für Client-Anmeldeinformations-Token (POST-Anforderung)
    POST /<your-tenant-id>/oauth2/token
    Host: https://login.microsoftonline.com
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=client_credentials
    &client_id=<app-client-id>
    &resource=https://api.applicationinsights.io
    &client_secret=<app-client-secret>

Bei einer erfolgreichen Anforderung empfangen Sie ein Zugriffstoken in der Antwort:

    {
        token_type": "Bearer",
        "expires_in": "86399",
        "ext_expires_in": "86399",
        "access_token": "eyJ0eXAiOiJKV1QiLCJ.....Ax"
    }

Verwenden Sie das Token in Anforderungen an den Application Insights-Endpunkt:

    POST /v1/apps/yous_app_id/query?timespan=P1D
    Host: https://api.applicationinsights.io
    Content-Type: application/json
    Authorization: Bearer <your access token>

    Body:
    {
    "query": "requests | take 10"
    }

Beispielantwort:

  "tables": [
    {
      "name": "PrimaryResult",
      "columns": [
        {
          "name": "timestamp",
          "type": "datetime"
        },
        {
          "name": "id",
          "type": "string"
        },
        {
          "name": "source",
          "type": "string"
        },
        {
          "name": "name",
          "type": "string"
        },
        {
          "name": "url",
          "type": "string"
        },
        {
          "name": "success",
          "type": "string"
        },
        {
          "name": "resultCode",
          "type": "string"
        },
        {
          "name": "duration",
          "type": "real"
        },
        {
          "name": "performanceBucket",
          "type": "string"
        },
        {
          "name": "customDimensions",
          "type": "dynamic"
        },
        {
          "name": "customMeasurements",
          "type": "dynamic"
        },
        {
          "name": "operation_Name",
          "type": "string"
        },
        {
          "name": "operation_Id",
          "type": "string"
        },
        {
          "name": "operation_ParentId",
          "type": "string"
        },
        {
          "name": "operation_SyntheticSource",
          "type": "string"
        },
        {
          "name": "session_Id",
          "type": "string"
        },
        {
          "name": "user_Id",
          "type": "string"
        },
        {
          "name": "user_AuthenticatedId",
          "type": "string"
        },
        {
          "name": "user_AccountId",
          "type": "string"
        },
        {
          "name": "application_Version",
          "type": "string"
        },
        {
          "name": "client_Type",
          "type": "string"
        },
        {
          "name": "client_Model",
          "type": "string"
        },
        {
          "name": "client_OS",
          "type": "string"
        },
        {
          "name": "client_IP",
          "type": "string"
        },
        {
          "name": "client_City",
          "type": "string"
        },
        {
          "name": "client_StateOrProvince",
          "type": "string"
        },
        {
          "name": "client_CountryOrRegion",
          "type": "string"
        },
        {
          "name": "client_Browser",
          "type": "string"
        },
        {
          "name": "cloud_RoleName",
          "type": "string"
        },
        {
          "name": "cloud_RoleInstance",
          "type": "string"
        },
        {
          "name": "appId",
          "type": "string"
        },
        {
          "name": "appName",
          "type": "string"
        },
        {
          "name": "iKey",
          "type": "string"
        },
        {
          "name": "sdkVersion",
          "type": "string"
        },
        {
          "name": "itemId",
          "type": "string"
        },
        {
          "name": "itemType",
          "type": "string"
        },
        {
          "name": "itemCount",
          "type": "int"
        }
      ],
      "rows": [
        [
          "2018-02-01T17:33:09.788Z",
          "|0qRud6jz3k0=.c32c2659_",
          null,
          "GET Reports/Index",
          "http://fabrikamfiberapp.azurewebsites.net/Reports",
          "True",
          "200",
          "3.3833",
          "<250ms",
          "{\"_MS.ProcessedByMetricExtractors\":\"(Name:'Requests', Ver:'1.0')\"}",
          null,
          "GET Reports/Index",
          "0qRud6jz3k0=",
          "0qRud6jz3k0=",
          "Application Insights Availability Monitoring",
          "9fc6738d-7e26-44f0-b88e-6fae8ccb6b26",
          "us-va-ash-azr_9fc6738d-7e26-44f0-b88e-6fae8ccb6b26",
          null,
          null,
          "AutoGen_49c3aea0-4641-4675-93b5-55f7a62d22d3",
          "PC",
          null,
          null,
          "52.168.8.0",
          "Boydton",
          "Virginia",
          "United States",
          null,
          "fabrikamfiberapp",
          "RD00155D5053D1",
          "cf58dcfd-0683-487c-bc84-048789bca8e5",
          "fabrikamprod",
          "5a2e4e0c-e136-4a15-9824-90ba859b0a89",
          "web:2.5.0-33031",
          "051ad4ef-0776-11e8-ac6e-e30599af6943",
          "request",
          "1"
        ],
        [
          "2018-02-01T17:33:15.786Z",
          "|x/Ysh+M1TfU=.c32c265a_",
          null,
          "GET Home/Index",
          "http://fabrikamfiberapp.azurewebsites.net/",
          "True",
          "200",
          "716.2912",
          "500ms-1sec",
          "{\"_MS.ProcessedByMetricExtractors\":\"(Name:'Requests', Ver:'1.0')\"}",
          null,
          "GET Home/Index",
          "x/Ysh+M1TfU=",
          "x/Ysh+M1TfU=",
          "Application Insights Availability Monitoring",
          "58b15be6-d1e6-4d89-9919-52f63b840913",
          "emea-se-sto-edge_58b15be6-d1e6-4d89-9919-52f63b840913",
          null,
          null,
          "AutoGen_49c3aea0-4641-4675-93b5-55f7a62d22d3",
          "PC",
          null,
          null,
          "51.141.32.0",
          "Cardiff",
          "Cardiff",
          "United Kingdom",
          null,
          "fabrikamfiberapp",
          "RD00155D5053D1",
          "cf58dcfd-0683-487c-bc84-048789bca8e5",
          "fabrikamprod",
          "5a2e4e0c-e136-4a15-9824-90ba859b0a89",
          "web:2.5.0-33031",
          "051ad4f0-0776-11e8-ac6e-e30599af6943",
          "request",
          "1"
        ]
      ]
    }
  ]
}

Autorisierungscodeflow

Der unterstützte OAuth2-Hauptflow basiert auf Autorisierungscodes. Diese Methode erfordert zwei HTTP-Anforderungen, um ein Token zum Aufrufen der Azure Monitor Application Insights-API zu erhalten. Es gibt zwei URLs, mit einem Endpunkt pro Anforderung. Ihre Formate werden in den folgenden Abschnitten beschrieben.

Autorisierungscode-URL (GET-Anforderung)
    GET https://login.microsoftonline.com/YOUR_Azure AD_TENANT/oauth2/authorize?
    client_id=<app-client-id>
    &response_type=code
    &redirect_uri=<app-redirect-uri>
    &resource=https://api.applicationinsights.io

Wenn eine Anforderung an die autorisierte URL übermittelt wurde, ist die client\_id die aus dem Menü „Eigenschaften“ Ihrer Microsoft Entra-App kopierte Anwendungs-ID. Der redirect\_uri ist die homepage/login-URL aus derselben Microsoft Entra-App. Ist die Anforderung erfolgreich, werden Sie von diesem Endpunkt zu der Anmeldeseite umgeleitet, die Sie bei der Registrierung angegeben haben, und der Autorisierungscode wird an die URL angefügt. Sehen Sie sich folgendes Beispiel an:

    http://<app-client-id>/?code=AUTHORIZATION_CODE&session_state=STATE_GUID

An diesem Punkt erhalten Sie einen Autorisierungscode, den Sie jetzt zum Anfordern eines Zugriffstokens verwenden.

URL für Autorisierungscode-Token (POST-Anforderung)
    POST /YOUR_Azure AD_TENANT/oauth2/token HTTP/1.1
    Host: https://login.microsoftonline.com
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=authorization_code
    &client_id=<app client id>
    &code=<auth code fom GET request>
    &redirect_uri=<app-client-id>
    &resource=https://api.applicationinsights.io
    &client_secret=<app-client-secret>

Die Werte sind die gleichen wie zuvor, aber mit einigen Ergänzungen. Der Autorisierungscode ist der Code, den Sie in der vorherigen Anforderung nach erfolgreicher Umleitung erhalten haben. Der Code wird mit dem Schlüssel kombiniert, der von der Microsoft Entra-App abgerufen wurde. Wenn Sie den Schlüssel nicht gespeichert haben, können Sie diesen löschen und auf der Registerkarte „Schlüssel“ im Menü der Microsoft Entra-App einen neuen Schlüssel erstellen. Die Antwort ist eine JSON-Zeichenfolge, die das Token mit dem folgenden Schema enthält. Für die Tokenwerte sind Typen angegeben.

Beispielantwort:

    {
        "access_token": "eyJ0eXAiOiJKV1QiLCJ.....Ax",
        "expires_in": "3600",
        "ext_expires_in": "1503641912",
        "id_token": "not_needed_for_app_insights",
        "not_before": "1503638012",
        "refresh_token": "eyJ0esdfiJKV1ljhgYF.....Az",
        "resource": "https://api.applicationinsights.io",
        "scope": "Data.Read",
        "token_type": "bearer"
    }

Der Zugriffstokenteil dieser Antwort muss der Application Insights-API im Header Authorization: Bearer präsentiert werden. Anschließend kann auch das Aktualisierungs-Token verwendet werden, um ein neues Zugriffs-Token (access_token) und ein Aktualisierungs-Token (refresh_token) zu erhalten, wenn Ihre Token veraltet sind. Für diese Anforderung werden das folgende Format und der folgende Endpunkt verwendet:

    POST /YOUR_AAD_TENANT/oauth2/token HTTP/1.1
    Host: https://login.microsoftonline.com
    Content-Type: application/x-www-form-urlencoded
    
    client_id=<app-client-id>
    &refresh_token=<refresh-token>
    &grant_type=refresh_token
    &resource=https://api.applicationinsights.io
    &client_secret=<app-client-secret>

Beispielantwort:

    {
      "token_type": "Bearer",
      "expires_in": "3600",
      "expires_on": "1460404526",
      "resource": "https://api.applicationinsights.io",
      "access_token": "eyJ0eXAiOiJKV1QiLCJ.....Ax",
      "refresh_token": "eyJ0esdfiJKV1ljhgYF.....Az"
    }

Impliziter Code-Flow

Die Application Insights-API unterstützt den impliziten Flow für OAuth2. Bei diesem Flow ist nur eine einzelne Anforderung erforderlich, es kann jedoch kein Aktualisierungs-Token bezogen werden.

Implizite Codeautorisierungs-URL
    GET https://login.microsoftonline.com/YOUR_AAD_TENANT/oauth2/authorize?
    client_id=<app-client-id>
    &response_type=token
    &redirect_uri=<app-redirect-uri>
    &resource=https://api.applicationinsights.io

Eine erfolgreiche Anforderung hat eine Umleitung zu Ihrem Umleitungs-URI zur Folge, und das Token wird in die URL integriert:

    http://YOUR_REDIRECT_URI/#access_token=YOUR_ACCESS_TOKEN&token_type=Bearer&expires_in=3600&session_state=STATE_GUID

Dieses Zugriffstoken dient bei der Übergabe an die Application Insights-API als Headerwert Authorization: Bearer, um Anforderungen zu autorisieren.

Deaktivieren der lokalen Authentifizierung

Nach dem Aktivieren der Microsoft Entra-Authentifizierung können Sie die lokale Authentifizierung deaktivieren. Diese Konfiguration ermöglicht Ihnen das Erfassen von Telemetriedaten, die ausschließlich durch Microsoft Entra ID authentifiziert wurden, und sie wirkt sich auf den Datenzugriff beispielsweise über API-Schlüssel aus.

Sie können die lokale Authentifizierung über das Azure-Portal, mithilfe von Azure Policy oder programmgesteuert deaktivieren.

Azure-Portal

  1. Wählen Sie in Ihrer Application Insights-Ressource im linken Menü unter Konfigurieren die Option Eigenschaften aus. Wenn die lokale Authentifizierung aktiviert ist, wählen Sie Aktiviert (zum Ändern klicken) aus.

    Screenshot von „Eigenschaften“ unter dem Abschnitt „Konfigurieren“ und der Schaltfläche „Aktiviert (zum Ändern auswählen)“ unter „Lokale Authentifizierung“.

  2. Wählen Sie Deaktiviert und wenden Sie die Änderungen an.

    Screenshot von lokaler Authentifizierung mit der Schaltfläche „Aktiviert/Deaktiviert“

  3. Nachdem die lokale Authentifizierung deaktiviert wurde, werden die entsprechenden Informationen im Bereich Übersicht angezeigt.

    Screenshot der Registerkarte „Übersicht“ mit der Schaltfläche „Deaktiviert (zum Ändern auswählen)“ der lokalen Authentifizierung.

Azure Policy

Der Azure Policy-Dienst für die DisableLocalAuth-Eigenschaft verweigert Benutzer*innen das Erstellen einer neuen Application Insights-Ressource, wenn diese Eigenschaft nicht auf true festgelegt wurde. Der Richtlinienname lautet Application Insights components should block non-Azure Active Directory based ingestion.

Um diese Richtliniendefinition auf Ihr Abonnement anzuwenden, erstellen Sie eine neue Richtlinienzuweisung, und weisen Sie die Richtlinie dann zu.

Im folgenden Beispiel wird die Definition der Richtlinienvorlage gezeigt:

{
    "properties": {
        "displayName": "Application Insights components should block non-Azure Active Directory based 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')]"
            }
        }
    }
}

Programmgesteuerte Aktivierung

Die Eigenschaft DisableLocalAuth wird zum Deaktivieren jeder lokalen Authentifizierung für Ihre Application Insights-Ressource verwendet. Wenn diese Eigenschaft auf true festgelegt wurde, wird die Verwendung der Microsoft Entra-Authentifizierung für sämtliche Zugriffe erzwungen.

Im folgenden Beispiel wird die Azure Resource Manager-Vorlage gezeigt, mit der Sie eine arbeitsbereichsbasierte Application Insights-Ressource mit deaktivierter lokaler Authentifizierung (LocalAuth) erstellen können.

{
    "$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')]"
            }
    }
 ]
}

Zielgruppe

Wenn Sie einen benutzerdefinierten Client entwickeln, um ein Zugriffstoken von Microsoft Entra ID für die Übermittlung von Telemetriedaten an Application Insights zu erhalten, können Sie anhand der folgenden Tabelle die geeignete Zielgruppenzeichenfolge für die jeweilige Hostumgebung ermitteln.

Azure-Cloudversion Wert der Tokenzielgruppe
Öffentliche Azure-Cloud https://monitor.azure.com
Microsoft Azure, betrieben von 21Vianet Cloud https://monitor.azure.cn
(Azure-Cloud für US-Behörden) https://monitor.azure.us

Wenn Sie Sovereign Clouds verwenden, finden Sie die Zielgruppeninformationen auch in der Verbindungszeichenfolge. Die Verbindungszeichenfolge weist die folgende Struktur auf:

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

Der Zielgruppenparameter „AADAudience“ kann abhängig von der jeweiligen Umgebung variieren.

Problembehandlung

Dieser Abschnitt enthält verschiedene Szenarien und Schritte zur Problembehandlung, die Sie ausführen können, um ein Problem zu beheben, bevor Sie ein Supportticket erstellen.

HTTP-Erfassungsfehler

Vom Erfassungsdienst werden unabhängig von der SDK-Sprache spezifische Fehler zurückgegeben. Netzwerkdatenverkehr kann mithilfe eines Tools wie Fiddler erfasst werden. Sie sollten Datenverkehr nach dem in der Verbindungszeichenfolge festgelegten Erfassungsendpunkt filtern.

HTTP/1.1 400: Authentifizierung wird nicht unterstützt

Dieser Fehler zeigt, dass die Ressource nur für Microsoft Entra festgelegt ist. Sie müssen das SDK ordnungsgemäß konfigurieren, da es an die falsche API gesendet wird.

Hinweis

Microsoft Entra ID wird von „v2/track“ nicht unterstützt. Wenn das SDK ordnungsgemäß konfiguriert ist, werden die Telemetriedaten an „v2.1/track“ gesendet.

Als Nächstes sollten Sie die SDK-Konfiguration überprüfen.

HTTP/1.1 401 Authorization required (Authorisierung erforderlich)

Dieser Fehler weist darauf hin, dass das SDK ordnungsgemäß konfiguriert wurde, aber kein gültiges Token abrufen kann. Dieser Fehler könnte auf ein Problem mit Microsoft Entra ID hinweisen.

Als Nächstes sollten Sie Ausnahmen in den SDK-Protokollen oder Netzwerkfehler von Azure Identity identifizieren.

HTTP/1.1 403 Unauthorized (Nicht autorisiert)

Dieser Fehler bedeutet, dass das SDK Anmeldeinformationen ohne Berechtigung für die Application Insights-Ressource oder das Abonnement verwendet.

Überprüfen Sie zuerst die Zugriffssteuerung der Application Insights-Ressource. Sie müssen das SDK mit Anmeldeinformationen konfigurieren, die über die Rolle "Monitoring Metrics Publisher" verfügen.

Sprachspezifische Problembehandlung

Ereignisquelle

Das Application Insights-.NET SDK gibt Fehlerprotokolle mithilfe der Ereignisquelle aus. Weitere Informationen zum Sammeln von Protokollen der Ereignisquelle finden Sie unter Problembehandlung ohne Daten – Sammeln von Protokollen mit PerfView.

Wenn das SDK kein Token abrufen kann, wird die Ausnahmemeldung als Failed to get AAD Token. Error message: protokolliert.

Nächste Schritte