Autentikasi Microsoft Azure AD untuk Application Insights
Application Insights sekarang mendukung autentikasi Azure Active Directory (Azure AD). Dengan menggunakan Microsoft Azure Active Directory, Anda dapat memastikan bahwa hanya telemetri terautentikasi yang diserap dalam sumber daya Application Insights Anda.
Biasanya, menggunakan berbagai sistem autentikasi dapat menjadi rumit dan menimbulkan risiko karena sulit untuk mengelola kredensial dalam skala besar. Anda sekarang dapat memilih untuk menghindari autentikasi lokal guna memastikan hanya telemetri yang diautentikasi secara eksklusif menggunakan Identitas Terkelola dan Azure Active Directory yang diserap dalam sumber daya Anda. Fitur ini adalah langkah untuk meningkatkan keamanan dan keandalan telemetri yang digunakan untuk membuat operasional kritis (peringatan, skala otomatis dll.) dan keputusan bisnis.
Prasyarat
Berikut ini adalah prasyarat untuk mengaktifkan penyerapan terautentikasi Azure AD.
- Penguasaan:
- Anda memiliki peran "Pemilik" ke grup sumber daya untuk memberikan akses menggunakan peran bawaan Azure.
- Pahami skenario yang tidak didukung.
Mengonfigurasi dan mengaktifkan autentikasi berbasis Azure AD
Buat identitas, jika Anda sudah tidak memilikinya, gunakan identitas terkelola atau perwakilan layanan:
Menggunakan identitas terkelola (Disarankan):
Menyiapkan identitas terkelola untuk Azure Service Anda (VM, App Service, dll.).
Menggunakan perwakilan layanan (Tidak Disarankan):
Untuk informasi selengkapnya tentang cara membuat aplikasi Microsoft Azure AD dan perwakilan layanan yang dapat mengakses sumber daya, lihat Membuat perwakilan layanan.
Tetapkan peran ke Azure Service.
Ikuti langkah-langkah dalam peran Assign Azure untuk menambahkan peran "Monitoring Metrics Publisher" dari target sumber daya Application Insights ke sumber daya Azure dari mana telemetri dikirim.
Catatan
Meskipun peran "Monitoring Metrics Publisher" mengatakan metrik, tersebut akan mempublikasikan semua telemetri ke sumber daya App Insights.
Ikuti panduan konfigurasi per bahasa di bawah ini.
Catatan
Dukungan untuk Azure AD dalam Application Insights .NET SDK disertakan dimulai dengan versi 2.18-Beta3.
Application Insights .NET SDK mendukung kelas kredensial yang disediakan oleh Azure Identity.
DefaultAzureCredentialdisarankan untuk pengembangan lokal.ManagedIdentityCredentialdisarankan untuk identitas terkelola yang ditetapkan sistem dan ditetapkan pengguna.- Untuk sistem yang ditetapkan, gunakan konstruktor default tanpa parameter.
- Untuk pengguna yang ditetapkan, berikan clientId ke konstruktor.
ClientSecretCredentialDirekomendasikan untuk perwakilan layanan.- Berikan tenantId, clientId, dan clientSecret ke konstruktor.
Di bawah ini adalah contoh membuat dan mengonfigurasi TelemetryConfiguration penggunaan .NET:
var config = new TelemetryConfiguration
{
ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/"
}
var credential = new DefaultAzureCredential();
config.SetAzureTokenCredential(credential);
Di bawah ini adalah contoh konfigurasi TelemetryConfiguration menggunakan .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/"
});
Catatan
Pada tanggal 31 Maret 2025, dukungan untuk penyerapan kunci instrumentasi akan berakhir. Penyerapan kunci instrumentasi akan berjalan terus, namun kami tidak akan lagi menyediakan pembaruan atau dukungan terhadap fitur tersebut. Transisi ke string koneksi untuk memanfaatkan kemampuan baru.
Non-fungsikan autentikasi lokal
Setelah autentikasi Azure AD diaktifkan, Anda dapat memilih untuk menonaktifkan autentikasi lokal. Ini akan memungkinkan Anda menyerap telemetri yang diautentikasi secara eksklusif oleh Azure AD dan memengaruhi akses data (misalnya, melalui Kunci API).
Anda dapat menonaktifkan autentikasi lokal dengan menggunakan portal Microsoft Azure, Azure Policy, atau terprogram.
Portal Azure
Dari sumber daya Application Insights Anda, pilih Properti di bawah judul Konfigurasi di bilah menu sebelah kiri. Kemudian pilih Diaktifkan (klik untuk mengubah) jika autentikasi lokal diaktifkan.
Pilih Dinonaktifkan dan terapkan perubahan.
Setelah sumber daya Anda menonaktifkan autentikasi lokal, Anda akan melihat info terkait di panel Gambaran Umum.
Kebijakan Azure
Azure Policy untuk 'DisableLocalAuth' akan menolak pengguna untuk membuat sumber daya Application Insights baru tanpa pengaturan properti ini ke 'true'. Nama kebijakannya adalah 'Komponen Application Insights harus memblokir penyerapan autentikasi non-AAD'.
Untuk menerapkan definisi kebijakan ini ke langganan Anda, buat tugas kebijakan baru dan tetapkan kebijakan.
Di bawah ini adalah definisi templat kebijakan:
{
"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')]"
}
}
}
}
Pemberdayaan terprogram
Properti DisableLocalAuth digunakan untuk menonaktifkan autentikasi lokal apa pun pada sumber daya Application Insights Anda. Ketika diatur ke true, properti ini memberlakukan bahwa autentikasi Azure AD harus digunakan untuk semua akses.
Di bawah ini adalah contoh templat Azure Resource Manager yang dapat Anda gunakan untuk membuat sumber daya Application Insights berbasis ruang kerja dengan auth lokal dinonaktifkan.
{
"$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')]"
}
}
]
}
Skenario yang tidak didukung
Fitur dan SDK berikut tidak didukung untuk digunakan dengan penyerapan terautentikasi Azure AD.
SDK Application Insights Java 2.x
Autentikasi Azure AD hanya tersedia untuk Agen Java Application Insights >=3.2.0.Application Insights OpenCensus Python SDK dengan Python versi 3.4 dan 3.5.
Sertifikat /rahasia berbasis Azure AD tidak direkomendasikan untuk produksi. Menggunakan identitas terkelola.
Pada pemantauan Tanpa Kode secara default (untuk bahasa) dalam App Service, himpunan skala mesin Virtual/VM, Azure Functions dll.
Pemecahan Masalah
Bagian ini menyediakan skenario pemecahan masalah yang berbeda dan langkah-langkah yang dapat diambil pengguna untuk menyelesaikan masalah apa pun sebelum mereka menaikkan tiket dukungan.
Kesalahan HTTP konsumsi
Layanan penggunaan akan mengembalikan kesalahan spesifik (kesalahan penggunaan HTTP), terlepas dari bahasa SDK. Lalu lintas jaringan dapat dikumpulkan menggunakan alat seperti Fiddler. Anda harus memfilter lalu lintas ke IngestionEndpoint yang diatur dalam String Koneksi.
Autentikasi HTTP/1.1 400 tidak didukung
Kesalahan ini menunjukkan bahwa sumber daya telah terkonfigurasi hanya untuk Azure AD. SDK belum dikonfigurasi dengan benar dan dikirim ke API yang salah.
Catatan
"v2/track" tidak mendukung Azure AD. Ketika SDK dikonfigurasi dengan benar, telemetri akan dikirim ke "v2.1/track".
Langkah selanjutnya adalah meninjau konfigurasi SDK.
Otorisasi HTTP/1.1 401 diperlukan
Pesan ini menunjukkan bahwa SDK telah dikonfigurasi dengan benar, tetapi tidak dapat memperoleh token yang valid. Kesalahan ini mungkin menunjukkan masalah terkait Azure Active Directory.
Langkah berikutnya harus mengidentifikasi pengecualian dalam log SDK atau kesalahan jaringan dari Azure Identity.
HTTP/1.1 403 Tidak Sah
Pesan ini menunjukkan bahwa SDK telah dikonfigurasi dengan info masuk yang tidak memiliki izin ke sumber daya Application Insights atau langganan.
Langkah selanjutnya seharusnya meninjau kontrol akses sumber daya Application Insights. SDK harus dikonfigurasi dengan info masuk yang telah diberikan peran "Monitoring Metrics Publisher".
Pemecahan masalah khusus bahasa
Sumber Kejadian
Aplikasi Insights .NET SDK memancarkan log kesalahan menggunakan sumber peristiwa. Untuk mempelajari selengkapnya tentang mengumpulkan kunjungan log sumber peristiwa, Log pemecahan masalah tidak mengumpulkan data dengan PerfView.
Jika SDK gagal mendapatkan token, pesan pengecualian dicatat sebagai: Failed to get AAD Token. Error message:


