Mengumpulkan log login Microsoft Entra ID

Didukung di:

Dokumen ini menjelaskan cara mengumpulkan log login Microsoft Entra ID (sebelumnya Azure Active Directory) dengan menyiapkan feed Google Security Operations. Anda dapat mengonfigurasi penyerapan menggunakan dua metode: Azure Event Hub (direkomendasikan) atau Third Party API.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Akses istimewa ke portal Microsoft Azure
  • Peran Administrator Keamanan atau Administrator Global di Microsoft Entra ID (diperlukan untuk setelan diagnostik)
  • Untuk metode Third Party API, salah satu peran berikut untuk memberikan izin admin:
    • Administrator Global - dapat memberikan izin untuk izin apa pun, untuk API apa pun
    • Administrator Peran Istimewa - dapat memberikan izin untuk izin apa pun, untuk API apa pun
    • Administrator Aplikasi Cloud - dapat memberikan izin untuk semua izin untuk semua API, kecuali peran aplikasi Microsoft Graph (izin aplikasi)

Metode ini melakukan streaming log login Entra ID melalui Azure Event Hub dengan Capture diaktifkan, yang menulis data ke Azure Blob Storage. Kemudian, Google SecOps menyerap log dari Blob Storage menggunakan jenis feed Azure Blob Storage V2.

Mengonfigurasi Akun Azure Storage

Buat Akun Penyimpanan

  1. Di portal Azure, cari Storage accounts.
  2. Klik + Create.
  3. Berikan detail konfigurasi berikut:

    Setelan Nilai
    Langganan Pilih langganan Azure Anda
    Grup resource Pilih yang sudah ada atau buat yang baru
    Nama akun penyimpanan Masukkan nama unik (misalnya, secopsaadsignin)
    Region Pilih region yang paling dekat dengan namespace Event Hub Anda
    Performa Standar (direkomendasikan)
    Redundansi LRS (Locally redundant storage) atau GRS (Geo-redundant storage)
  4. Klik Review + create.

  5. Tinjau ringkasan, lalu klik Buat.

  6. Tunggu hingga deployment selesai.

Mendapatkan kredensial Akun Penyimpanan

  1. Buka Akun Penyimpanan yang Anda buat.
  2. Di navigasi kiri, pilih Kunci akses di bagian Keamanan + jaringan.
  3. Klik Tampilkan kunci.
  4. Salin dan simpan yang berikut:
    • Nama akun penyimpanan
    • Key 1 atau Key 2: Kunci akses bersama.

Buat namespace Event Hub dan Event Hub

Buat namespace Event Hub

  1. Di portal Azure, cari Event Hubs.
  2. Klik + Create.
  3. Berikan detail konfigurasi berikut:

    Setelan Nilai
    Langganan Pilih langganan Azure Anda
    Grup resource Pilih grup resource yang sama dengan akun penyimpanan Anda
    Nama namespace Masukkan nama unik (misalnya, secops-entraid-signin)
    Location Pilih region yang sama dengan akun penyimpanan Anda
    Tingkatan harga Standar (wajib untuk Event Hub Capture)
  4. Klik Tinjau + buat, lalu klik Buat.

  5. Tunggu hingga deployment selesai.

Membuat Hub Acara

  1. Buka namespace Event Hub yang Anda buat.
  2. Klik + Event Hub di bagian atas.
  3. Berikan detail konfigurasi berikut:
    • Nama: Masukkan nama (misalnya, entraid-signin-logs).
    • Jumlah partisi: 2 (default, tingkatkan untuk throughput yang lebih tinggi).
    • Kebijakan pembersihan: Hapus.
    • Waktu retensi (jam): 24 (minimum, tingkatkan jika diperlukan untuk ketahanan).
  4. Klik Tinjau + buat, lalu klik Buat.

Mengaktifkan Azure Event Hubs Capture

  1. Buka Event Hub yang Anda buat (di dalam namespace).
  2. Di navigasi sebelah kiri, pilih Capture.
  3. Setel Capture ke On.
  4. Berikan detail konfigurasi berikut:

    Setelan Nilai
    Periode waktu (menit) 5 (atau lebih rendah untuk hampir real-time)
    Jendela ukuran (MB) 300
    Penyedia Pengambilan Gambar Azure Blob Storage
    Langganan Azure Pilih langganan Anda
    Akun Penyimpanan Pilih akun penyimpanan yang Anda buat
    Blob Container Buat atau pilih penampung (misalnya, entraid-signin-capture)
  5. Klik Simpan.

Mengonfigurasi setelan diagnostik Entra ID

  1. Di portal Azure, cari Microsoft Entra ID.
  2. Di navigasi sebelah kiri, buka Monitoring & health > Diagnostic settings.
  3. Klik Tambahkan setelan diagnostik.
  4. Berikan detail konfigurasi berikut:
    • Nama setelan diagnostik: Masukkan nama deskriptif (misalnya, signin-logs-to-eventhub).
    • Di bagian Log, pilih kategori log login yang ingin Anda ekspor:
      • SignInLogs - Login pengguna interaktif.
      • NonInteractiveUserSignInLogs - Login pengguna non-interaktif (opsional, direkomendasikan).
      • ServicePrincipalSignInLogs - Login akun utama layanan (opsional).
      • ManagedIdentitySignInLogs - Login identitas terkelola (opsional).
    • Di bagian Detail tujuan, pilih Streaming ke hub peristiwa.
    • Subscription: Pilih langganan yang berisi namespace Event Hub Anda.
    • Namespace hub peristiwa: Pilih namespace yang Anda buat (misalnya, secops-entraid-signin).
    • Nama hub peristiwa: Pilih Event Hub yang Anda buat (misalnya, entraid-signin-logs).
    • Nama kebijakan hub peristiwa: Pilih RootManageSharedAccessKey.
  5. Klik Simpan.

Menyiapkan feed

Ada dua titik entri berbeda untuk menyiapkan feed di platform Google SecOps:

  • Setelan SIEM > Feed > Tambahkan Feed Baru
  • Hub Konten > Paket Konten > Mulai

Mengonfigurasi feed di Google SecOps untuk menyerap log login Entra ID

  1. Klik paket Azure Platform.
  2. Cari jenis log Azure AD.
  3. Tentukan nilai untuk kolom berikut:

    • Jenis Sumber: Microsoft Azure Blob Storage V2
    • URI Azure: Masukkan URL endpoint Blob Service dengan jalur penampung pengambilan:

      https://<storage-account>.blob.core.windows.net/entraid-signin-capture/
      

      Ganti <storage-account> dengan nama akun penyimpanan Azure Anda.

    • Opsi penghapusan sumber: Pilih opsi penghapusan sesuai preferensi Anda:

      • Jangan pernah: Tidak pernah menghapus file apa pun setelah transfer.
      • Hapus file yang ditransfer: Menghapus file setelah transfer berhasil.
      • Hapus file yang ditransfer dan direktori kosong: Menghapus file dan direktori kosong setelah transfer berhasil.
    • Usia File Maksimum: Menyertakan file yang diubah dalam jumlah hari terakhir. Defaultnya adalah 180 hari.

    • Shared key: Masukkan nilai kunci akses bersama dari Akun Penyimpanan.

    • Namespace aset: Namespace aset.

    • Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini.

  4. Klik Buat feed.

Setelah membuat feed, mungkin perlu waktu 5-10 menit sebelum log mulai muncul di Google SecOps.

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi beberapa feed untuk berbagai jenis log dalam keluarga produk ini, lihat Mengonfigurasi feed menurut produk.

Untuk mengetahui informasi selengkapnya tentang feed Google Security Operations, lihat dokumentasi feed Google Security Operations. Untuk mengetahui informasi tentang persyaratan untuk setiap jenis feed, lihat Konfigurasi feed menurut jenis.

Konfigurasi firewall Azure Storage (jika diaktifkan)

Jika Akun Azure Storage Anda menggunakan firewall, Anda harus menambahkan rentang IP Google SecOps.

  1. Di portal Azure, buka Akun Penyimpanan Anda.
  2. Pilih Networking di bagian Security + networking.
  3. Di bagian Firewalls and virtual networks, pilih Enabled from selected virtual networks and IP addresses.
  4. Di bagian Firewall, di bagian Rentang alamat, klik + Tambahkan rentang IP.
  5. Tambahkan setiap rentang IP Google SecOps dalam notasi CIDR.
  6. Klik Simpan.

Metode 2: API Pihak Ketiga

Metode ini menggunakan Microsoft Graph API untuk mengambil log login Entra ID langsung dari tenant Microsoft Anda.

Mengonfigurasi daftar IP yang diizinkan

Sebelum membuat feed, Anda harus memasukkan rentang IP Google SecOps ke dalam daftar yang diizinkan di setelan jaringan Microsoft Azure atau kebijakan Akses Bersyarat Anda.

Mendapatkan rentang IP Google SecOps

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan Feed Baru.
  3. Catat rentang IP yang ditampilkan di antarmuka pembuatan feed.
  4. Atau, ambil rentang IP secara terprogram menggunakan Feed Management API.

Mengonfigurasi Akses Bersyarat untuk identitas workload (jika diperlukan)

Jika organisasi Anda menggunakan kebijakan Akses Bersyarat yang membatasi akses berdasarkan lokasi:

  1. Di pusat admin Microsoft Entra, buka Protection > Conditional Access > Named locations.
  2. Klik + Lokasi baru.
  3. Berikan detail konfigurasi berikut:
    • Nama: Masukkan Google SecOps IP Ranges.
    • Tandai sebagai lokasi tepercaya: Opsional, berdasarkan kebijakan keamanan Anda.
    • Rentang IP: Tambahkan setiap rentang IP Google SecOps dalam notasi CIDR.
  4. Klik Create.
  5. Buka Conditional Access > Policies.
  6. Untuk kebijakan apa pun yang berlaku untuk identitas workload, konfigurasi pengecualian untuk lokasi bernama Google SecOps IP Ranges atau prinsipal layanan tertentu.

Mengonfigurasi akses API Microsoft Azure AD

Membuat pendaftaran aplikasi

  1. Login ke pusat admin Microsoft Entra atau portal Azure.
  2. Buka Identity > Applications > App registrations.
  3. Klik New registration.
  4. Berikan detail konfigurasi berikut:

    • Name: Masukkan nama deskriptif (misalnya, Google SecOps Sign-In Logs Integration).
    • Jenis akun yang didukung: Pilih Accounts in this organizational directory only (Single tenant).
    • Redirect URI: Biarkan kosong (tidak diperlukan untuk autentikasi principal layanan).
  5. Klik Daftar.

  6. Setelah pendaftaran, salin dan simpan nilai berikut:

    • ID aplikasi (klien)
    • ID Direktori (tenant)

Mengonfigurasi izin API

Integrasi ini memerlukan izin aplikasi Microsoft Graph berikut:

  1. Di pendaftaran aplikasi, buka API permissions.
  2. Klik Add a permission.
  3. Pilih Microsoft Graph > Izin aplikasi.
  4. Pilih izin berikut:
    • AuditLog.Read.All - Diperlukan untuk membaca log login.
    • Directory.Read.All - Diperlukan oleh Microsoft Graph API untuk akses log aktivitas login (masalah umum).
    • SecurityEvents.Read.All - Diperlukan oleh Google Security Operations.
  5. Klik Add permissions.
  6. Klik Grant admin consent for [Your Organization].
  7. Verifikasi bahwa kolom Status menampilkan Diberikan untuk [Organisasi Anda] untuk ketiga izin tersebut.
Izin Jenis Deskripsi
AuditLog.Read.All Aplikasi Membaca semua data log audit dan login
Directory.Read.All Aplikasi Membaca data direktori (diperlukan untuk akses API)
SecurityEvents.Read.All Aplikasi Membaca peristiwa keamanan

Buat rahasia klien

  1. Buka Certificates & secrets.
  2. Klik New client secret.
  3. Berikan detail konfigurasi berikut:

    • Deskripsi: Masukkan nama deskriptif (misalnya, Google SecOps Feed).
    • Masa berlaku: Pilih periode masa berlaku.
  4. Klik Tambahkan.

  5. Penting: Segera salin Nilai rahasia klien. Nilai ini hanya ditampilkan satu kali dan tidak dapat diambil lagi.

Memverifikasi akses API sebelum membuat feed

Sebelum membuat feed Google SecOps, verifikasi bahwa akun utama layanan dapat berhasil mengautentikasi dan mengakses Microsoft Graph API.

  • Menguji autentikasi menggunakan PowerShell

    # Replace with your actual values
    $tenantId = "your-tenant-id"
    $clientId = "your-client-id"
    $clientSecret = "your-client-secret"
    
    # Token request parameters (must be lowercase)
    $tokenBody = @{
        grant_type    = "client_credentials"
        client_id     = $clientId
        client_secret = $clientSecret
        scope         = "https://graph.microsoft.com/.default"
    }
    
    # Request access token
    $tokenEndpoint = "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token"
    $tokenResponse = Invoke-RestMethod -Method Post -Uri $tokenEndpoint -Body $tokenBody -ContentType "application/x-www-form-urlencoded"
    
    if ($tokenResponse.access_token) {
        Write-Host "✓ Successfully obtained access token" -ForegroundColor Green
    
        # Test API call to sign-ins endpoint
        $apiUrl = "https://graph.microsoft.com/v1.0/auditLogs/signIns?`$top=1"
        $headers = @{
            Authorization = "Bearer $($tokenResponse.access_token)"
        }
    
        try {
            $signInResponse = Invoke-RestMethod -Method Get -Uri $apiUrl -Headers $headers
            Write-Host "✓ Successfully accessed sign-ins API" -ForegroundColor Green
            Write-Host "Sample sign-in log retrieved successfully" -ForegroundColor Green
        }
        catch {
            Write-Host "✗ Failed to access sign-ins API" -ForegroundColor Red
            Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
        }
    }
    else {
        Write-Host "✗ Failed to obtain access token" -ForegroundColor Red
    }
    
  • Output yang diharapkan:

    ✓ Successfully obtained access token
    ✓ Successfully accessed sign-ins API
    Sample sign-in log retrieved successfully
    
  • Menguji autentikasi menggunakan curl

    # Replace with your actual values
    TENANT_ID="your-tenant-id"
    CLIENT_ID="your-client-id"
    CLIENT_SECRET="your-client-secret"
    
    # Request access token
    curl -X POST "https://login.microsoftonline.com/$TENANT_ID/oauth2/v2.0/token" \
    -H "Content-Type: application/x-www-form-urlencoded" \
    -d "grant_type=client_credentials" \
    -d "client_id=$CLIENT_ID" \
    -d "client_secret=$CLIENT_SECRET" \
    -d "scope=https://graph.microsoft.com/.default"
    
    # Test API access
    curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
    "https://graph.microsoft.com/v1.0/auditLogs/signIns?\$top=1"
    

Menyiapkan feed

Ada dua titik entri berbeda untuk menyiapkan feed di platform Google SecOps:

  • Setelan SIEM > Feed > Tambahkan Feed Baru
  • Hub Konten > Paket Konten > Mulai

Mengonfigurasi feed di Google SecOps untuk menyerap log login Microsoft Azure AD

  1. Klik paket Azure Platform.
  2. Cari jenis log Azure AD.
  3. Tentukan nilai untuk kolom berikut:

    • Jenis Sumber: API pihak ketiga (direkomendasikan)
    • Client ID OAuth: ID Aplikasi (klien) dari pendaftaran aplikasi.
    • Rahasia klien OAuth: Nilai rahasia klien yang Anda salin sebelumnya.
    • ID Tenant: ID tenant Microsoft Anda dari pendaftaran aplikasi (format UUID, misalnya, 0fc279f9-fe30-41be-97d3-abe1d7681418).
    • Jalur Lengkap API: URL endpoint Microsoft Graph REST API:

      graph.microsoft.com/v1.0/auditLogs/signIns
      
    • Endpoint Autentikasi API: Endpoint Autentikasi Microsoft Active Directory:

      login.microsoftonline.com
      

    Opsi Lanjutan:

    • Nama Feed: Nilai yang telah diisi otomatis yang mengidentifikasi feed.
    • Namespace aset: Namespace aset yang akan dikaitkan dengan feed.
    • Label Penyerapan: Label akan ditambahkan ke semua peristiwa dari feed ini.
  4. Klik Buat feed.

Setelah membuat feed, data konteks akan diambil secara berkala. Mungkin perlu waktu hingga 24 jam agar snapshot direktori awal muncul di Google SecOps.

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi beberapa feed untuk berbagai jenis log dalam keluarga produk ini, lihat Mengonfigurasi feed menurut produk.

Untuk mengetahui informasi selengkapnya tentang feed Google Security Operations, lihat dokumentasi feed Google Security Operations. Untuk mengetahui informasi tentang persyaratan untuk setiap jenis feed, lihat Konfigurasi feed menurut jenis. Jika Anda mengalami masalah saat membuat feed, hubungi dukungan Operasi Keamanan Google.

Endpoint regional

Untuk deployment Microsoft Azure AD di sovereign cloud, gunakan endpoint regional yang sesuai:

Lingkungan Cloud Jalur Lengkap API Endpoint Autentikasi API
Global graph.microsoft.com/v1.0/auditLogs/signIns login.microsoftonline.com
L4 Pemerintah AS graph.microsoft.us/v1.0/auditLogs/signIns login.microsoftonline.us
Pemerintah AS L5 (DOD) dod-graph.microsoft.us/v1.0/auditLogs/signIns login.microsoftonline.us
China (21Vianet) microsoftgraph.chinacloudapi.cn/v1.0/auditLogs/signIns login.chinacloudapi.cn

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
activityDateTime principal.event_timestamp Diuraikan dari kolom activityDateTime. Jika kolom tidak dalam format "yyyy-MM-ddTHH:mm:ss.SSSZ" atau "ISO8601" yang diharapkan, parser akan mencoba format lain seperti "MM/dd/yyyy HH:mm:ss A" atau "MM/d/yyyy HH:mm:ss A".
activityDisplayName security_result.summary Dipetakan langsung dari activityDisplayName.
additionalDetails.0.value network.http.user_agent Dipetakan langsung dari additionalDetails.0.value.
additionalDetails.1.key target.resource.attribute.labels.key Dipetakan langsung dari additionalDetails.1.key.
additionalDetails.1.value target.resource.attribute.labels.value Dipetakan langsung dari additionalDetails.1.value.
additionalInfo.[].Key network.http.user_agent, target.url Jika Key adalah userAgent, petakan Value ke network.http.user_agent dan network.http.parsed_user_agent. Jika Key adalah alertUrl, petakan Value ke target.url.
additionalInfo.[].Value network.http.user_agent, target.url Jika Key adalah userAgent, petakan Value ke network.http.user_agent dan network.http.parsed_user_agent. Jika Key adalah alertUrl, petakan Value ke target.url.
am_category metadata.description Dipetakan langsung dari am_category.
am_tenantId metadata.product_deployment_id Dipetakan langsung dari am_tenantId.
appId target.resource.attribute.labels.value Dipetakan langsung dari appId dengan kunci label sebagai "ID Aplikasi".
appDisplayName target.application Dipetakan langsung dari appDisplayName.
appliedConditionalAccessPolicies.[].displayName security_result.[].rule_name, about.[].user.user_display_name Dipetakan langsung dari appliedConditionalAccessPolicies.[].displayName.
appliedConditionalAccessPolicies.[].enforcedGrantControls security_result.[].rule_labels.value Dipetakan langsung dari appliedConditionalAccessPolicies.[].enforcedGrantControls dengan kunci label sebagai "applied_conditional_access_policies_enforced_grant_controls".
appliedConditionalAccessPolicies.[].enforcedSessionControls security_result.[].rule_labels.value Dipetakan langsung dari appliedConditionalAccessPolicies.[].enforcedSessionControls dengan kunci label sebagai "applied_conditional_access_policies_enforced_session_controls".
appliedConditionalAccessPolicies.[].id security_result.[].rule_id, about.[].user.userid Dipetakan langsung dari appliedConditionalAccessPolicies.[].id.
appliedConditionalAccessPolicies.[].result security_result.[].detection_fields.value, about.[].labels.value Dipetakan langsung dari appliedConditionalAccessPolicies.[].result dengan kunci label sebagai "Result".
authenticationDetails.[].authenticationMethod security_result.[].detection_fields.value Dipetakan langsung dari authenticationDetails.[].authenticationMethod dengan kunci label sebagai "authenticationMethod".
authenticationDetails.[].authenticationMethodDetail security_result.[].detection_fields.value Dipetakan langsung dari authenticationDetails.[].authenticationMethodDetail dengan kunci label sebagai "authenticationMethodDetail".
authenticationDetails.[].authenticationStepDateTime security_result.[].detection_fields.value Dipetakan langsung dari authenticationDetails.[].authenticationStepDateTime dengan kunci label sebagai "authenticationStepDateTime".
authenticationDetails.[].authenticationStepRequirement security_result.[].detection_fields.value Dipetakan langsung dari authenticationDetails.[].authenticationStepRequirement dengan kunci label sebagai "authenticationStepRequirement".
authenticationDetails.[].authenticationStepResultDetail security_result.[].detection_fields.value Dipetakan langsung dari authenticationDetails.[].authenticationStepResultDetail dengan kunci label sebagai "authenticationStepResultDetail".
authenticationDetails.[].succeeded security_result.action Jika nilai adalah "true", maka ALLOW, jika tidak BLOCK.
authenticationRequirement additional.fields.value.string_value Dipetakan langsung dari authenticationRequirement dengan kunci label sebagai "AuthenticationRequirement".
authenticationRequirementPolicies.[].detail security_result.detection_fields.value Dipetakan langsung dari authenticationRequirementPolicies.[].detail dengan kunci label sebagai "detail".
authenticationRequirementPolicies.[].requirementProvider security_result.detection_fields.value Dipetakan langsung dari authenticationRequirementPolicies.[].requirementProvider dengan kunci label sebagai "requirementProvider".
callerIpAddress principal.ip, principal.asset.ip Dipetakan langsung dari callerIpAddress.
category metadata.description Dipetakan langsung dari category.
clientAppUsed principal.application Dipetakan langsung dari clientAppUsed.
conditionalAccessStatus additional.fields.value.string_value Dipetakan langsung dari conditionalAccessStatus dengan kunci label sebagai "conditionalAccessStatus".
correlationId network.session_id, security_result.detection_fields.value Dipetakan langsung dari correlationId. Juga digunakan sebagai security_result.detection_fields.value dengan kunci label sebagai "CorrelationId".
createdDateTime when Kolom when berasal dari kolom createdDateTime. Tanggal dan waktu diekstrak dari kolom createdDateTime menggunakan grok, lalu digabungkan untuk membentuk kolom when.
deviceDetail.browser network.http.user_agent Dipetakan langsung dari deviceDetail.browser.
deviceDetail.deviceId principal.asset.asset_id, principal.asset_id Dipetakan langsung dari deviceDetail.deviceId dan diawali dengan "ID Perangkat:".
deviceDetail.displayName principal.asset.hostname Dipetakan langsung dari deviceDetail.displayName.
deviceDetail.isCompliant principal.asset.attribute.labels.value Dipetakan langsung dari deviceDetail.isCompliant dengan kunci label sebagai "isCompliant".
deviceDetail.isManaged principal.asset.attribute.labels.value Dipetakan langsung dari deviceDetail.isManaged dengan kunci label sebagai "isManaged".
deviceDetail.operatingSystem principal.platform_version Dipetakan langsung dari deviceDetail.operatingSystem.
deviceDetail.trustType principal.asset.attribute.labels.value Dipetakan langsung dari deviceDetail.trustType dengan kunci label sebagai "trustType".
durationMs additional.fields.value.string_value Dipetakan langsung dari durationMs dengan kunci label sebagai "durationMs".
event.id - Tidak dipetakan sesuai petunjuk (poin 3).
id metadata.product_log_id Dipetakan langsung dari id.
identity target.user.user_display_name Dipetakan langsung dari identity jika berbeda dari userId dan bukan alamat email.
initiatedBy.user.displayName principal.user.user_display_name Dipetakan langsung dari initiatedBy.user.displayName.
initiatedBy.user.id principal.user.userid, principal.user.windows_sid Dipetakan langsung dari initiatedBy.user.id.
initiatedBy.user.ipAddress principal.ip, principal.asset.ip Dipetakan langsung dari initiatedBy.user.ipAddress.
initiatedBy.user.userPrincipalName principal.user.email_addresses, principal.user.userid Dipetakan langsung dari initiatedBy.user.userPrincipalName. Jika berupa alamat email, maka dipetakan ke email_addresses, jika tidak, maka dipetakan ke userid.
Level security_result.severity_details, level Dipetakan langsung dari Level.
level security_result.severity_details, security_result.severity Dipetakan langsung dari level. Juga dipetakan ke security_result.severity setelah dikonversi menjadi huruf besar. Penanganan khusus untuk nilai "Information", "Informational", "0", "4", "Warning", "1", "3", "Error", "2", dan "Critical".
location.city principal.location.city Dipetakan langsung dari location.city.
location.countryOrRegion principal.location.country_or_region Dipetakan langsung dari location.countryOrRegion.
location.geoCoordinates.altitude additional.fields.value.string_value Dipetakan langsung dari location.geoCoordinates.altitude dengan kunci label sebagai "location_geoCoordinates_altitude".
location.geoCoordinates.latitude principal.location.region_latitude, principal.location.region_coordinates.latitude Dipetakan langsung dari location.geoCoordinates.latitude.
location.geoCoordinates.longitude principal.location.region_longitude, principal.location.region_coordinates.longitude Dipetakan langsung dari location.geoCoordinates.longitude.
location.state principal.location.state Dipetakan langsung dari location.state.
location principal.location.name Dipetakan langsung dari location.
log_type metadata.log_type Dipetakan langsung dari log_type.
networkLocationDetails.[].networkNames additional.fields.value.string_value Nilai yang digabungkan dari networkLocationDetails.[].networkNames dengan kunci label sebagai "networkName {index}".
networkLocationDetails.[].networkType security_result.detection_fields.value, additional.fields.value.string_value Dipetakan langsung dari networkLocationDetails.[].networkType dengan kunci label sebagai "networkType". Juga digunakan sebagai additional.fields.value.string_value dengan kunci label sebagai "networkType {index}".
operationName event_type Jika operationName adalah "Aktivitas login", maka USER_LOGIN. Jika operationName adalah "Tambahkan anggota ke grup", maka USER_CHANGE_PERMISSIONS.
operationType security_result.action_details Dipetakan langsung dari operationType.
properties.activity security_result.summary Dipetakan langsung dari properties.activity.
properties.activityDateTime when Diuraikan dari kolom properties.activityDateTime. Jika kolom tidak dalam format "yyyy-MM-ddTHH:mm:ss.SSSZ" atau "ISO8601" yang diharapkan, parser akan mencoba format lain seperti "MM/dd/yyyy HH:mm:ss A" atau "MM/d/yyyy HH:mm:ss A".
properties.activityDisplayName security_result.summary Dipetakan langsung dari properties.activityDisplayName.
properties.additionalInfo network.http.user_agent, target.url Diuraikan sebagai JSON dan jika kuncinya adalah userAgent, petakan nilai ke network.http.user_agent dan network.http.parsed_user_agent. Jika kuncinya adalah alertUrl, petakan nilai ke target.url.
properties.appliedConditionalAccessPolicies.[].displayName security_result.[].rule_name Dipetakan langsung dari properties.appliedConditionalAccessPolicies.[].displayName.
properties.appliedConditionalAccessPolicies.[].enforcedGrantControls security_result.[].rule_labels.value Dipetakan langsung dari properties.appliedConditionalAccessPolicies.[].enforcedGrantControls dengan kunci label sebagai "applied_conditional_access_policies_enforced_grant_controls".
properties.appliedConditionalAccessPolicies.[].enforcedSessionControls security_result.[].rule_labels.value Dipetakan langsung dari properties.appliedConditionalAccessPolicies.[].enforcedSessionControls dengan kunci label sebagai "applied_conditional_access_policies_enforced_session_controls".
properties.appliedConditionalAccessPolicies.[].id security_result.[].rule_id Dipetakan langsung dari properties.appliedConditionalAccessPolicies.[].id.
properties.appliedConditionalAccessPolicies.[].result security_result.[].detection_fields.value Dipetakan langsung dari properties.appliedConditionalAccessPolicies.[].result dengan kunci label sebagai "Result".
properties.appId appId Dipetakan langsung dari properties.appId.
properties.appDisplayName target.application Dipetakan langsung dari properties.appDisplayName.
properties.authenticationDetails.[].authenticationMethod security_result.detection_fields.value Dipetakan langsung dari properties.authenticationDetails.[].authenticationMethod dengan kunci label sebagai "authenticationMethod".
properties.authenticationDetails.[].authenticationMethodDetail security_result.detection_fields.value Dipetakan langsung dari properties.authenticationDetails.[].authenticationMethodDetail dengan kunci label sebagai "authenticationMethodDetail".
properties.authenticationDetails.[].authenticationStepDateTime security_result.detection_fields.value Dipetakan langsung dari properties.authenticationDetails.[].authenticationStepDateTime dengan kunci label sebagai "authenticationStepDateTime".
properties.authenticationDetails.[].authenticationStepRequirement security_result.detection_fields.value Dipetakan langsung dari properties.authenticationDetails.[].authenticationStepRequirement dengan kunci label sebagai "authenticationStepRequirement".
properties.authenticationDetails.[].authenticationStepResultDetail security_result.detection_fields.value Dipetakan langsung dari properties.authenticationDetails.[].authenticationStepResultDetail dengan kunci label sebagai "authenticationStepResultDetail".
properties.authenticationRequirement additional.fields.value.string_value Dipetakan langsung dari properties.authenticationRequirement dengan kunci label sebagai "AuthenticationRequirement".
properties.authenticationRequirementPolicies.[].detail security_result.detection_fields.value Dipetakan langsung dari properties.authenticationRequirementPolicies.[].detail dengan kunci label sebagai "detail".
properties.authenticationRequirementPolicies.[].requirementProvider security_result.detection_fields.value Dipetakan langsung dari properties.authenticationRequirementPolicies.[].requirementProvider dengan kunci label sebagai "requirementProvider".
properties.clientAppUsed principal.application Dipetakan langsung dari properties.clientAppUsed.
properties.conditionalAccessStatus additional.fields.value.string_value Dipetakan langsung dari properties.conditionalAccessStatus dengan kunci label sebagai "conditionalAccessStatus".
properties.crossTenantAccessType additional.fields.value.string_value Dipetakan langsung dari properties.crossTenantAccessType dengan kunci label sebagai "crossTenantAccessType".
properties.detectedDateTime additional.fields.value.string_value Dipetakan langsung dari properties.detectedDateTime dengan kunci label sebagai "detectedDateTime".
properties.detectionTimingType additional.fields.value.string_value Dipetakan langsung dari properties.detectionTimingType dengan kunci label sebagai "detectionTimingType".
properties.homeTenantId additional.fields.value.string_value Dipetakan langsung dari properties.homeTenantId dengan kunci label sebagai "homeTenantId".
properties.id metadata.product_log_id Dipetakan langsung dari properties.id.
properties.initiatedBy.user.displayName principal.user.user_display_name Dipetakan langsung dari properties.initiatedBy.user.displayName.
properties.initiatedBy.user.id principal.user.windows_sid Dipetakan langsung dari properties.initiatedBy.user.id.
properties.initiatedBy.user.ipAddress principal.ip, principal.asset.ip Dipetakan langsung dari properties.initiatedBy.user.ipAddress.
properties.initiatedBy.user.userPrincipalName principal.user.email_addresses, principal.user.userid Dipetakan langsung dari properties.initiatedBy.user.userPrincipalName. Jika berupa alamat email, maka dipetakan ke email_addresses, jika tidak, maka dipetakan ke userid.
properties.ipAddress principal.ip, principal.asset.ip Dipetakan langsung dari properties.ipAddress.
properties.isGuest additional.fields.value.string_value Dipetakan langsung dari properties.isGuest dengan kunci label sebagai "isGuest".
properties.isDeleted additional.fields.value.string_value Dipetakan langsung dari properties.isDeleted dengan kunci label sebagai "isDeleted".
properties.isProcessing additional.fields.value.string_value Dipetakan langsung dari properties.isProcessing dengan kunci label sebagai "isProcessing".
properties.lastUpdatedDateTime additional.fields.value.string_value Dipetakan langsung dari properties.lastUpdatedDateTime dengan kunci label sebagai "lastUpdatedDateTime".
properties.location.city principal.location.city Dipetakan langsung dari properties.location.city.
properties.location.countryOrRegion principal.location.country_or_region Dipetakan langsung dari properties.location.countryOrRegion.
properties.location.geoCoordinates.latitude principal.location.region_latitude, principal.location.region_coordinates.latitude Dipetakan langsung dari properties.location.geoCoordinates.latitude.
properties.location.geoCoordinates.longitude principal.location.region_longitude, principal.location.region_coordinates.longitude Dipetakan langsung dari properties.location.geoCoordinates.longitude.
properties.location.state principal.location.state Dipetakan langsung dari properties.location.state.
properties.networkLocationDetails.[].networkNames additional.fields.value.string_value Nilai yang digabungkan dari properties.networkLocationDetails.[].networkNames dengan kunci label sebagai "properties networkName {index}".
properties.networkLocationDetails.[].networkType additional.fields.value.string_value Dipetakan langsung dari properties.networkLocationDetails.[].networkType dengan kunci label sebagai "properties networkType {index}".
properties.riskEventType additional.fields.value.string_value Dipetakan langsung dari properties.riskEventType dengan kunci label sebagai "riskEventType".
properties.riskLastUpdatedDateTime additional.fields.value.string_value Dipetakan langsung dari properties.riskLastUpdatedDateTime dengan kunci label sebagai "riskLastUpdatedDateTime".
properties.riskLevel additional.fields.value.string_value Dipetakan langsung dari properties.riskLevel dengan kunci label sebagai "riskLevel".
properties.riskLevelDuringSignIn additional.fields.value.string_value Dipetakan langsung dari properties.riskLevelDuringSignIn dengan kunci label sebagai "riskLevelDuringSignIn".
properties.riskState additional.fields.value.string_value Dipetakan langsung dari properties.riskState dengan kunci label sebagai "riskState".
properties.riskDetail additional.fields.value.string_value Dipetakan langsung dari properties.riskDetail dengan kunci label sebagai "riskDetail".
properties.riskType additional.fields.value.string_value Dipetakan langsung dari properties.riskType dengan kunci label sebagai "riskType".
properties.source additional.fields.value.string_value Dipetakan langsung dari properties.source dengan kunci label sebagai "source".
properties.targetResources.0.id target.user.product_object_id Dipetakan langsung dari properties.targetResources.0.id.
properties.targetResources.modifiedProperties.0.newValue target.group.product_object_id Dipetakan langsung dari properties.targetResources.modifiedProperties.0.newValue.
properties.tokenIssuerType additional.fields.value.string_value Dipetakan langsung dari properties.tokenIssuerType dengan kunci label sebagai "tokenIssuerType".
properties.userAgent network.http.user_agent, network.http.parsed_user_agent Dipetakan langsung dari properties.userAgent.
properties.userDisplayName target.user.user_display_name Dipetakan langsung dari properties.userDisplayName.
properties.userId target.user.product_object_id Dipetakan langsung dari properties.userId.
properties.userPrincipalName target.user.userid, target.user.email_addresses Dipetakan langsung dari properties.userPrincipalName. Jika berupa alamat email, maka dipetakan ke email_addresses, jika tidak, maka dipetakan ke userid.
result security_result.action, security_result.action_details Jika result adalah "success", maka ALLOW.
resultDescription security_result.description Dipetakan langsung dari resultDescription.
resultSignature additional.fields.value.string_value Dipetakan langsung dari resultSignature dengan kunci label sebagai "resultSignature".
resultType security_result.rule_id, action, security_result.summary Jika resultType adalah "0", maka ALLOW dan "Login berhasil". Jika tidak, BLOCK dan "Terjadi kegagalan login".
resourceId target.resource.id, target.resource.product_object_id Dipetakan langsung dari resourceId.
resourceDisplayName target.resource.name, appDisplayName Dipetakan langsung dari resourceDisplayName.
riskDetail additional.fields.value.string_value Dipetakan langsung dari riskDetail dengan kunci label sebagai "riskDetail".
riskEventTypes.[]. additional.fields.value.string_value, additional.fields.value.list_value.values.string_value Nilai ditambahkan ke daftar dengan kunci sebagai "riskEventTypes" di additional.fields. Selain itu, setiap nilai ditambahkan sebagai kolom terpisah dengan kunci sebagai "riskEventType" di additional.fields.
riskEventTypes_v2.[]. additional.fields.value.list_value.values.string_value Nilai ditambahkan ke daftar dengan kunci sebagai "riskEventTypes_v2" di additional.fields.
riskLevelAggregated additional.fields.value.string_value Dipetakan langsung dari riskLevelAggregated dengan kunci label sebagai "riskLevelAggregated".
riskLevelDuringSignIn additional.fields.value.string_value Dipetakan langsung dari riskLevelDuringSignIn dengan kunci label sebagai "riskLevelDuringSignIn".
riskState additional.fields.value.string_value Dipetakan langsung dari riskState dengan kunci label sebagai "riskState".
status.additionalDetails security_result.description Dipetakan langsung dari status.additionalDetails.
status.errorCode security_result.rule_id, errorCode Dipetakan langsung dari status.errorCode.
target.displayName resourceDisplayName Dipetakan langsung dari target.displayName.
target.id resourceId Dipetakan langsung dari target.id.
target.modifiedProperties.[].displayName target.resource.attribute.labels.key Dipetakan langsung dari target.modifiedProperties.[].displayName.
target.modifiedProperties.[].newValue target.resource.attribute.labels.value, target.resource.product_object_id Dipetakan langsung dari target.modifiedProperties.[].newValue.
target.modifiedProperties.[].oldValue target.resource.attribute.labels.value Dipetakan langsung dari target.modifiedProperties.[].oldValue.
target.type target.resource.type Dipetakan langsung dari target.type.
tenantId metadata.product_deployment_id Dipetakan langsung dari tenantId.
time when Kolom when berasal dari kolom time. Tanggal dan waktu diekstrak dari kolom time menggunakan grok, lalu digabungkan untuk membentuk kolom when.
userAgent network.http.user_agent, network.http.parsed_user_agent Dipetakan langsung dari userAgent.
userDisplayName target.user.user_display_name Dipetakan langsung dari userDisplayName.
userId target.user.product_object_id Dipetakan langsung dari userId.
userPrincipalName target.user.userid, principal.administrative_domain, target.user.email_addresses Dipetakan langsung dari userPrincipalName. Jika berupa alamat email, alamat tersebut dipetakan ke email_addresses dan bagian domain diekstrak serta dipetakan ke principal.administrative_domain. Jika tidak, nilai ini dipetakan ke userid.
(Logika Parser) event.idm.is_alert, event.idm.is_significant Tetapkan ke benar (true) jika tingkatnya adalah "Kritis".
(Logika Parser) event.idm.read_only_udm.metadata.event_type Ditetapkan ke "USER_LOGIN" jika has_target_user adalah "true". Ditetapkan ke "USER_UNCATEGORIZED" jika has_principal_user adalah "true". Tetapkan ke "STATUS_UPDATE" jika has_principal adalah "true". Jika tidak, ditetapkan ke "GENERIC_EVENT".
(Logika Parser) event.idm.read_only_udm.metadata.vendor_name Tetapkan ke "Microsoft".
(Logika Parser) event.idm.read_only_udm.metadata.product_name Tetapkan ke "Azure AD".
(Logika Parser) event.idm.read_only_udm.extensions.auth.type Ditetapkan ke "SSO".
(Logika Parser) event.idm.read_only_udm.extensions.auth.mechanism Tetapkan ke "INTERACTIVE" jika isInteractive adalah "true". Jika tidak, setel ke "MECHANISM_OTHER".
(Logika Parser) security_result.action Setel ke ALLOW jika hasilnya berhasil.
(Logika Parser) security_result.action Disetel ke ALLOW jika resultType adalah 0.
(Logika Parser) security_result.action Ditetapkan ke BLOCK jika resultType bukan 0 dan bukan "".
(Logika Parser) security_result.category Ditetapkan ke "AUTH_VIOLATION" jika resultType bukan 0 dan bukan "".
(Logika Parser) security_result.description Disetel ke "Keanggotaan grup diubah" jika operationName adalah "Tambahkan anggota ke grup" dan hasilnya adalah "berhasil".
(Logika Parser) security_result.priority Ditetapkan ke "MEDIUM_PRIORITY" jika properties.riskLevelDuringSignIn adalah "medium".
(Logika Parser) security_result.summary Ditetapkan ke "Login berhasil" jika resultType adalah 0.
(Logika Parser) security_result.summary Ditetapkan ke "Terjadi login gagal" jika resultType bukan 0 dan bukan "".
(Logika Parser) security_result.summary Ditetapkan ke properties.activityDisplayName jika ada.
(Logika Parser) security_result.severity Setel ke INFORMATIONAL jika levelnya adalah "Information", "Informational", "0", atau "4". Setel ke SEDANG jika levelnya adalah "Peringatan", "1", atau "3". Disetel ke ERROR jika levelnya adalah "Error" atau "2". Disetel ke CRITICAL jika levelnya adalah "Critical".
(Logika Parser) security_result.severity Ditetapkan ke ERROR jika resultType bukan 0 dan bukan "".

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.