Mengakses log audit Azure Active Directory B2C

Azure Active Directory B2C (Azure AD B2C) memancarkan log audit yang berisi informasi aktivitas tentang sumber daya B2C, token yang dikeluarkan, dan akses administrator. Artikel ini menyediakan gambaran umum singkat tentang informasi yang tersedia dalam log audit dan instruksi tentang cara mengakses data ini untuk penyewa Azure Active Directory B2C Anda.

Peristiwa log audit hanya dipertahankan selama tujuh hari. Rencanakan untuk mengunduh dan menyimpan log Anda menggunakan salah satu metode yang ditunjukkan di bawah ini jika Anda memerlukan periode retensi yang lebih lama.

Catatan

Anda tidak dapat melihat rincian masuk pengguna untuk aplikasi Azure AD B2C individual di bawah bagian Pengguna di halaman ID Microsoft Entra atau Azure AD B2C di portal Azure. Peristiwa rincian masuk di sana menunjukkan aktivitas pengguna, tetapi tidak dapat dikorelasikan kembali ke aplikasi B2C tempat pengguna masuk. Anda harus menggunakan log audit untuk itu, seperti yang dijelaskan lebih lanjut dalam artikel ini.

Gambaran umum aktivitas yang tersedia dalam kategori B2C log audit

Kategori B2C dalam log audit berisi jenis kegiatan berikut:

Jenis aktivitas Deskripsi
Authorization Aktivitas mengenai otorisasi pengguna untuk mengakses sumber daya B2C (misalnya, admin yang mengakses daftar kebijakan B2C).
Didirektori Aktivitas yang terkait dengan atribut direktori diambil saat admin masuk menggunakan portal Microsoft Azure.
Aplikasi Operasi membuat, membaca, memperbarui, dan menghapus (CRUD) pada aplikasi B2C.
Kunci Operasi CRUD pada kunci yang disimpan dalam kontainer kunci B2C.
Sumber daya Operasi CRUD pada sumber daya B2C. Misalnya, kebijakan dan IdP.
Autentikasi Validasi informasi masuk pengguna dan penerbitan token.

Untuk aktivitas CRUD objek pengguna, lihat kategori Direktori Inti.

Contoh aktivitas

Contoh gambar dari portal Microsoft Azure ini memperlihatkan data yang diambil saat pengguna masuk dengan penyedia identitas eksternal, dalam hal ini, Facebook:

Contoh halaman Detail Aktivitas Log Audit di portal Microsoft Azure

Panel detail aktivitas berisi informasi terkait berikut:

Bagian Bidang Deskripsi
Aktivitas Nama Aktivitas mana yang berlangsung. Misalnya, Terbitkan id_token ke aplikasi, yang menyimpulkan rincian masuk pengguna yang sebenarnya.
Dimulai Oleh (Aktor) ObjectId ID Objek dari aplikasi B2C tempat pengguna masuk. Pengidentifikasi ini tidak terlihat di portal Microsoft Azure, tetapi dapat diakses melalui Microsoft Graph API.
Dimulai Oleh (Aktor) Spn ID Aplikasi dari aplikasi B2C tempat pengguna masuk.
Target ObjectId ID Objek pengguna yang sedang masuk.
Detail Tambahan TenantId ID Penyewa dari penyewa Azure Active Directory B2C.
Detail Tambahan PolicyId ID Kebijakan dari alur pengguna (kebijakan) yang digunakan untuk memasukkan pengguna.
Detail Tambahan ApplicationId ID Aplikasi dari aplikasi B2C tempat pengguna masuk.

Menampilkan log audit di portal Microsoft Azure

Portal Microsoft Azure menyediakan akses ke peristiwa log audit di penyewa Azure Active Directory B2C Anda.

  1. Masuk ke portal Microsoft Azure.
  2. Beralihlah ke direktori yang berisi penyewa Azure Active Directory B2C Anda, lalu telusuri ke Azure Active Directory B2C.
  3. Di bawah Aktivitas di menu sebelah kiri, pilih Log audit.

Daftar peristiwa aktivitas yang dilog selama tujuh hari terakhir ditampilkan.

Filter contoh dengan dua acara aktivitas di portal Microsoft Azure

Beberapa opsi pemfilteran tersedia, termasuk:

  • Jenis Sumber Daya Aktivitas - Filter menurut jenis aktivitas yang diperlihatkan dalam tabel di bagian Gambaran Umum aktivitas yang tersedia.
  • Tanggal - Memfilter rentang tanggal aktivitas yang ditampilkan.

Jika Anda memilih baris dalam daftar, detail aktivitas untuk peristiwa ditampilkan.

Untuk mengunduh daftar peristiwa aktivitas dalam file nilai yang dipisahkan koma (CSV), pilih Unduh.

Mendapatkan log audit dengan API pelaporan Microsoft Entra

Log audit diterbitkan ke alur yang sama dengan aktivitas lain untuk ID Microsoft Entra, sehingga dapat diakses melalui API pelaporan Microsoft Entra. Untuk informasi selengkapnya, lihat Mulai menggunakan API pelaporan Microsoft Entra.

Aktifkan akses pelaporan API

Untuk mengizinkan akses berbasis skrip atau aplikasi ke API pelaporan Microsoft Entra, Anda memerlukan aplikasi yang terdaftar di penyewa Azure AD B2C Anda dengan izin API berikut. Anda dapat mengaktifkan izin ini pada pendaftaran aplikasi yang ada dalam penyewa B2C Anda, atau membuat baru khusus untuk digunakan dengan otomatisasi log audit.

  • Microsoft Graph > Izin aplikasi > AuditLog > AuditLog.Read.All

Ikuti langkah-langkah dalam artikel berikut ini untuk mendaftarkan aplikasi dengan izin yang diperlukan:

Mengelola AAD B2C dengan Microsoft Graph

Setelah Anda mendaftarkan aplikasi dengan izin yang sesuai, lihat bagian skrip PowerShell nanti di artikel ini untuk contoh bagaimana Anda bisa mendapatkan peristiwa aktivitas dengan skrip.

Mengakses API

Untuk mengunduh peristiwa log audit Azure Active Directory B2C melalui API, filter log pada kategori B2C. Untuk memfilter menurut kategori, gunakan filter parameter string kueri saat Anda memanggil titik akhir API pelaporan Microsoft Entra.

https://graph.microsoft.com/v1.0/auditLogs/directoryAudits?$filter=loggedByService eq 'B2C' and activityDateTime gt 2019-09-10T02:28:17Z

Skrip PowerShell

Skrip PowerShell berikut ini memperlihatkan contoh cara mengkueri API pelaporan Microsoft Entra. Setelah mengkueri API, ia mencetak peristiwa yang dicatat ke output standar, lalu menulis output JSON ke file.

Anda dapat mencoba skrip ini di Azure Cloud Shell. Pastikan untuk memperbaruinya dengan ID aplikasi, rahasia klien, dan nama penyewa Azure Active Directory B2C Anda.

# This script requires an application registration that's granted Microsoft Graph API permission
# https://learn.microsoft.com/azure/active-directory-b2c/microsoft-graph-get-started

# Constants
$ClientID       = "your-client-application-id-here"       # Insert your application's client ID, a GUID
$ClientSecret   = "your-client-application-secret-here"   # Insert your application's client secret value
$tenantdomain   = "your-b2c-tenant.onmicrosoft.com"       # Insert your Azure AD B2C tenant domain name

$loginURL       = "https://login.microsoftonline.com"
$resource       = "https://graph.microsoft.com"           # Microsoft Graph API resource URI
$7daysago       = "{0:s}" -f (get-date).AddDays(-7) + "Z" # Use 'AddMinutes(-5)' to decrement minutes, for example
Write-Output "Searching for events starting $7daysago"

# Create HTTP header, get an OAuth2 access token based on client id, secret and tenant domain
$body       = @{grant_type="client_credentials";resource=$resource;client_id=$ClientID;client_secret=$ClientSecret}
$oauth      = Invoke-RestMethod -Method Post -Uri $loginURL/$tenantdomain/oauth2/token?api-version=1.0 -Body $body

# Parse audit report items, save output to file(s): auditX.json, where X = 0 through n for number of nextLink pages
if ($oauth.access_token -ne $null) {
    $i=0
    $headerParams = @{'Authorization'="$($oauth.token_type) $($oauth.access_token)"}
    $url = "https://graph.microsoft.com/v1.0/auditLogs/directoryAudits?`$filter=loggedByService eq 'B2C' and activityDateTime gt  " + $7daysago

    # loop through each query page (1 through n)
    Do {
        # display each event on the console window
        Write-Output "Fetching data using Uri: $url"
        $myReport = (Invoke-WebRequest -UseBasicParsing -Headers $headerParams -Uri $url)
        foreach ($event in ($myReport.Content | ConvertFrom-Json).value) {
            Write-Output ($event | ConvertTo-Json)
        }

        # save the query page to an output file
        Write-Output "Save the output to a file audit$i.json"
        $myReport.Content | Out-File -FilePath audit$i.json -Force
        $url = ($myReport.Content | ConvertFrom-Json).'@odata.nextLink'
        $i = $i+1
    } while($url -ne $null)
} else {
    Write-Host "ERROR: No Access Token"
}

Berikut adalah representasi JSON dari contoh peristiwa aktivitas yang ditunjukkan sebelumnya di artikel:

{
    "id": "B2C_DQO3J_4984536",
    "category": "Authentication",
    "correlationId": "00000000-0000-0000-0000-000000000000",
    "result": "success",
    "resultReason": "N/A",
    "activityDisplayName": "Issue an id_token to the application",
    "activityDateTime": "2019-09-14T18:13:17.0618117Z",
    "loggedByService": "B2C",
    "operationType": "",
    "initiatedBy": {
        "user": null,
        "app": {
            "appId": "00000000-0000-0000-0000-000000000000",
            "displayName": null,
            "servicePrincipalId": null,
            "servicePrincipalName": "00000000-0000-0000-0000-000000000000"
        }
    },
    "targetResources": [
        {
            "id": "00000000-0000-0000-0000-000000000000",
            "displayName": null,
            "type": "User",
            "userPrincipalName": null,
            "groupType": null,
            "modifiedProperties": []
        }
    ],
    "additionalDetails": [
        {
            "key": "TenantId",
            "value": "test.onmicrosoft.com"
        },
        {
            "key": "PolicyId",
            "value": "B2C_1A_signup_signin"
        },
        {
            "key": "ApplicationId",
            "value": "00000000-0000-0000-0000-000000000000"
        },
        {
            "key": "Client",
            "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
        },
        {
            "key": "IdentityProviderName",
            "value": "facebook"
        },
        {
            "key": "IdentityProviderApplicationId",
            "value": "0000000000000000"
        },
        {
            "key": "ClientIpAddress",
            "value": "127.0.0.1"
        }
    ]
}

Langkah berikutnya

Anda dapat mengotomatiskan tugas administrasi lainnya, misalnya, mengelola akun pengguna Azure Active Directory B2C dengan Microsoft Graph.