Autentikasi Microsoft Entra untuk Application Insights

Application Insights sekarang mendukung autentikasi Microsoft Entra. Dengan menggunakan ID Microsoft Entra, 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 menolak autentikasi lokal untuk memastikan hanya telemetri yang diautentikasi secara eksklusif dengan menggunakan identitas terkelola dan ID Microsoft Entra diserap di sumber daya Anda. Fitur ini adalah langkah untuk meningkatkan keamanan dan keandalan telemetri yang digunakan untuk membuat operasional penting (pemberitahuan dan penskalaan otomatis) dan keputusan bisnis.

Catatan

Dokumen ini mencakup penyerapan data ke dalam Application Insights menggunakan autentikasi berbasis ID Microsoft Entra. Untuk informasi tentang mengkueri data dalam Application Insights, lihat Query Application Insights menggunakan autentikasi Microsoft Entra.

Prasyarat

Langkah-langkah awal berikut diperlukan untuk mengaktifkan penyerapan terautentikasi Microsoft Entra. Anda perlu:

Skenario yang tidak didukung

Kit Pengembangan Perangkat Lunak (SDK) dan fitur berikut tidak didukung untuk digunakan dengan penyerapan terautentikasi Microsoft Entra:

Mengonfigurasi dan mengaktifkan autentikasi berbasis ID Microsoft Entra

  1. Jika Anda belum memiliki identitas, buat identitas dengan menggunakan identitas terkelola atau perwakilan layanan.

    • Sebaiknya gunakan identitas terkelola:

      Siapkan identitas terkelola untuk layanan Azure Anda (Virtual Machines atau App Service).

    • Kami tidak merekomendasikan penggunaan perwakilan layanan:

      Untuk informasi selengkapnya tentang cara membuat aplikasi Microsoft Entra dan perwakilan layanan yang dapat mengakses sumber daya, lihat Membuat perwakilan layanan.

  2. Tetapkan peran ke layanan Azure.

    Ikuti langkah-langkah dalam Menetapkan peran Azure untuk menambahkan peran Penerbit Metrik Pemantauan dari sumber daya Application Insights target ke sumber daya Azure tempat telemetri dikirim.

    Catatan

    Meskipun peran Penerbit Metrik Pemantauan mengatakan "metrik," peran tersebut akan menerbitkan semua telemetri ke sumber daya Application Insights.

  3. Ikuti panduan konfigurasi sesuai dengan bahasa berikut.

Catatan

Dukungan untuk MICROSOFT Entra ID di Application Insights .NET SDK disertakan dimulai dengan versi 2.18-Beta3.

Application Insights .NET SDK mendukung kelas kredensial yang disediakan oleh Azure Identity.

  • Kami merekomendasikan DefaultAzureCredential untuk pengembangan lokal.
  • Kami merekomendasikan ManagedIdentityCredential untuk identitas terkelola yang ditetapkan sistem dan ditetapkan pengguna.
    • Untuk sistem yang ditetapkan, gunakan konstruktor default tanpa parameter.
    • Untuk pengguna yang ditetapkan, berikan ID klien ke konstruktor.

Contoh berikut menunjukkan cara membuat dan mengonfigurasi TelemetryConfiguration secara manual dengan menggunakan .NET:

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

Contoh berikut menunjukkan cara mengonfigurasi TelemetryConfiguration dengan 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/"
});

Nonaktifkan autentikasi lokal

Setelah autentikasi Microsoft Entra diaktifkan, Anda dapat memilih untuk menonaktifkan autentikasi lokal. Konfigurasi ini memungkinkan Anda untuk menyerap telemetri yang diautentikasi secara eksklusif oleh ID Microsoft Entra dan memengaruhi akses data (misalnya, melalui kunci API).

Anda dapat menonaktifkan autentikasi lokal dengan menggunakan portal Azure atau Azure Policy atau secara terprogram.

Portal Azure

  1. Dari sumber daya Application Insights Anda, pilih Properti di bawah judul Konfigurasi di menu di sebelah kiri. Pilih Diaktifkan (klik untuk mengubah) jika autentikasi lokal diaktifkan.

    Cuplikan layar yang memperlihatkan Properti di bawah bagian Konfigurasi dan tombol Autentikasi lokal diaktifkan (pilih untuk mengubah).

  2. Pilih Dinonaktifkan dan terapkan perubahan.

    Cuplikan layar yang memperlihatkan autentikasi lokal dengan tombol Diaktifkan/Dinonaktifkan.

  3. Setelah menonaktifkan autentikasi lokal pada sumber daya, Anda akan melihat informasi terkait di panel Gambaran Umum .

    Cuplikan layar yang memperlihatkan tab Gambaran Umum dengan tombol autentikasi lokal Dinonaktifkan (pilih untuk mengubah).

Kebijakan Azure

Azure Policy untuk DisableLocalAuth menolak kemampuan pengguna untuk membuat sumber daya Application Insights baru tanpa properti ini diatur ke true. Nama kebijakannya adalah Application Insights components should block non-AAD auth ingestion.

Untuk menerapkan definisi kebijakan ini ke langganan Anda, buat tugas kebijakan baru dan tetapkan kebijakan.

Contoh berikut menunjukkan 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 ini digunakan untuk menonaktifkan autentikasi lokal apa pun pada sumber daya Application Insights Anda. Ketika properti ini diatur ke true, properti ini memberlakukan bahwa autentikasi Microsoft Entra harus digunakan untuk semua akses.

Contoh berikut menunjukkan templat Azure Resource Manager yang dapat Anda gunakan untuk membuat sumber daya Application Insights berbasis ruang kerja dengan LocalAuth 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')]"
            }
    }
 ]
}

Audiens token

Saat mengembangkan klien kustom untuk mendapatkan token akses dari ID Microsoft Entra untuk mengirimkan telemetri ke Application Insights, lihat tabel berikut untuk menentukan string audiens yang sesuai untuk lingkungan host tertentu Anda.

Versi cloud Azure Nilai audiens token
Cloud publik Azure https://monitor.azure.com
Microsoft Azure dioperasikan oleh cloud 21Vianet https://monitor.azure.cn
Cloud Azure US Government https://monitor.azure.us

Jika Anda menggunakan sovereign cloud, Anda juga dapat menemukan informasi audiens di string koneksi. string koneksi mengikuti struktur ini:

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

Parameter audiens, AADAudience, dapat bervariasi tergantung pada lingkungan spesifik Anda.

Pemecahan Masalah

Bagian ini menyediakan skenario pemecahan masalah dan langkah-langkah berbeda yang dapat Anda ambil untuk mengatasi masalah sebelum Anda menaikkan tiket dukungan.

Kesalahan HTTP konsumsi

Layanan penyerapan mengembalikan kesalahan tertentu, terlepas dari bahasa SDK. Lalu lintas jaringan dapat dikumpulkan dengan menggunakan alat seperti Fiddler. Anda harus memfilter lalu lintas ke titik akhir penyerapan yang diatur dalam string koneksi.

Autentikasi HTTP/1.1 400 tidak didukung

Kesalahan ini menunjukkan sumber daya diatur untuk Microsoft Entra-only. Anda perlu mengonfigurasi SDK dengan benar karena SDK dikirim ke API yang salah.

Catatan

"v2/track" tidak mendukung ID Microsoft Entra. Ketika SDK dikonfigurasi dengan benar, telemetri akan dikirim ke "v2.1/track".

Selanjutnya, Anda harus meninjau konfigurasi SDK.

Otorisasi HTTP/1.1 401 diperlukan

Kesalahan ini menunjukkan bahwa SDK dikonfigurasi dengan benar tetapi tidak dapat memperoleh token yang valid. Kesalahan ini mungkin menunjukkan masalah dengan ID Microsoft Entra.

Selanjutnya, Anda harus mengidentifikasi pengecualian dalam log SDK atau kesalahan jaringan dari Azure Identity.

HTTP/1.1 403 Tidak Sah

Kesalahan ini berarti SDK menggunakan kredensial tanpa izin untuk sumber daya atau langganan Application Insights.

Pertama, periksa kontrol akses sumber daya Application Insights. Anda harus mengonfigurasi SDK dengan kredensial yang memiliki peran Penerbit Metrik Pemantauan.

Pemecahan masalah khusus bahasa

Sumber peristiwa

Application Insights .NET SDK memancarkan log kesalahan dengan menggunakan sumber peristiwa. Untuk mempelajari selengkapnya tentang mengumpulkan log sumber peristiwa, lihat Pemecahan masalah tanpa data - mengumpulkan log dengan PerfView.

Jika SDK gagal mendapatkan token, pesan pengecualian dicatat sebagai Failed to get AAD Token. Error message:.

Langkah berikutnya