Kumpulkan log Azure Active Directory B2C dengan Application Insights

Sebelum memulai, gunakan pemilih Pilih jenis kebijakan untuk memilih jenis kebijakan yang Anda siapkan. Azure Active Directory B2C menawarkan dua metode untuk menentukan cara pengguna berinteraksi dengan aplikasi Anda: melalui alur pengguna yang telah ditentukan sebelumnya atau melalui kebijakan kustom yang sepenuhnya dapat dikonfigurasi. Langkah yang diperlukan dalam artikel ini berbeda untuk setiap metode.

Fitur ini tersedia hanya untuk kebijakan kustom. Untuk langkah-langkah penyiapan, pilih Kebijakan kustom dalam pemilih sebelumnya.

Artikel ini menyediakan langkah-langkah untuk mengumpulkan log dari Active Directory B2C (Azure AD B2C) agar Anda dapat mendiagnosis masalah dengan kebijakan kustom Anda. Application Insights memberikan jalan untuk mendiagnosis pengecualian dan memvisualisasi masalah kinerja aplikasi. Azure AD B2C mencakup fitur untuk mengirim data ke Application Insights.

Log aktivitas terperinci yang dijelaskan di sini harus diaktifkan HANYA selama pengembangan kebijakan kustom Anda.

Peringatan

Jangan atur DeploymentMode ke Development dalam lingkungan produksi. Log mengumpulkan semua klaim yang dikirim ke dan dari penyedia identitas. Anda sebagai pengembang bertanggung jawab atas data pribadi apa pun yang dikumpulkan dalam log Application Insights Anda. Log terperinci ini dikumpulkan hanya ketika kebijakan ditempatkan dalam MODE PENGEMBANG.

Siapkan Application Insights

Jika Anda belum memilikinya, buat contoh Application Insights di langganan Anda.

Tip

Satu contoh Application Insights dapat digunakan untuk beberapa penyewa Azure AD B2C. Lalu di kueri, Anda dapat memfilter berdasarkan penyewa atau nama kebijakan. Untuk informasi selengkapnya, lihat log dalam sampel Application Insights.

Untuk menggunakan instans yang sudah ada dari Application Insights di langganan Anda, ikuti langkah-langkah berikut:

  1. Masuk ke portal Azure.
  2. Pastikan Anda menggunakan direktori Microsoft Entra yang memiliki langganan Azure Anda, dan bukan direktori Azure AD B2C Anda. Pilih ikon Direktori + langganan di bilah alat portal.
  3. Pada pengaturan Portal | Halaman Direktori + langganan, temukan direktori Microsoft Entra Anda di daftar Nama direktori, lalu pilih Beralih.
  4. Buka sumber daya Application Insights yang Anda buat sebelumnya.
  5. Pada halaman Gambaran Umum, dan rekam Kunci Instrumentasi

Untuk membuat contoh Application Insights di langganan Anda, ikuti langkah-langkah berikut:

  1. Masuk ke portal Azure.
  2. Pastikan Anda menggunakan direktori Microsoft Entra yang memiliki langganan Azure Anda, dan bukan direktori Azure AD B2C Anda. Pilih ikon Direktori + langganan di bilah alat portal.
  3. Pada pengaturan Portal | Halaman Direktori + langganan, temukan direktori Microsoft Entra Anda di daftar Nama direktori, lalu pilih Beralih.
  4. Pilih Buat sumber daya di menu navigasi sebelah kiri.
  5. Cari dan pilih Application Insights, lalu pilih Buat.
  6. Lengkapi formulir, pilih Tinjau + buat, lalu pilih Buat.
  7. Setelah penyebaran selesai, pilih Buka sumber daya.
  8. Di bawah Konfigurasikan di menu Application Insights, pilih Properti.
  9. Rekam KUNCI INSTRUMENTASI untuk digunakan di langkah selanjutnya.

Konfigurasikan kebijakan kustom

  1. Buka file pihak pengandal (RP), misalnya SignUpOrSignin.xml.

  2. Tambahkan atribut berikut ke <TrustFrameworkPolicy> elemen:

    DeploymentMode="Development"
    UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights"
    
  3. Jika belum ada, tambahkan <UserJourneyBehaviors> simpul anak ke <RelyingParty> simpul. Itu harus ditemukan setelah <DefaultUserJourney ReferenceId="UserJourney Id" from your extensions policy, or equivalent (for example:SignUpOrSigninWithAAD" />. Lihat Referensi skema RelyingParty untuk urutan lengkap elemen turunan RelyingParty .

  4. Tambahkan simpul berikut sebagai anak dari elemen <UserJourneyBehaviors>. Pastikan untuk mengganti {Your Application Insights Key} dengan Kunci Instrumentasi Application Insights yang Anda rekam sebelumnya.

    <JourneyInsights TelemetryEngine="ApplicationInsights" InstrumentationKey="{Your Application Insights Key}" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
    
    • DeveloperMode="true" memberitahu ApplicationInsights untuk mempercepat telemetri melalui pipa pemrosesan. Baik untuk pengembangan, tetapi terkendala pada volume tinggi. Dalam produksi, atur DeveloperMode ke false.
    • ClientEnabled="true" mengirimkan skrip sisi klien ApplicationInsights untuk melacak tampilan halaman dan kesalahan sisi klien. Anda dapat melihat ini di tabel browserTimings di portal Application Insights. Pada pengaturan ClientEnabled= "true", Anda menambahkan Application Insights ke skrip halaman dan Anda mendapatkan pengaturan waktu pemuatan halaman dan panggilan AJAX, jumlah, dan detail pengecualian browser dan kegagalan AJAX, dan jumlah pengguna dan sesi. Bidang ini bersifatopsional, dan diatur false secara default.
    • ServerEnabled="true" mengirimkan UserJourneyRecorder JSON yang ada sebagai peristiwa kustom ke Application Insights.

    Contohnya:

    <TrustFrameworkPolicy
      ...
      TenantId="fabrikamb2c.onmicrosoft.com"
      PolicyId="SignUpOrSignInWithAAD"
      DeploymentMode="Development"
      UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights"
    >
    ...
    <RelyingParty>
      <DefaultUserJourney ReferenceId="UserJourney ID from your extensions policy, or equivalent (for example: SignUpOrSigninWithAzureAD)" />
      <Endpoints>
         <!--points to refresh token journey when app makes refresh token request-->
         <Endpoint Id="Token" UserJourneyReferenceId="RedeemRefreshToken" />
      </Endpoints>
      <UserJourneyBehaviors>
        <JourneyInsights TelemetryEngine="ApplicationInsights" InstrumentationKey="{Your Application Insights Key}" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
      </UserJourneyBehaviors>
      ...
    </TrustFrameworkPolicy>
    
  5. Unggah kebijakan.

Lihat log di Application Insights

Ada penundaan singkat, biasanya kurang dari lima menit, sebelum Anda dapat melihat log baru di Application Insights.

  1. Buka sumber daya Application Insights yang Anda buat di portal Azure.
  2. Pada halaman Gambaran Umum, pilih Log.
  3. Buka tab baru di Application Insights.

Berikut adalah daftar kueri yang bisa Anda gunakan untuk melihat log:

Kueri Deskripsi
traces Dapatkan semua log yang dihasilkan oleh Azure AD B2C
traces | where timestamp > ago(1d) Dapatkan semua log yang dihasilkan oleh Azure AD B2C untuk hari terakhir.
traces | where message contains "exception" | where timestamp > ago(2h) Dapatkan semua log dengan kesalahan dari dua jam terakhir.
traces | where customDimensions.Tenant == "contoso.onmicrosoft.com" and customDimensions.UserJourney == "b2c_1a_signinandup" Dapatkan semua log yang dihasilkan oleh penyewa Azure AD B2C contoso.onmicrosoft.com, dan perjalanan pengguna adalah b2c_1a_signinandup.
traces | where customDimensions.CorrelationId == "00000000-0000-0000-0000-000000000000" Dapatkan semua log yang dihasilkan oleh Azure AD B2C untuk ID korelasi. Ganti ID korelasi dengan ID korelasi Anda.

Entri mungkin panjang. Ekspor ke CSV untuk melihat lebih dekat.

Untuk informasi selengkapnya tentang kueri, lihat Gambaran umum kueri log di Azure Monitor.

Lihat log di ekstensi VS Code

Kami menyarankan Anda untuk menginstal ekstensi Azure AD B2C untuk VS Code. Dengan ekstensi Azure AD B2C, log diatur untuk Anda berdasarkan nama kebijakan, ID korelasi (wawasan aplikasi menyajikan digit pertama ID korelasi), dan tanda waktu log. Fitur ini membantu Anda menemukan log yang relevan berdasarkan tanda waktu lokal dan melihat perjalanan pengguna seperti yang dijalankan oleh Azure AD B2C.

Catatan

Komunitas telah mengembangkan ekstensi Visual Studio Code untuk membantu orang menerapkan dan memelihara solusi Azure AD B2C. Ekstensi ini tidak didukung oleh Microsoft, dan tersedia secara ketat apa adanya.

Mengatur akses API Application Insights

Setelah menyiapkan Application Insights, dan mengonfigurasi kebijakan kustom, Anda harus mendapatkan ID APIApplication Insights Anda, dan membuat API Key. Baik API ID maupun kunci API digunakan oleh ekstensi Azure AD B2C untuk membaca peristiwa Application Insights (telemetri). Kunci API Anda harus dikelola seperti kata sandi. Rahasiakan itu.

Catatan

Kunci instrumentasi Application Insights yang Anda buat sebelumnya digunakan oleh Azure AD B2C untuk mengirim telemetri ke Application Insights. Anda hanya menggunakan kunci instrumentasi dalam kebijakan Azure AD B2C Anda, bukan di ekstensi Visual Studio Code.

Untuk mendapatkan ID dan kunci Application Insights:

  1. Di portal Azure, buka sumber daya Application Insights untuk aplikasi Anda.

  2. Pilih Konfigurasikan, lalu pilih Akses API.

  3. Salin ID Aplikasi

  4. Pilih Buat Kunci API

  5. Centang kotak Baca telemetri.

  6. Salin Kunci sebelum menutup bilah kunci Buat API dan simpan di tempat yang aman. Jika Anda kehilangan kunci, Anda perlu membuat kunci lain.

    Screenshot that demonstrates how to create API access key.

Menyiapkan ekstensi Azure AD B2C VS Code

Sekarang setelah Anda memiliki ID api dan Kunci Azure Application insights, Anda dapat mengonfigurasi ekstensi Visual Studio Code untuk membaca log. Ekstensi Azure AD B2C VS Code menyediakan dua cakupan untuk pengaturan:

  • Pengaturan Global Pengguna - Pengaturan yang berlaku secara global untuk setiap contoh VS Code yang Anda buka.
  • Pengaturan Ruang Kerja - Pengaturan disimpan di dalam ruang kerja Anda dan hanya berlaku saat ruang kerja dibuka (menggunakan folder buka VS Code).
  1. Dari penjelajah Pelacakan Azure AD B2C, klik ikon Pengaturan.

    Screenshot that demonstrates select the application insights settings.

  2. Berikan ID dan kunci Azure Application Insights.

  3. Klik Simpan

Setelah Anda menyimpan pengaturan, log Application insights muncul di jendela Azure AD B2C Trace (App Insights).

Screenshot of Azure AD B2C extension for vscode, presenting the Azure Application insights trace.

Mengonfigurasi Application Insights dalam Produksi

Untuk meningkatkan performa lingkungan produksi dan pengalaman pengguna yang lebih baik, penting untuk mengonfigurasi kebijakan Anda untuk mengabaikan pesan yang tidak penting. Gunakan konfigurasi berikut di lingkungan produksi dan tidak ada log yang dikirim ke wawasan aplikasi Anda.

  1. Atur DeploymentMode atribut TrustFrameworkPolicy ke Production.

    <TrustFrameworkPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06" PolicySchemaVersion="0.3.0.0"
    TenantId="yourtenant.onmicrosoft.com"
    PolicyId="B2C_1A_signup_signin"
    PublicPolicyUri="http://yourtenant.onmicrosoft.com/B2C_1A_signup_signin"
    DeploymentMode="Production"
    UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights">
    
  2. Atur DeveloperMode dari JourneyInsights ke false.

    <UserJourneyBehaviors>
      <JourneyInsights TelemetryEngine="ApplicationInsights" InstrumentationKey="{Your Application Insights Key}" DeveloperMode="false" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
    </UserJourneyBehaviors>
    
  3. Perbarui dan uji kebijakan Anda.

Langkah berikutnya