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.

Hinweis

Dieses Dokument behandelt die Datenerfassung in Application Insights mit Hilfe der Microsoft Entra ID-basierten Authentifizierung. Informationen zum Abfragen von Daten in Application Insights finden Sie unter Application Insights-Abfrage mithilfe der Microsoft Entra-Authentifizierung.

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 dem Azure-Dienst eine Rolle zu.

    Führen Sie die Schritte in Zuweisen von Azure-Rollen aus, um die Rolle „Herausgeber von Überwachungsmetriken“ aus der Application Insights-Zielressource der Azure-Ressource hinzuzufügen, aus der die Telemetriedaten gesendet werden.

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

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 der Überschrift 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-AAD auth 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-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')]"
            }
        }
    }
}

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