Microsoft Entra-verificatie voor Application Insights

Application Insights biedt nu ondersteuning voor Microsoft Entra-verificatie. Met behulp van Microsoft Entra ID kunt u ervoor zorgen dat alleen geverifieerde telemetriegegevens worden opgenomen in uw Application Insights-resources.

Het gebruik van verschillende verificatiesystemen kan lastig en riskant zijn, omdat het lastig is om referenties op schaal te beheren. U kunt er nu voor kiezen om ervoor te zorgen dat alleen telemetrie wordt geverifieerd met behulp vanbeheerde identiteiten en Microsoft Entra-id wordt opgenomen in uw resource. Deze functie is een stap voor het verbeteren van de beveiliging en betrouwbaarheid van de telemetrie die wordt gebruikt om kritieke operationele (waarschuwingen en automatisch schalen) en zakelijke beslissingen te nemen.

Notitie

Dit document bevat informatie over gegevensopname in Application Insights met behulp van verificatie op basis van Microsoft Entra ID. Zie Query Application Insights met behulp van Microsoft Entra-verificatie voor informatie over het opvragen van gegevens in Application Insights.

Vereisten

De volgende voorbereidende stappen zijn vereist om geverifieerde opname van Microsoft Entra in te schakelen. U moet het volgende doen:

Niet-ondersteunde scenario's

De volgende SDK's (Software Development Kits) en functies worden niet ondersteund voor gebruik met door Microsoft Entra geverifieerde opname:

Verificatie op basis van Microsoft Entra-id configureren en inschakelen

  1. Als u nog geen identiteit hebt, maakt u er een met behulp van een beheerde identiteit of een service-principal.

  2. Wijs een rol toe aan de Azure-service.

    Volg de stappen in Azure-rollen toewijzen om de rol Monitoring Metrics Publisher van de Doel Application Insights-resource toe te voegen aan de Azure-resource waaruit de telemetrie wordt verzonden.

    Notitie

    Hoewel de rol Monitoring Metrics Publisher 'metrics' (metrische gegevens) bevat, worden alle telemetriegegevens naar de Application Insights-resource gepubliceerd.

  3. Volg de configuratierichtlijnen in overeenstemming met de taal die volgt.

Notitie

Ondersteuning voor Microsoft Entra ID in de Application Insights .NET SDK is opgenomen vanaf versie 2.18-Beta3.

Application Insights .NET SDK ondersteunt de referentieklassen van Azure Identity.

  • We raden u aan DefaultAzureCredential voor lokale ontwikkeling.
  • U wordt aangeraden ManagedIdentityCredential voor door het systeem toegewezen en door de gebruiker toegewezen beheerde identiteiten.
    • Gebruik voor door het systeem toegewezen de standaardconstructor zonder parameters.
    • Geef voor door de gebruiker toegewezen de client-id op voor de constructor.

In het volgende voorbeeld ziet u hoe u handmatig .NET maakt en configureert TelemetryConfiguration :

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

In het volgende voorbeeld ziet u hoe u configureert TelemetryConfiguration met behulp van .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/"
});

Lokale verificatie uitschakelen

Nadat de Microsoft Entra-verificatie is ingeschakeld, kunt u ervoor kiezen om lokale verificatie uit te schakelen. Met deze configuratie kunt u telemetrie opnemen die exclusief wordt geverifieerd door Microsoft Entra-id en van invloed is op gegevenstoegang (bijvoorbeeld via API-sleutels).

U kunt lokale verificatie uitschakelen met behulp van Azure Portal of Azure Policy of programmatisch.

Azure Portal

  1. Selecteer eigenschappen in uw Application Insights-resource onder de kop Configureren in het menu aan de linkerkant. Selecteer Ingeschakeld (klik om te wijzigen) als de lokale verificatie is ingeschakeld.

    Schermopname met Eigenschappen onder de sectie Configureren en de knop Ingeschakeld (selecteren om te wijzigen) lokale verificatie.

  2. Selecteer Uitgeschakeld en pas wijzigingen toe.

    Schermopname van lokale verificatie met de knop Ingeschakeld/Uitgeschakeld.

  3. Nadat u lokale verificatie voor uw resource hebt uitgeschakeld, ziet u de bijbehorende informatie in het deelvenster Overzicht .

    Schermopname van het tabblad Overzicht met de knop Uitgeschakeld (selecteren om te wijzigen) lokale verificatie.

Azure Policy

Azure Policy voor DisableLocalAuth het weigeren van gebruikers de mogelijkheid om een nieuwe Application Insights-resource te maken zonder dat deze eigenschap is ingesteld op true. De beleidsnaam is Application Insights components should block non-AAD auth ingestion.

Als u deze beleidsdefinitie wilt toepassen op uw abonnement, maakt u een nieuwe beleidstoewijzing en wijst u het beleid toe.

In het volgende voorbeeld ziet u de beleidssjabloondefinitie:

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

Programmatisch inschakelen

De eigenschap DisableLocalAuth wordt gebruikt om lokale verificatie uit te schakelen voor uw Application Insights-resource. Wanneer deze eigenschap is ingesteld trueop, wordt afgedwongen dat Microsoft Entra-verificatie moet worden gebruikt voor alle toegang.

In het volgende voorbeeld ziet u de Azure Resource Manager-sjabloon die u kunt gebruiken om een Application Insights-resource op basis van een werkruimte te maken met LocalAuth uitgeschakeld.

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

Tokendoelgroep

Wanneer u een aangepaste client ontwikkelt voor het verkrijgen van een toegangstoken van Microsoft Entra ID voor het verzenden van telemetrie naar Application Insights, raadpleegt u de volgende tabel om de juiste doelgroeptekenreeks voor uw specifieke hostomgeving te bepalen.

Azure-cloudversie Waarde van tokendoelgroep
Openbare Azure-cloud https://monitor.azure.com
Microsoft Azure beheerd door de 21Vianet-cloud https://monitor.azure.cn
Azure-cloud van de Amerikaanse overheid https://monitor.azure.us

Als u onafhankelijke clouds gebruikt, kunt u ook de informatie over de doelgroep vinden in de verbindingsreeks. De verbindingsreeks volgt deze structuur:

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

De doelgroepparameter, AADAudience, kan variëren, afhankelijk van uw specifieke omgeving.

Probleemoplossing

Deze sectie bevat verschillende scenario's voor probleemoplossing en stappen die u kunt uitvoeren om een probleem op te lossen voordat u een ondersteuningsticket indient.

HTTP-fouten bij opname

De opnameservice retourneert specifieke fouten, ongeacht de SDK-taal. Netwerkverkeer kan worden verzameld met behulp van een hulpprogramma zoals Fiddler. U moet verkeer filteren op het opname-eindpunt dat is ingesteld in de verbindingsreeks.

HTTP/1.1 400-verificatie wordt niet ondersteund

Deze fout geeft aan dat de resource is ingesteld voor alleen Microsoft Entra. U moet de SDK juist configureren omdat deze naar de verkeerde API wordt verzonden.

Notitie

'v2/track' biedt geen ondersteuning voor Microsoft Entra-id. Wanneer de SDK correct is geconfigureerd, wordt telemetrie verzonden naar 'v2.1/track'.

Vervolgens moet u de SDK-configuratie controleren.

HTTP/1.1 401-autorisatie vereist

Deze fout geeft aan dat de SDK correct is geconfigureerd, maar dat het geen geldig token kan verkrijgen. Deze fout kan duiden op een probleem met Microsoft Entra-id.

Vervolgens moet u uitzonderingen identificeren in de SDK-logboeken of netwerkfouten van Azure Identity.

HTTP/1.1 403 Niet geautoriseerd

Deze fout betekent dat de SDK referenties gebruikt zonder toestemming voor de Application Insights-resource of -abonnement.

Controleer eerst het toegangsbeheer van de Application Insights-resource. U moet de SDK configureren met referenties met de rol Monitoring Metrics Publisher.

Taalspecifieke probleemoplossing

Gebeurtenisbron

De Application Insights .NET SDK verzendt foutenlogboeken met behulp van de gebeurtenisbron. Zie Problemen met geen gegevens oplossen voor meer informatie over het verzamelen van gebeurtenisbronlogboeken: logboeken verzamelen met PerfView.

Als de SDK geen token kan ophalen, wordt het uitzonderingsbericht geregistreerd als Failed to get AAD Token. Error message:.

Volgende stappen