Mengumpulkan log login Microsoft Entra ID (sebelumnya Azure Active Directory)

Versi Parser: 26.0

Didukung di:

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

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 semua izin, untuk semua API.
    • 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 mengalirkan log login Microsoft Entra ID melalui Azure Event Hub menggunakan setelan diagnostik. Google SecOps menyerap log langsung dari Event Hub menggunakan jenis feed Azure Event Hub.

Buat namespace Event Hub

Namespace Event Hub adalah container pengelolaan untuk satu atau beberapa 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 yang sudah ada atau buat yang baru
    Nama namespace Masukkan nama unik (misalnya, secops-entraid-signin)
    Location Pilih wilayah yang paling dekat dengan tenant Microsoft Entra Anda
    Tingkatan harga Standar (direkomendasikan untuk produksi)
    Unit throughput Mulai dengan 1, aktifkan Pemompaan otomatis (direkomendasikan)
  4. Klik Review + create.

  5. Tinjau ringkasan, lalu klik Buat.

  6. Tunggu hingga deployment selesai (1-2 menit).

Membuat Hub Acara

  1. Setelah namespace di-deploy, buka namespace Event Hub.
  2. Di navigasi kiri, pilih Event Hubs di bagian Entitas.
  3. Klik + Event Hub.
  4. Berikan detail konfigurasi berikut:

    Setelan Nilai
    Nama Masukkan nama unik (misalnya, entraid-signin-logs)
    Jumlah partisi 40 (direkomendasikan untuk penskalaan Google SecOps yang optimal)
    Retensi pesan 7 hari (minimum yang direkomendasikan)
    Ambil Dinonaktifkan (tidak diperlukan untuk Google SecOps)
  5. Klik Create.

Mendapatkan string koneksi Event Hub

Google SecOps memerlukan string koneksi untuk melakukan autentikasi ke Event Hub.

  1. Buka namespace Event Hub.
  2. Di navigasi kiri, pilih Kebijakan akses bersama di bagian Setelan.
  3. Klik kebijakan default RootManageSharedAccessKey.
  4. Salin Connection string - primary key.
  5. Simpan string koneksi ini dengan aman.
  • Contoh:

    Original: Endpoint=sb://secops-entraid-signin.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123==;EntityPath=entraid-signin-logs
    
    Remove EntityPath: Endpoint=sb://secops-entraid-signin.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123==
    

Opsi B: String koneksi tingkat Event Hub

  1. Buka Event Hub (bukan namespace).
  2. Di navigasi kiri, pilih Kebijakan akses bersama di bagian Setelan.
  3. Klik + Tambahkan untuk membuat kebijakan baru.
  4. Berikan detail konfigurasi berikut:
    • Nama kebijakan: Masukkan nama deskriptif (misalnya, chronicle-read)
    • Izin: Pilih Dengarkan saja (akses hanya baca)
  5. Klik Create.
  6. Klik kebijakan yang baru dibuat.
  7. Salin Connection string - primary key.
  8. Simpan string koneksi ini dengan aman.

Mengonfigurasi setelan diagnostik Microsoft Entra ID

  1. Login ke pusat admin Microsoft Entra sebagai Administrator Keamanan.
  2. Buka Entra ID > 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 (direkomendasikan).
      • ServicePrincipalSignInLogs: Login akun utama layanan (opsional).
      • ManagedIdentitySignInLogs: Login identitas terkelola (opsional).
      • ADFSSignInLogs: Log login AD FS (opsional, jika AD FS sedang digunakan).
      • RiskyUsers: Pengguna yang ditandai berisiko oleh Microsoft Entra ID Protection (opsional).
      • UserRiskEvents: Detail peristiwa login berisiko (opsional).
    • Di bagian Detail tujuan, pilih Streaming ke hub peristiwa.
    • Subscription: Pilih langganan yang berisi namespace Event Hub Anda.
    • Event hub namespace: Pilih namespace yang Anda buat (misalnya, secops-entraid-signin).
    • Nama hub peristiwa: Pilih Hub Peristiwa yang Anda buat (misalnya, entraid-signin-logs).
    • Nama kebijakan hub peristiwa: Pilih RootManageSharedAccessKey.
  5. Klik Simpan.

(Opsional) Mengonfigurasi Azure Blob Storage untuk pembuatan titik pemeriksaan

Google SecOps dapat menggunakan Azure Blob Storage untuk menyimpan titik pemeriksaan Event Hub, yang melacak peristiwa mana yang telah diproses. Tindakan ini mencegah penyerapan duplikat jika feed terganggu untuk sementara.

Membuat Akun Penyimpanan untuk pembuatan titik pemeriksaan

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

    Setelan Nilai
    Langganan Pilih langganan Azure Anda
    Grup resource Gunakan grup resource yang sama dengan Event Hub
    Nama akun penyimpanan Masukkan nama unik (misalnya, secopsaadsignin)
    Region Region yang sama dengan Event Hub
    Performa Standar
    Redundansi LRS (Penyimpanan redundan lokal)
  4. Klik Review + create.

  5. Klik Create.

Buat Blob Container

  1. Buka Akun Penyimpanan yang Anda buat.
  2. Di navigasi kiri, pilih Containers di bagian Data storage.
  3. Klik + Penampung.
  4. Berikan detail konfigurasi berikut:
    • Nama: Masukkan checkpoints.
    • Tingkat akses publik: Pribadi (tidak ada akses anonim)
  5. Klik Create.

Mendapatkan kredensial Akun Penyimpanan

  1. Di Akun Penyimpanan, pilih Kunci akses di bagian Keamanan + jaringan.
  2. Klik Tampilkan kunci.
  3. Salin dan simpan:
    • Nama akun penyimpanan: Nama akun penyimpanan Anda.
    • Kunci 1: Nilai kunci akses.

(Opsional) Buat grup konsumen khusus

Secara default, Event Hub menyediakan grup konsumen bernama $Default. Untuk lingkungan produksi, sebaiknya buat grup konsumen khusus untuk Google SecOps.

  1. Buka Event Hub (bukan namespace).
  2. Di navigasi kiri, pilih Grup konsumen di bagian Entitas.
  3. Klik + Grup konsumen.
  4. Berikan detail konfigurasi berikut:
    • Nama: Masukkan nama deskriptif (misalnya, chronicle)
  5. Klik Create.

Mengonfigurasi feed di Google SecOps untuk menyerap log login Microsoft Entra ID

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan Feed Baru.
  3. Di halaman berikutnya, klik Konfigurasi satu feed.
  4. Di kolom Nama feed, masukkan nama untuk feed (misalnya, Microsoft Entra ID Sign-In Logs - Event Hub).
  5. Pilih Microsoft Azure Event Hub sebagai Jenis sumber.
  6. Pilih Microsoft Azure AD sebagai Jenis log.
  7. Klik Berikutnya.
  8. Tentukan nilai untuk parameter input berikut:

    • String koneksi hub peristiwa: Masukkan string koneksi Event Hub yang Anda catat sebelumnya.

    Jika menggunakan string koneksi tingkat namespace:

    • Pastikan Anda telah menghapus parameter EntityPath.
    • Anda juga harus memberikan Nama hub peristiwa di kolom berikutnya.

    Jika menggunakan string koneksi tingkat hub peristiwa:

    • Gunakan string koneksi apa adanya (termasuk EntityPath).
    • Kolom Event hub name dapat dibiarkan kosong.

      • Nama hub peristiwa: Masukkan nama Hub Peristiwa (misalnya, entraid-signin-logs).

      Diperlukan jika menggunakan string koneksi tingkat namespace. Opsional jika menggunakan string koneksi tingkat hub peristiwa.

    • Grup konsumen (opsional): Masukkan nama grup konsumen.

    • Kosongkan untuk menggunakan grup konsumen $Default default.

    • Jika Anda membuat grup konsumen khusus, masukkan namanya (misalnya, chronicle).

    • Nama container penyimpanan blob (opsional): Untuk pembuatan titik pemeriksaan, masukkan nama container (misalnya, checkpoints).

    Jika menyediakan penyimpanan blob untuk pembuatan checkpoint:

    • Nama akun penyimpanan Azure: Masukkan nama akun penyimpanan dari konfigurasi pembuatan titik pemeriksaan.
    • Kunci akun penyimpanan Azure: Masukkan kunci akses dari konfigurasi pembuatan titik pemeriksaan.

    • Namespace aset: Namespace aset.

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

  9. Klik Berikutnya.

  10. Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.

Metode 2: API Pihak Ketiga

Metode ini menggunakan Microsoft Graph API untuk mengambil log login Microsoft 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 principal layanan tertentu.

Mengonfigurasi akses API Microsoft Entra ID

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)
    • Directory (tenant) ID

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:

    • Description: 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 principal 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"
    

Mengonfigurasi feed di Google SecOps untuk menyerap log login Microsoft Entra ID

Menyiapkan feed

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan Feed Baru.
  3. Di halaman berikutnya, klik Konfigurasi satu feed.
  4. Di kolom Nama feed, masukkan nama untuk feed (misalnya, Microsoft Entra ID Sign-In Logs).
  5. Pilih Third party API sebagai Source type.
  6. Pilih Microsoft Azure AD sebagai Jenis log.
  7. Klik Berikutnya.

Mengonfigurasi parameter feed

Tentukan nilai untuk parameter input berikut:

  • Client ID OAuth: ID Aplikasi (klien) dari pendaftaran aplikasi.
  • Rahasia klien OAuth: Nilai rahasia klien yang Anda salin sebelumnya.
  • Tenant ID: 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.
    • Jenis Sumber: API pihak ketiga (mekanisme untuk mengumpulkan log ke Google SecOps).
    • Namespace aset: Namespace aset yang akan dikaitkan dengan feed.
    • Label Penyerapan: Label akan ditambahkan ke semua peristiwa dari feed ini.
  1. Klik Berikutnya.
  2. Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.

Endpoint regional

Untuk deployment Microsoft Entra ID di cloud kedaulatan, 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 login yang gagal".
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 Tetapkan ke ALLOW jika hasilnya berhasil.
(Logika Parser) security_result.action Setel 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 upaya login yang 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 "".

Log Perubahan

Melihat Log Perubahan untuk parser ini

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