Ověřování Microsoft Entra pro Application Insights
Aplikační Přehledy teď podporuje ověřování Microsoft Entra. Pomocí ID Microsoft Entra můžete zajistit, aby se ve vaší aplikaci Přehledy prostředky ingestovala pouze ověřená telemetrie.
Používání různých ověřovacích systémů může být těžkopádné a rizikové, protože je obtížné spravovat přihlašovací údaje ve velkém měřítku. Teď se můžete rozhodnout odhlásit místní ověřování , abyste zajistili, že se ve vašem prostředku ingestují jenom telemetrie výhradně ověřená pomocí spravovaných identit a ID Microsoft Entra . Tato funkce je krokem k vylepšení zabezpečení a spolehlivosti telemetrie používané k provádění důležitých provozních (upozorňování a automatického škálování) a obchodních rozhodnutí.
Poznámka:
Tento dokument se zabývá příjmem dat do aplikace Přehledy pomocí ověřování založeného na ID Microsoftu. Informace o dotazování dat v rámci Přehledy aplikace naleznete v tématu Dotazování aplikace Přehledy pomocí ověřování Microsoft Entra.
Požadavky
K povolení příjmu dat ověřených microsoftem Entra jsou potřeba následující předběžné kroky. Budete muset:
- Buďte ve veřejném cloudu.
- Seznamte se s těmito informacemi:
- Pokud chcete udělit přístup pomocí předdefinovaných rolí Azure, požádejte skupinu prostředků o roli vlastníka.
- Seznamte se s nepodporovanými scénáři.
Nepodporované scénáře
Následující sady SDK (Software Development Kit) a funkce nejsou podporovány pro použití s příjmem dat ověřeným Microsoft Entra:
- Application Přehledy Java 2.x SDK.
Ověřování Microsoft Entra je k dispozici pouze pro agenta Java Přehledy aplikace větší nebo rovno 3.2.0. - Application Přehledy JavaScript Web SDK.
- Sada Application Přehledy OpenCensus Python SDK s Pythonem verze 3.4 a 3.5.
- Automatické nebo bezkódové monitorování (pro jazyky) pro službu Aplikace Azure Service, Azure Virtual Machines nebo Azure Virtual Machine Scale Sets a Azure Functions ve výchozím nastavení
- Profiler.
Konfigurace a povolení ověřování založeného na ID microsoftu Entra
Pokud ještě identitu nemáte, vytvořte ji pomocí spravované identity nebo instančního objektu.
Doporučujeme použít spravovanou identitu:
Nastavte spravovanou identitu pro vaši službu Azure (Virtual Machines nebo App Service).
Nedoporučujeme používat instanční objekt:
Další informace o tom, jak vytvořit aplikaci Microsoft Entra a instanční objekt, který má přístup k prostředkům, naleznete v tématu Vytvoření instančního objektu.
Přiřaďte službě Azure roli.
Postupujte podle kroků v části Přiřazení rolí Azure a přidejte roli Vydavatele metrik monitorování z cílové aplikace Přehledy prostředek do prostředku Azure, ze kterého se telemetrie odesílá.
Poznámka:
I když role Vydavatel metrik monitorování říká "metriky", publikuje veškerou telemetrii do prostředku Přehledy aplikace.
Postupujte podle pokynů ke konfiguraci v souladu s následujícím jazykem.
Poznámka:
Podpora id Microsoft Entra v sadě Application Přehledy .NET SDK je součástí verze 2.18-Beta3.
Sada Application Přehledy .NET SDK podporuje třídy přihlašovacích údajů poskytované službou Azure Identity.
DefaultAzureCredential
Doporučujeme pro místní vývoj.- Doporučujeme
ManagedIdentityCredential
pro spravované identity přiřazené systémem a přiřazené uživatelem.- Pro přiřazení systému použijte výchozí konstruktor bez parametrů.
- Pro uživatelem přiřazené zadejte ID klienta konstruktoru.
Následující příklad ukazuje, jak ručně vytvořit a nakonfigurovat TelemetryConfiguration
pomocí .NET:
TelemetryConfiguration.Active.ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/";
var credential = new DefaultAzureCredential();
TelemetryConfiguration.Active.SetAzureTokenCredential(credential);
Následující příklad ukazuje, jak nakonfigurovat TelemetryConfiguration
pomocí .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/"
});
Zakázání místního ověřování
Po povolení ověřování Microsoft Entra můžete zakázat místní ověřování. Tato konfigurace umožňuje ingestovat telemetrii ověřenou výhradně id Microsoft Entra a ovlivnit přístup k datům (například prostřednictvím klíčů rozhraní API).
Místní ověřování můžete zakázat pomocí webu Azure Portal nebo Azure Policy nebo prostřednictvím kódu programu.
portál Azure
V prostředku Přehledy aplikace vyberte v nabídce na levé straně možnost Vlastnosti pod nadpisem Konfigurovat. Pokud je místní ověřování povolené, vyberte Možnost Povoleno (kliknutím můžete změnit ).
Vyberte Zakázáno a použijte změny.
Po zakázání místního ověřování prostředku se v podokně Přehled zobrazí odpovídající informace.
Azure Policy
Azure Policy pro DisableLocalAuth
odepření uživatelům možnost vytvořit nový prostředek aplikace Přehledy bez této vlastnosti nastavena na true
. Název zásady je Application Insights components should block non-AAD auth ingestion
.
Pokud chcete tuto definici zásad použít pro vaše předplatné, vytvořte nové přiřazení zásady a přiřaďte ji.
Následující příklad ukazuje definici šablony zásad:
{
"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')]"
}
}
}
}
Programové povolení
Tato vlastnost DisableLocalAuth
slouží k zakázání místního ověřování v prostředku Přehledy aplikace. Pokud je tato vlastnost nastavena na true
, vynucuje, že ověřování Microsoft Entra musí být použito pro veškerý přístup.
Následující příklad ukazuje šablonu Azure Resource Manageru, pomocí které můžete vytvořit aplikaci založenou na pracovním prostoru Přehledy prostředek se zakázanýmLocalAuth
.
{
"$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')]"
}
}
]
}
Cílová skupina tokenů
Při vývoji vlastního klienta pro získání přístupového tokenu z ID Microsoft Entra pro odesílání telemetrie do služby Application Přehledy najdete v následující tabulce a určete odpovídající řetězec cílové skupiny pro vaše konkrétní hostitelské prostředí.
Verze cloudu Azure | Hodnota cílové skupiny tokenů |
---|---|
Veřejný cloud Azure | https://monitor.azure.com |
Microsoft Azure provozovaný cloudem 21Vianet | https://monitor.azure.cn |
Cloud Azure US Government | https://monitor.azure.us |
Pokud používáte suverénní cloudy, najdete informace o cílové skupině také v připojovací řetězec. Připojovací řetězec se řídí touto strukturou:
InstrumentationKey={profile. InstrumentationKey}; IngestionEndpoint={ingestionEndpoint}; LiveEndpoint={liveDiagnosticsEndpoint}; AADAudience={aadAudience}
Parametr cílové skupiny AADAudience se může lišit v závislosti na vašem konkrétním prostředí.
Řešení problému
Tato část obsahuje jedinečné scénáře řešení potíží a kroky, které můžete provést při řešení problému před vytvořením lístku podpory.
Chyby HTTP příjmu dat
Služba příjmu dat vrací konkrétní chyby bez ohledu na jazyk sady SDK. Síťový provoz je možné shromažďovat pomocí nástroje, jako je Fiddler. Přenosy do koncového bodu příjmu dat nastaveného v připojovací řetězec byste měli filtrovat.
Nepodporuje se ověřování HTTP/1.1 400
Tato chyba ukazuje, že je prostředek nastavený pouze pro Microsoft Entra. Sadu SDK je potřeba správně nakonfigurovat, protože se odesílá do nesprávného rozhraní API.
Poznámka:
"v2/track" nepodporuje ID Microsoft Entra. Když je sada SDK správně nakonfigurovaná, telemetrie se odešle na "v2.1/track".
Dále byste měli zkontrolovat konfiguraci sady SDK.
Vyžaduje se autorizace HTTP/1.1 401
Tato chyba značí, že sada SDK je správně nakonfigurovaná, ale nemůže získat platný token. Tato chyba může znamenat problém s ID Microsoft Entra.
Dále byste měli identifikovat výjimky v protokolech sady SDK nebo chybách sítě z identity Azure.
HTTP/1.1 403 Neautorizováno
Tato chyba znamená, že sada SDK používá přihlašovací údaje bez oprávnění k prostředku nebo předplatnému aplikace Přehledy.
Nejprve zkontrolujte řízení přístupu k prostředku Přehledy aplikace. Sadu SDK musíte nakonfigurovat pomocí přihlašovacích údajů, které mají roli vydavatele metrik monitorování.
Řešení potíží pro konkrétní jazyk
Zdroj událostí
Sada Application Přehledy .NET SDK generuje protokoly chyb pomocí zdroje událostí. Další informace o shromažďování protokolů zdroje událostí najdete v tématu Řešení potíží s žádnými daty – shromažďování protokolů pomocí nástroje PerfView.
Pokud se sadě SDK nepodaří získat token, zpráva o výjimce se zaprotokoluje jako Failed to get AAD Token. Error message:
.