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:
- Wees in de openbare cloud.
- Vertrouwd zijn met:
- Beheerde identiteit.
- Service-principal.
- Azure-rollen toewijzen.
- Een rol Van eigenaar aan de resourcegroep hebben als u toegang wilt verlenen met behulp van ingebouwde Azure-rollen.
- Inzicht in de niet-ondersteunde scenario's.
Niet-ondersteunde scenario's
De volgende SDK's (Software Development Kits) en functies worden niet ondersteund voor gebruik met door Microsoft Entra geverifieerde opname:
- Application Insights Java 2.x SDK.
Microsoft Entra-verificatie is alleen beschikbaar voor Application Insights Java Agent groter dan of gelijk aan 3.2.0. - ApplicationInsights JavaScript-web-SDK.
- Application Insights OpenCensus Python SDK met Python versie 3.4 en 3.5.
- On-by-by-default autoinstrumentation/codeless monitoring (voor talen) voor Azure-app Service, Azure Virtual Machines/Azure Virtual Machine Scale Sets en Azure Functions.
- Profiler.
Verificatie op basis van Microsoft Entra-id configureren en inschakelen
Als u nog geen identiteit hebt, maakt u er een met behulp van een beheerde identiteit of een service-principal.
U wordt aangeraden een beheerde identiteit te gebruiken:
Stel een beheerde identiteit in voor uw Azure-service (virtuele machines of App Service).
We raden u niet aan een service-principal te gebruiken:
Zie Een service-principal maken voor meer informatie over het maken van een Microsoft Entra-toepassing en service-principal die toegang hebben tot resources.
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.
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
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.
Selecteer Uitgeschakeld en pas wijzigingen toe.
Nadat u lokale verificatie voor uw resource hebt uitgeschakeld, ziet u de bijbehorende informatie in het deelvenster Overzicht .
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 true
op, 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:
.