Mengumpulkan log Audit Microsoft Azure AD
Dokumen ini menjelaskan cara mengumpulkan log Microsoft Azure Active Directory (AD) dengan menyiapkan feed Google Security Operations.
Azure Active Directory (AZURE_AD
) kini disebut Microsoft Entra ID. Log audit Azure AD
(AZURE_AD_AUDIT
) kini menjadi log audit Microsoft Entra ID.
Untuk mengetahui informasi selengkapnya, lihat Penambahan data ke Google Security Operations.
Label penyerapan mengidentifikasi parser yang menormalisasi data log mentah ke format UDM terstruktur.
Sebelum memulai
Untuk menyelesaikan tugas di halaman ini, pastikan Anda memiliki hal berikut:
- Langganan Azure yang dapat Anda gunakan untuk login.
- Peran administrator global atau administrator Azure AD.
- Azure AD (tenant) di Azure.
Mengonfigurasi Azure AD
- Login ke portal Azure.
- Buka Beranda > Pendaftaran aplikasi, pilih aplikasi yang terdaftar atau daftarkan aplikasi jika Anda belum membuat aplikasi.
- Untuk mendaftarkan aplikasi, di bagian Pendaftaran aplikasi, klik Pendaftaran baru.
- Di kolom Nama, berikan nama tampilan untuk aplikasi Anda.
- Di bagian Supported account types, pilih opsi yang diperlukan untuk menentukan siapa yang dapat menggunakan aplikasi atau mengakses API.
- Klik Daftar.
- Buka halaman Ringkasan dan salin ID aplikasi (klien) dan ID direktori (tenant), yang diperlukan untuk mengonfigurasi feed Google Security Operations.
- Klik API permissions.
- Klik Tambahkan izin, lalu pilih Microsoft Graph di panel baru.
- Klik Izin aplikasi.
- Pilih izin AuditLog.Read.All, Directory.Read.All, dan SecurityEvents.Read.All. Pastikan izinnya adalah Izin aplikasi, bukan Izin yang didelegasikan.
- Klik Grant admin consent for default directory. Aplikasi diberi otorisasi untuk memanggil API saat diberi izin oleh pengguna atau administrator sebagai bagian dari proses izin.
- Buka Setelan > Kelola.
- Klik Sertifikat dan rahasia.
- Klik New client secret. Di kolom Value, rahasia klien akan muncul.
- Salin nilai rahasia klien. Nilai ini hanya ditampilkan pada saat pembuatan dan diperlukan untuk pendaftaran aplikasi Azure serta untuk mengonfigurasi feed Operasi Keamanan Google.
Mengonfigurasi feed di Google Security Operations untuk menyerap log Audit Azure AD
- Pilih Setelan SIEM > Feed.
- Klik Tambahkan baru.
- Masukkan nama unik untuk Nama feed.
- Pilih Third party API sebagai Source type.
- Pilih Azure AD Directory Audit sebagai Log type.
- Klik Berikutnya.
- Konfigurasikan parameter input wajib berikut:
- Client ID OAUTH: tentukan client ID yang Anda peroleh sebelumnya.
- Rahasia klien OAUTH: tentukan rahasia klien yang Anda peroleh sebelumnya.
- Tenant ID: tentukan tenant ID yang Anda peroleh sebelumnya.
- Klik Berikutnya, lalu klik Kirim.
Untuk 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 Google Security Operations.
Referensi pemetaan kolom
Parser ini memproses log Audit Direktori Azure AD dalam format JSON. Model ini mengekstrak kolom yang relevan, mengubahnya menjadi model data terpadu (UDM), dan memperkaya data dengan konteks tambahan seperti detail pengguna, alamat IP, dan hasil keamanan. Parser juga mengategorikan peristiwa berdasarkan karakteristiknya, memetakan peristiwa ke jenis peristiwa UDM tertentu untuk memudahkan analisis.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
activityDateTime | read_only_udm.metadata.event_timestamp | Pemetaan langsung dari kolom log mentah "activityDateTime". |
activityDisplayName | read_only_udm.metadata.product_event_type | Pemetaan langsung dari kolom log mentah "activityDisplayName". |
additionalDetails.ApplicationId | read_only_udm.additional.fields | Pemetaan langsung dari kolom log mentah "additionalDetails", dengan kunci "ApplicationId". |
additionalDetails.Client | read_only_udm.network.http.user_agent | Pemetaan langsung dari kolom log mentah "additionalDetails", dengan kunci "Client". |
additionalDetails.ClientIpAddress | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Pemetaan langsung dari kolom log mentah "additionalDetails", dengan kunci "ClientIpAddress". |
additionalDetails.DomainName | read_only_udm.target.hostname, read_only_udm.target.asset.hostname | Pemetaan langsung dari kolom log mentah "additionalDetails", dengan kunci "DomainName". |
additionalDetails.EmailAddress | read_only_udm.target.user.email_addresses | Pemetaan langsung dari kolom log mentah "additionalDetails", dengan kunci "EmailAddress". |
additionalDetails.GrantType | read_only_udm.additional.fields | Pemetaan langsung dari kolom log mentah "additionalDetails", dengan kunci "GrantType". |
additionalDetails.LocalAccountUsername | read_only_udm.additional.fields | Pemetaan langsung dari kolom log mentah "additionalDetails", dengan kunci "LocalAccountUsername". |
additionalDetails.PhoneNumber | read_only_udm.target.user.phone_numbers | Pemetaan langsung dari kolom log mentah "additionalDetails", dengan kunci "PhoneNumber". |
additionalDetails.PolicyId | read_only_udm.security_result.rule_name | Pemetaan langsung dari kolom log mentah "additionalDetails", dengan kunci "PolicyId". |
additionalDetails.Scopes | read_only_udm.additional.fields | Pemetaan langsung dari kolom log mentah "additionalDetails", dengan kunci "Scopes". |
additionalDetails.TenantId | read_only_udm.additional.fields | Pemetaan langsung dari kolom log mentah "additionalDetails", dengan kunci "TenantId". |
additionalDetails.VerificationMethod | read_only_udm.additional.fields | Pemetaan langsung dari kolom log mentah "additionalDetails", dengan kunci "VerificationMethod". |
appId | read_only_udm.target.process.pid | Pemetaan langsung dari kolom log mentah "appId". |
appliedConditionalAccessPolicies | read_only_udm.about | Kolom "displayName" dipetakan ke "read_only_udm.about.user.user_display_name" dan kolom "id" dipetakan ke "read_only_udm.about.user.userid". Kolom "result" dipetakan ke "read_only_udm.about.labels", dengan kunci ditetapkan ke "Result". |
category | read_only_udm.additional.fields, read_only_udm.security_result.category_details | Pemetaan langsung dari kolom log mentah "category". Kunci untuk "read_only_udm.additional.fields" ditetapkan ke "log_category". |
callerIpAddress | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Pemetaan langsung dari kolom log mentah "callerIpAddress". |
clientAppUsed | read_only_udm.principal.application | Pemetaan langsung dari kolom log mentah "clientAppUsed". |
correlationId | read_only_udm.network.session_id | Pemetaan langsung dari kolom log mentah "correlationId". |
id | read_only_udm.metadata.product_log_id | Pemetaan langsung dari kolom log mentah "id". |
identitas | read_only_udm.target.user.userid | Pemetaan langsung dari kolom log mentah "identity". |
initiatedBy.app.appId | read_only_udm.principal.resource.attribute.labels | Pemetaan langsung dari kolom log mentah "initiatedBy.app.appId". Kunci untuk "read_only_udm.principal.resource.attribute.labels" ditetapkan ke "App Id". |
initiatedBy.app.displayName | read_only_udm.principal.application | Pemetaan langsung dari kolom log mentah "initiatedBy.app.displayName". |
initiatedBy.app.servicePrincipalId | read_only_udm.principal.user.product_object_id | Pemetaan langsung dari kolom log mentah "initiatedBy.app.servicePrincipalId". |
initiatedBy.app.servicePrincipalName | read_only_udm.principal.user.userid | Pemetaan langsung dari kolom log mentah "initiatedBy.app.servicePrincipalName". |
initiatedBy.user.displayName | read_only_udm.principal.user.user_display_name, read_only_udm.principal.user.email_addresses | Jika nilai berisi "@", nilai tersebut akan diuraikan sebagai alamat email dan dipetakan ke "read_only_udm.principal.user.email_addresses". Jika tidak, kolom ini akan dipetakan ke "read_only_udm.principal.user.user_display_name". |
initiatedBy.user.id | read_only_udm.principal.user.product_object_id | Pemetaan langsung dari kolom log mentah "initiatedBy.user.id". |
initiatedBy.user.ipAddress | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Pemetaan langsung dari kolom log mentah "initiatedBy.user.ipAddress". |
initiatedBy.user.userPrincipalName | read_only_udm.principal.user.userid, read_only_udm.principal.user.email_addresses, read_only_udm.principal.administrative_domain, read_only_udm.principal.resource.attribute.labels | Jika nilai berisi "@", nilai tersebut akan diuraikan sebagai alamat email dan dipetakan ke "read_only_udm.principal.user.email_addresses". Jika tidak, kolom ini akan dipetakan ke "read_only_udm.principal.user.userid". Bagian domain dari alamat email dipetakan ke "read_only_udm.principal.administrative_domain". Nilai lengkap juga dipetakan ke "read_only_udm.principal.resource.attribute.labels" dengan kunci yang ditetapkan ke "User Principal Name". |
ipAddress | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Pemetaan langsung dari kolom log mentah "ipAddress". |
Tingkat | read_only_udm.security_result.severity, read_only_udm.security_result.severity_details | Nilai dikonversi menjadi string dan dipetakan ke "read_only_udm.security_result.severity_details". Kolom "read_only_udm.security_result.severity" ditetapkan ke "INFORMATIONAL". |
location.city | read_only_udm.principal.location.city | Pemetaan langsung dari kolom log mentah "location.city". |
location.countryOrRegion | read_only_udm.principal.location.country_or_region | Pemetaan langsung dari kolom log mentah "location.countryOrRegion". |
location.geoCoordinates.latitude | read_only_udm.principal.location.region_latitude | Pemetaan langsung dari kolom log mentah "location.geoCoordinates.latitude". |
location.geoCoordinates.longitude | read_only_udm.principal.location.region_longitude | Pemetaan langsung dari kolom log mentah "location.geoCoordinates.longitude". |
location.state | read_only_udm.principal.location.state | Pemetaan langsung dari kolom log mentah "location.state". |
loggedByService | read_only_udm.additional.fields | Pemetaan langsung dari kolom log mentah "loggedByService". Kunci untuk "read_only_udm.additional.fields" ditetapkan ke "loggedByService". |
operationName | read_only_udm.metadata.product_event_type | Pemetaan langsung dari kolom log mentah "operationName". |
operationType | read_only_udm.security_result.action_details | Pemetaan langsung dari kolom log mentah "operationType". |
properties.activityDateTime | read_only_udm.metadata.event_timestamp | Pemetaan langsung dari kolom log mentah "properties.activityDateTime". |
properties.activityDisplayName | read_only_udm.metadata.product_event_type | Pemetaan langsung dari kolom log mentah "properties.activityDisplayName". |
properties.appDisplayName | read_only_udm.target.application | Pemetaan langsung dari kolom log mentah "properties.appDisplayName". |
properties.category | read_only_udm.security_result.category_details | Pemetaan langsung dari kolom log mentah "properties.category". |
properties.id | read_only_udm.metadata.product_log_id | Pemetaan langsung dari kolom log mentah "properties.id". |
properties.initiatedBy.app.appId | read_only_udm.principal.resource.attribute.labels | Pemetaan langsung dari kolom log mentah "properties.initiatedBy.app.appId". Kunci untuk "read_only_udm.principal.resource.attribute.labels" ditetapkan ke "App Id". |
properties.initiatedBy.app.displayName | read_only_udm.principal.application | Pemetaan langsung dari kolom log mentah "properties.initiatedBy.app.displayName". |
properties.initiatedBy.app.servicePrincipalId | read_only_udm.principal.user.product_object_id | Pemetaan langsung dari kolom log mentah "properties.initiatedBy.app.servicePrincipalId". |
properties.initiatedBy.app.servicePrincipalName | read_only_udm.principal.user.userid | Pemetaan langsung dari kolom log mentah "properties.initiatedBy.app.servicePrincipalName". |
properties.initiatedBy.user.displayName | read_only_udm.principal.user.user_display_name, read_only_udm.principal.user.email_addresses | Jika nilai berisi "@", nilai tersebut akan diuraikan sebagai alamat email dan dipetakan ke "read_only_udm.principal.user.email_addresses". Jika tidak, kolom ini akan dipetakan ke "read_only_udm.principal.user.user_display_name". |
properties.initiatedBy.user.id | read_only_udm.principal.user.product_object_id | Pemetaan langsung dari kolom log mentah "properties.initiatedBy.user.id". |
properties.initiatedBy.user.ipAddress | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Pemetaan langsung dari kolom log mentah "properties.initiatedBy.user.ipAddress". |
properties.initiatedBy.user.userPrincipalName | read_only_udm.principal.user.userid, read_only_udm.principal.user.email_addresses, read_only_udm.principal.administrative_domain, read_only_udm.principal.resource.attribute.labels | Jika nilai berisi "@", nilai tersebut akan diuraikan sebagai alamat email dan dipetakan ke "read_only_udm.principal.user.email_addresses". Jika tidak, kolom ini akan dipetakan ke "read_only_udm.principal.user.userid". Bagian domain dari alamat email dipetakan ke "read_only_udm.principal.administrative_domain". Nilai lengkap juga dipetakan ke "read_only_udm.principal.resource.attribute.labels" dengan kunci yang ditetapkan ke "User Principal Name". |
properties.loggedByService | read_only_udm.additional.fields | Pemetaan langsung dari kolom log mentah "properties.loggedByService". Kunci untuk "read_only_udm.additional.fields" ditetapkan ke "loggedByService". |
properties.operationType | read_only_udm.security_result.action_details | Pemetaan langsung dari kolom log mentah "properties.operationType". |
properties.result | read_only_udm.security_result.summary | Pemetaan langsung dari kolom log mentah "properties.result". |
properties.resultReason | read_only_udm.security_result.description | Pemetaan langsung dari kolom log mentah "properties.resultReason". |
properties.userPrincipalName | read_only_udm.target.user.user_display_name | Pemetaan langsung dari kolom log mentah "properties.userPrincipalName". |
hasil | read_only_udm.security_result.summary, read_only_udm.security_result.action | Pemetaan langsung dari kolom log mentah "result". Jika nilainya "success", "read_only_udm.security_result.action" akan ditetapkan ke "ALLOW". Jika nilainya adalah "failure", "read_only_udm.security_result.action" akan ditetapkan ke "BLOCK". |
resultDescription | read_only_udm.metadata.description, read_only_udm.security_result.description | Pemetaan langsung dari kolom log mentah "resultDescription". |
resultReason | read_only_udm.security_result.description | Pemetaan langsung dari kolom log mentah "resultReason". |
resultType | read_only_udm.security_result.rule_id, read_only_udm.security_result.summary, read_only_udm.security_result.action | Pemetaan langsung dari kolom log mentah "resultType". Jika nilainya "0", "read_only_udm.security_result.action" akan ditetapkan ke "ALLOW" dan "read_only_udm.security_result.summary" akan ditetapkan ke "Login berhasil terjadi". Jika tidak, "read_only_udm.security_result.action" ditetapkan ke "BLOCK", "read_only_udm.security_result.summary" ditetapkan ke "Failed login occurred", "read_only_udm.security_result.description" ditetapkan ke nilai "resultDescription", dan "read_only_udm.security_result.severity" ditetapkan ke "ERROR". |
resourceDisplayName | read_only_udm.target.resource.name | Pemetaan langsung dari kolom log mentah "resourceDisplayName". |
resourceId | read_only_udm.additional.fields | Pemetaan langsung dari kolom log mentah "resourceId". Kunci untuk "read_only_udm.additional.fields" ditetapkan ke "resourceId". |
riskDetail | read_only_udm.additional.fields | Pemetaan langsung dari kolom log mentah "riskDetail". Kunci untuk "read_only_udm.additional.fields" ditetapkan ke "riskDetail". |
riskEventTypes | read_only_udm.additional.fields | Pemetaan langsung dari kolom log mentah "riskEventTypes". Kunci untuk "read_only_udm.additional.fields" ditetapkan ke "riskEventTypes". |
riskEventTypes_v2 | read_only_udm.additional.fields | Pemetaan langsung dari kolom log mentah "riskEventTypes_v2". Kunci untuk "read_only_udm.additional.fields" ditetapkan ke "riskEventTypes_v2". |
riskLevelAggregated | read_only_udm.additional.fields | Pemetaan langsung dari kolom log mentah "riskLevelAggregated". Kunci untuk "read_only_udm.additional.fields" ditetapkan ke "riskLevelAggregated". |
riskLevelDuringSignIn | read_only_udm.additional.fields, read_only_udm.security_result.priority | Pemetaan langsung dari kolom log mentah "riskLevelDuringSignIn". Kunci untuk "read_only_udm.additional.fields" ditetapkan ke "riskLevelDuringSignIn". Jika nilainya adalah "medium", "read_only_udm.security_result.priority" akan ditetapkan ke "MEDIUM_PRIORITY". |
riskState | read_only_udm.additional.fields | Pemetaan langsung dari kolom log mentah "riskState". Kunci untuk "read_only_udm.additional.fields" ditetapkan ke "riskState". |
targetResources.0.displayName | read_only_udm.target.resource.name, read_only_udm.target.user.user_display_name, read_only_udm.target.group.group_display_name | Jika nilai "targetResources.0.type" adalah "User" atau "ServicePrincipal", nilai tersebut akan dipetakan ke "read_only_udm.target.user.user_display_name". Jika nilai "targetResources.0.type" adalah "Group", nilai tersebut akan dipetakan ke "read_only_udm.target.group.group_display_name". Jika tidak, nilai akan dipetakan ke "read_only_udm.target.resource.name". |
targetResources.0.groupType | read_only_udm.target.group.attribute.labels | Pemetaan langsung dari kolom log mentah "targetResources.0.groupType". Kunci untuk "read_only_udm.target.group.attribute.labels" ditetapkan ke "groupType". |
targetResources.0.id | read_only_udm.target.resource.product_object_id, read_only_udm.target.user.product_object_id, read_only_udm.target.group.product_object_id | Jika nilai "targetResources.0.type" adalah "User" atau "ServicePrincipal", nilai tersebut akan dipetakan ke "read_only_udm.target.user.product_object_id". Jika nilai "targetResources.0.type" adalah "Group", nilai tersebut akan dipetakan ke "read_only_udm.target.group.product_object_id". Jika tidak, nilai akan dipetakan ke "read_only_udm.target.resource.product_object_id". |
targetResources.0.modifiedProperties.displayName | read_only_udm.additional.fields, read_only_udm.target.asset.asset_id, read_only_udm.target.user.title, read_only_udm.target.resource.attribute.roles, read_only_udm.target.user.user_display_name, read_only_udm.target.user.first_name, read_only_udm.target.user.last_name, read_only_udm.target.user.department, read_only_udm.target.user.office_address.name, read_only_udm.target.user.employee_id, read_only_udm.target.user.phone_numbers, read_only_udm.target.user.userid, read_only_udm.target.resource.attribute.labels, read_only_udm.src.resource.attribute.labels | Nilai dipetakan ke "read_only_udm.additional.fields" dengan kunci yang ditetapkan ke "targetResources.modifiedProperties.displayname {index}". Jika nilainya adalah "TargetId.DeviceId", nilai "targetResources.0.modifiedProperties.newValue" akan dipetakan ke "read_only_udm.target.asset.asset_id" dengan awalan "ID Perangkat:". Jika nilainya adalah "DisplayName" atau "jobTitle", nilai "targetResources.0.modifiedProperties.newValue" akan dipetakan ke "read_only_udm.target.user.title". Jika nilainya adalah "WellKnownObjectName", nilai "targetResources.0.modifiedProperties.newValue" akan dipetakan ke "read_only_udm.target.resource.attribute.roles" dengan kunci yang ditetapkan ke "name". Jika nilainya adalah "displayName" dan "targetResources.0.displayName" adalah null, nilai "targetResources.0.modifiedProperties.newValue" akan dipetakan ke "read_only_udm.target.user.user_display_name". Jika nilainya adalah "givenName", nilai "targetResources.0.modifiedProperties.newValue" akan dipetakan ke "read_only_udm.target.user.first_name". Jika nilainya adalah "surname", nilai "targetResources.0.modifiedProperties.newValue" akan dipetakan ke "read_only_udm.target.user.last_name". Jika nilainya adalah "department", nilai "targetResources.0.modifiedProperties.newValue" akan dipetakan ke "read_only_udm.target.user.department". Jika nilainya adalah "physicalDeliveryOfficeName", nilai "targetResources.0.modifiedProperties.newValue" akan dipetakan ke "read_only_udm.target.user.office_address.name". Jika nilainya adalah "employeeId", nilai "targetResources.0.modifiedProperties.newValue" akan dipetakan ke "read_only_udm.target.user.employee_id". Jika nilainya adalah "mobile", nilai "targetResources.0.modifiedProperties.newValue" akan dipetakan ke "read_only_udm.target.user.phone_numbers". Jika nilainya adalah "MailNickname", nilai "targetResources.0.modifiedProperties.newValue" akan dipetakan ke "read_only_udm.target.user.userid". Jika tidak, nilai "targetResources.0.modifiedProperties.newValue" akan dipetakan ke "read_only_udm.target.resource.attribute.labels" dengan kunci yang ditetapkan ke nilai "targetResources.0.modifiedProperties.displayName". Nilai "targetResources.0.modifiedProperties.oldValue" dipetakan ke "read_only_udm.src.resource.attribute.labels" dengan kunci yang ditetapkan ke nilai "targetResources.0.modifiedProperties.displayName". |
targetResources.0.modifiedProperties.newValue | read_only_udm.target.asset.asset_id, read_only_udm.target.user.title, read_only_udm.target.resource.attribute.roles, read_only_udm.target.user.user_display_name, read_only_udm.target.user.first_name, read_only_udm.target.user.last_name, read_only_udm.target.user.department, read_only_udm.target.user.office_address.name, read_only_udm.target.user.employee_id, read_only_udm.target.user.phone_numbers, read_only_udm.target.user.userid, read_only_udm.target.resource.attribute.labels, read_only_udm.additional.fields | Jika nilai "targetResources.0.modifiedProperties.displayName" adalah "TargetId.DeviceId", nilai tersebut akan dipetakan ke "read_only_udm.target.asset.asset_id" dengan awalan "Device ID:". Jika nilai "targetResources.0.modifiedProperties.displayName" adalah "DisplayName" atau "jobTitle", nilai tersebut akan dipetakan ke "read_only_udm.target.user.title". Jika nilai "targetResources.0.modifiedProperties.displayName" adalah "WellKnownObjectName", nilai tersebut akan dipetakan ke "read_only_udm.target.resource.attribute.roles" dengan kunci yang ditetapkan ke "name". Jika nilai "targetResources.0.modifiedProperties.displayName" adalah "displayName" dan "targetResources.0.displayName" adalah null, nilai tersebut akan dipetakan ke "read_only_udm.target.user.user_display_name". Jika nilai "targetResources.0.modifiedProperties.displayName" adalah "givenName", nilai tersebut akan dipetakan ke "read_only_udm.target.user.first_name". Jika nilai "targetResources.0.modifiedProperties.displayName" adalah "surname", nilai tersebut akan dipetakan ke "read_only_udm.target.user.last_name". Jika nilai "targetResources.0.modifiedProperties.displayName" adalah "department", nilai tersebut akan dipetakan ke "read_only_udm.target.user.department". Jika nilai "targetResources.0.modifiedProperties.displayName" adalah "physicalDeliveryOfficeName", nilai tersebut akan dipetakan ke "read_only_udm.target.user.office_address.name". Jika nilai "targetResources.0.modifiedProperties.displayName" adalah "employeeId", nilai tersebut akan dipetakan ke "read_only_udm.target.user.employee_id". Jika nilai "targetResources.0.modifiedProperties.displayName" adalah "mobile", nilai tersebut akan dipetakan ke "read_only_udm.target.user.phone_numbers". Jika nilai "targetResources.0.modifiedProperties.displayName" adalah "MailNickname", nilai tersebut akan dipetakan ke "read_only_udm.target.user.userid". Jika tidak, nilai akan dipetakan ke "read_only_udm.target.resource.attribute.labels" dengan kunci yang ditetapkan ke nilai "targetResources.0.modifiedProperties.displayName". Nilai ini juga dipetakan ke "read_only_udm.additional.fields" dengan kunci yang ditetapkan ke "targetResources.modifiedProperties.newValue {index}". |
targetResources.0.modifiedProperties.oldValue | read_only_udm.src.resource.attribute.labels, read_only_udm.additional.fields | Nilai dipetakan ke "read_only_udm.src.resource.attribute.labels" dengan kunci yang ditetapkan ke nilai "targetResources.0.modifiedProperties.displayName". Nilai ini juga dipetakan ke "read_only_udm.additional.fields" dengan kunci yang ditetapkan ke "targetResources.modifiedProperties.oldValue {index}". |
targetResources.0.type | read_only_udm.target.resource.resource_subtype, read_only_udm.target.resource.resource_type, read_only_udm.target.user.userid, read_only_udm.target.user.product_object_id, read_only_udm.target.user.user_display_name, read_only_udm.target.group.product_object_id, read_only_udm.target.group.group_display_name | Pemetaan langsung dari kolom log mentah "targetResources.0.type". Jika nilainya adalah "ServicePrincipal", "read_only_udm.target.resource.resource_type" akan ditetapkan ke "SERVICE_ACCOUNT". Jika nilainya "Perangkat", "read_only_udm.target.resource.resource_type" akan ditetapkan ke "DEVICE". Jika tidak, "read_only_udm.target.resource.resource_type" ditetapkan ke "UNSPECIFIED". Jika nilainya adalah "User" atau "ServicePrincipal", nilai "targetResources.0.userPrincipalName" akan dipetakan ke "read_only_udm.target.user.userid", nilai "targetResources.0.id" akan dipetakan ke "read_only_udm.target.user.product_object_id", dan nilai "targetResources.0.displayName" akan dipetakan ke "read_only_udm.target.user.user_display_name". Jika nilainya adalah "Group", nilai "targetResources.0.id" akan dipetakan ke "read_only_udm.target.group.product_object_id" dan nilai "targetResources.0.displayName" akan dipetakan ke "read_only_udm.target.group.group_display_name". |
targetResources.0.userPrincipalName | read_only_udm.target.user.userid, read_only_udm.target.user.email_addresses | Jika nilai berisi "@", nilai tersebut akan diuraikan sebagai alamat email dan dipetakan ke "read_only_udm.target.user.email_addresses". Jika tidak, atribut ini akan dipetakan ke "read_only_udm.target.user.userid". |
targetResources.displayName | read_only_udm.about.resource.name, read_only_udm.about.user.userid, read_only_udm.about.user.user_display_name, read_only_udm.about.group.group_display_name, read_only_udm.about.group.attribute.labels | Jika nilai "targetResources.type" adalah "User" atau "ServicePrincipal", nilai tersebut akan dipetakan ke "read_only_udm.about.user.user_display_name" dan "read_only_udm.about.user.userid". Jika nilai "targetResources.type" adalah "Group", nilai tersebut akan dipetakan ke "read_only_udm.about.group.group_display_name". Nilai "targetResources.groupType" dipetakan ke "read_only_udm.about.group.attribute.labels" dengan kunci yang ditetapkan ke "groupType". Jika tidak, nilai akan dipetakan ke "read_only_udm.about.resource.name". |
targetResources.groupType | read_only_udm.about.group.attribute.labels, read_only_udm.target.user.group_identifiers | Pemetaan langsung dari kolom log mentah "targetResources.groupType". Kunci untuk "read_only_udm.about.group.attribute.labels" ditetapkan ke "groupType". |
targetResources.id | read_only_udm.about.resource.product_object_id, read_only_udm.about.user.product_object_id, read_only_udm.about.group.product_object_id | Jika nilai "targetResources.type" adalah "User" atau "ServicePrincipal", nilai tersebut akan dipetakan ke "read_only_udm.about.user.product_object_id". Jika nilai "targetResources.type" adalah "Group", nilai tersebut akan dipetakan ke "read_only_udm.about.group.product_object_id". Jika tidak, nilai akan dipetakan ke "read_only_udm.about.resource.product_object_id". |
targetResources.modifiedProperties.displayName | read_only_udm.additional.fields | Nilai dipetakan ke "read_only_udm.additional.fields" dengan kunci yang ditetapkan ke "targetResources.modifiedProperties.displayname {index}". |
targetResources.modifiedProperties.newValue | read_only_udm.additional.fields | Nilai dipetakan ke "read_only_udm.additional.fields" dengan kunci ditetapkan ke "targetResources.modifiedProperties.newValue {index}". |
targetResources.modifiedProperties.oldValue | read_only_udm.additional.fields | Nilai dipetakan ke "read_only_udm.additional.fields" dengan kunci ditetapkan ke "targetResources.modifiedProperties.oldValue {index}". |
targetResources.type | read_only_udm.about.resource.resource_subtype, read_only_udm.about.resource.resource_type, read_only_udm.about.user.userid, read_only_udm.about.user.product_object_id, read_only_udm.about.user.user_display_name, read_only_udm.about.group.product_object_id, read_only_udm.about.group.group_display_name | Pemetaan langsung dari kolom log mentah "targetResources.type". Jika nilainya adalah "ServicePrincipal", "read_only_udm.about.resource.resource_type" akan ditetapkan ke "SERVICE_ACCOUNT". Jika nilainya "Perangkat", "read_only_udm.about.resource.resource_type" akan ditetapkan ke "DEVICE". Jika tidak, "read_only_udm.about.resource.resource_type" ditetapkan ke "UNSPECIFIED". Jika nilainya adalah "User" atau "ServicePrincipal", nilai "targetResources.userPrincipalName" akan dipetakan ke "read_only_udm.about.user.userid", nilai "targetResources.id" akan dipetakan ke "read_only_udm.about.user.product_object_id", dan nilai "targetResources.displayName" akan dipetakan ke "read_only_udm.about.user.user_display_name". Jika nilainya adalah "Group", nilai "targetResources.id" akan dipetakan ke "read_only_udm.about.group.product_object_id" dan nilai "targetResources.displayName" akan dipetakan ke "read_only_udm.about.group.group_display_name". |
targetResources.userPrincipalName | read_only_udm.about.user.userid, read_only_udm.about.user.email_addresses | Jika nilai berisi "@", nilai tersebut akan diuraikan sebagai alamat email dan dipetakan ke "read_only_udm.about.user.email_addresses". Jika tidak, kolom ini akan dipetakan ke "read_only_udm.about.user.userid". |
tenantId | read_only_udm.additional.fields | Pemetaan langsung dari kolom log mentah "tenantId". Kunci untuk "read_only_udm.additional.fields" ditetapkan ke "tenantId". |
waktu | read_only_udm.metadata.event_timestamp | Pemetaan langsung dari kolom log mentah "time". |
userId | read_only_udm.target.user.product_object_id | Pemetaan langsung dari kolom log mentah "userId". Nilai ditetapkan berdasarkan nilai kolom lain, termasuk "activityDisplayName", "principal_userid_present", "target_userid_present", "principal_ip_present", "loggedByService", dan "category". Logika untuk menetapkan nilai bersifat kompleks dan bergantung pada kombinasi nilai tertentu di kolom ini. Nilai ditetapkan ke "SSO" jika nilai "operationName" adalah "Aktivitas login". Nilai ditetapkan ke "Microsoft". Nilai ditetapkan ke "Azure AD Directory Audit". Nilai ditetapkan ke "AZURE_AD_AUDIT". |
Perubahan
2024-07-30
- Jika "principal.user.userid" atau "target.user.userid" ada, hanya pemetaan "metadata.event_type" ke "USER_CHANGE_PERMISSIONS".
2024-06-26
- Delta yang dipetakan antara "targetResources.modifiedProperties.newValue" dan "targetResources.modifiedProperties.oldValue" ke "additional.fields".
2024-06-10
- Jika "initiatedBy.user.ipAddress" memiliki IP, tetapkan "principal_ip_present" ke "true".
- Menambahkan kondisi untuk menetapkan "metadata.event_type" ke "USER_DELETION" hanya jika "principal_ip_present" adalah "true".
2024-06-03
- Menambahkan blok JSON untuk mengurai log yang tidak diuraikan.
- Menambahkan pemeriksaan bersyarat untuk "event_type" "USER_DELETION".
2024-05-20
Perbaikan Bug:
- Mengubah pemetaan "targetResource".
- Memetakan iterasi pertama "targetResource" ke "target" dan iterasi berikutnya dari "targetResource" ke "about".
- Mengubah nama kunci kolom "loggedByService" menjadi "loggedByService" dari "log_Service".
- Mengubah pemetaan "resourceId" dari "target.resource.id" menjadi "additional_fields".
- Jika "targetResources.type" = "Application", "Policy", "Role", "Directory", "RoleAssignment", "Request", "Provider", "Other", lalu petakan "targetResources.displayName" ke "noun.resource.name"; "targetResources.id" ke "noun.resource.product_object_id"; "noun.resource.resource_type" = "UNSPECIFIED" dan "targetResource.type" ke "noun.resource.resource_subtype".
- Jika "targetResources.type" = "User", maka pemetaan "targetResources.displayName" ke "noun.resource.name"; "targetResources.id" ke "noun.resource.product_object_id"; "noun.resource.resource_type" = "UNSPECIFIED"; "targetResource.type" ke "noun.resource.resource_subtype"; "targetResources.displayName" ke "noun.user.user_display_name"; "targetResources.id" ke "noun.user.product_object_id"; "targetResources.userPrincipalName" ke "noun.user.userid".
- Jika "targetResources.type" = "ServicePrincipal", maka pemetaan "targetResources.displayName" ke "noun.resource.name", "targetResources.id" ke "noun.resource.product_object_id", "noun.resource.resource_type" = "SERVICE_ACCOUNT", "targetResource.type" ke "noun.resource.resource_subtype", "targetResources.displayName" ke "noun.user.user_display_name", "targetResources.id" ke "noun.user.product_object_id", dan "targetResources.userPrincipalName" ke "noun.user.userid".
- Jika "targetResources.type" = "Group", maka pemetaan "targetResources.displayName" ke "noun.resource.name", "targetResources.id" ke "noun.resource.product_object_id", "noun.resource.resource_type" = "UNSPECIFIED" , "targetResource.type" ke "noun.resource.resource_subtype", "targetResources.displayName" ke "noun.group.group_display_name", "targetResources.id" ke "noun.group.product_object_id", dan "groupType" ke "noun.group.attribute.labels".
2024-05-17
- Memetakan "initiatedBy.user.id" ke "principal.user.product_object_id".
- Memetakan "initiatedBy.user.userPrincipalName" ke "principal.user.userid".
2024-03-18
- Menampilkan kolom "targetResources.modifiedProperties.displayname", "targetResources.modifiedProperties.newValue", dan "targetResources.modifiedProperties.oldValue" meskipun nilainya null.
- Memetakan "callerIpAddress" ke "principal.ip".
2024-03-12
Perbaikan Bug:
- Pemetaan yang disinkronkan dari pemetaan log format amplop Azure Monitor ke log format Microsoft Graph API.
- Memetakan "target.resource.resource_type" berdasarkan "targetResources.type".
- Memetakan "targetResources.type" ke "target.resource.type".
2024-03-04
- Memetakan "user_principal_name" dari "initiatedBy.user.userPrincipalName" ke "principal.resource.attribute.labels".
- Memetakan "domain" dari "initiatedBy.user.userPrincipalName" ke "principal.administrative_domain".
- Memetakan "loggedByService" dan "properties.loggedByService" ke "additional.fields".
- Mengubah pemetaan "initiatedBy.user.id" dari "principal.user.product_object_id" menjadi "principal.user.userid".
- Memetakan "tgt_user_principal_name" dari "target.userPrincipalName" ke "target.resource.attribute.labels".
- "domain" yang dipetakan dari "target.userPrincipalName" ke "target.administrative_domain".
- Memetakan "category" ke "additional.fields".
- Jika "additionalDetails[n].key" adalah "AppId", maka pemetakan "additionalDetails[n].value" ke "target.process.pid".
- Jika "additionalDetails[n].key" adalah "User-Agent", petakan "additionalDetails[n].value" ke "network.http.user_agent" dan "network.http.parsed_user_agent".
- Memetakan "metadata.event_type" berdasarkan "loggedByService", "category", dan "activityDisplayName".
- Memetakan "targetResources.modifiedProperties.displayname", "targetResources.modifiedProperties.newValue", dan "targetResources.modifiedProperties.oldValue" ke "additional.fields".
2024-02-21
- Menambahkan pemeriksaan bersyarat jika "principal.user.userid" ada sebelum menetapkan "metadata.event_type" ke "USER_CREATION".
- Mengubah pemetaan "initiatedBy.user.id" dari "principal.user.userid" menjadi "principal.user.product_object_id".
- Mengubah pemetaan "initiatedBy.app.servicePrincipalId" dari "principal.user.userid" menjadi "principal.user.product_object_id".
- Mengubah pemetaan "initiatedBy.app.servicePrincipalName" dari "principal.user.user_display_name" menjadi "principal.user.userid".
- Mengubah pemetaan "properties.initiatedBy.user.id" dari "principal.user.userid" menjadi "principal.user.product_object_id".
- Mengubah pemetaan "properties.initiatedBy.app.servicePrincipalId" dari "principal.user.userid" menjadi "principal.user.product_object_id".
- Mengubah pemetaan "properties.initiatedBy.app.servicePrincipalName" dari "principal.user.user_display_name" menjadi "principal.user.userid".
- Jika nilai "targetResourceType" mirip dengan "User" atau "ServicePrincipal", ubah pemetaan "target.id" dari "target.user.userid" menjadi "target.user.product_object_id".
- Jika nilai "targetResourceType" mirip dengan "User" atau "ServicePrincipal", petakan "target.userPrincipalName" ke "target.user.userid".
- Jika nilai "targetResourceType" mirip dengan "User" atau "ServicePrincipal", maka petakan "target.displayName" ke "target.user.user_display_name".
2024-02-12
- Menambahkan pemeriksaan bersyarat untuk "modifiedProperty.displayName", "modifiedProperty.newValue", dan "modifiedProperty.oldValue".
- Jika "targetResource.id" adalah "User" atau "ServicePrincipal", petakan ke "target.user.userid".
2024-01-08
Perbaikan Bug:
- Menambahkan pola Grok untuk memvalidasi nilai email sebelum memetakan ke "principal.user.email_addresses" dan "target.user.email_addresses".
2023-12-19
- Memetakan "targetResource.modifiedProperties.newValue", "targetResource.modifiedProperties.oldValue", dan "targetResource.modifiedProperties.displayName" ke "additional.fields".
2023-11-23
- Memetakan kolom "targetResources.0.modifiedProperties.newValue/oldValue" ke "event.idm.read_only_udm.additional.fields".
- Menambahkan pemeriksaan format ip_address ke "initiatedBy.user.ipAddress" sebelum pemetaan ke udm.
2023-10-16
- mengubah pemetaan berikut:
- Mengubah 'metadata.event_type' dari 'USER_UNCATEGORIZED' menjadi 'USER_RESOURCE_ACCESS' dengan 'target.type bukan 'user'.
- Mengubah pemetaan 'target.id' dari 'principal.user.userid, menjadi 'principal.user.group_or_identifiers' dengan 'target.type' bukan 'user'.
- Memetakan kolom yang telah dipetakan ke 'target.resource.id' ke 'target.resource.product_object_id' juga karena 'target.resource.id' tidak digunakan lagi.
2023-08-03
- mengubah pemetaan berikut:
- Mengubah 'metadata.event_type' dari 'USER_UNCATEGORIZED' menjadi 'USER_CREATION' dengan 'activityDisplayName' adalah 'Tambahkan pengguna'.
- Mengubah pemetaan 'activityDisplayName' dari 'metadata.description, menjadi 'metadata.product_event_type'.
- Memetakan 'metadata.event_type' yang sesuai dengan 'activityDisplayName' adalah 'Tambahkan anggota ke grup', 'Tambahkan pemilik ke grup'.
- Semua kolom di bagian 'targetResources' harus menjadi bagian dari kolom target.user. UDM.
- 'target.user.userid' dipetakan ke 'id' yang benar di bagian 'targetResource'.
- Untuk 'activityDisplayName' sebagai 'Tambahkan anggota ke peran di luar PIM (permanen)' di activityDisplayName' yang dipetakan 'target.user.xxx' saat jenis resource adalah 'Pengguna'.
- Untuk 'activityDisplayName' sebagai 'Add Member to Role' yang memetakan 'Role.WellKnownObjectName' ke 'target.resource.attribute.roles.name'.
2023-07-24
- memetakan "targetresources.modifiedproperties.newvalue" ke "target.user.title" jika nilai "targetresources.modifiedproperties.displayname" berisi "role.displayname".
2023-05-25
- Perbaikan bug: Mengubah pemetaan dari "target.resource.attribute.labels.value" menjadi "target.user.userid" saat "targetResources.modifiedProperties.displayName" sama dengan "mailNickname".
2023-05-05
- mengubah pemetaan berikut-
- Mengubah pemetaan dari "target.resource.attribute.labels.value" menjadi "target.user.product_object_id" saat "targetResources.modifiedProperties.displayName" sama dengan "objectId".
- Mengubah pemetaan dari "target.resource.attribute.labels.value" menjadi "target.user.user_display_name" saat "targetResources.modifiedProperties.displayName" sama dengan "displayName".
- Mengubah pemetaan dari "target.resource.attribute.labels.value" menjadi "target.user.first_name" saat "targetResources.modifiedProperties.displayName" sama dengan "givenName".
- Mengubah pemetaan dari "target.resource.attribute.labels.value" menjadi "target.user.title" saat "targetResources.modifiedProperties.displayName" sama dengan "jobTitle".
- Mengubah pemetaan dari "target.resource.attribute.labels.value" menjadi "target.user.email_addresses" saat "targetResources.modifiedProperties.displayName" sama dengan "mail".
- Mengubah pemetaan dari "target.resource.attribute.labels.value" menjadi "target.user.last_name" saat "targetResources.modifiedProperties.displayName" sama dengan "surname".
- Mengubah pemetaan dari "target.resource.attribute.labels.value" menjadi "target.user.department" saat "targetResources.modifiedProperties.displayName" sama dengan "department".
- Mengubah pemetaan dari "target.resource.attribute.labels.value" menjadi "target.user.office_address.name" saat "targetResources.modifiedProperties.displayName" sama dengan "physicalDeliveryOfficeName".
- Mengubah pemetaan dari "target.resource.attribute.labels.value" menjadi "target.user.employee_id" saat "targetResources.modifiedProperties.displayName" sama dengan "employeeId".
- Mengubah pemetaan dari "target.resource.attribute.labels.value" menjadi "target.user.phone_numbers" saat "targetResources.modifiedProperties.displayName" sama dengan "mobile".
2023-04-18
- "initiatedBy.user.userPrincipalName" dipetakan ke "principal.user.user_display_name" atau "principal.user.userid" atau "principal.user.email_addresses".
- "targetResources.type" dipetakan ke "target.resource.attribute.labels".
2023-04-12
Peningkatan -
- Memetakan "initiatedBy.user.userPrincipalName" ke "principal.user.email_addresses" dan "event_type" ke "USER_UNCATEGORIZED".
- jika "initiatedBy.user.userPrincipalName" bukan null.
- Jika "targetResources.modifiedProperties.displayName" adalah "userPrincipalName", petakan ke "principal.user.email_addresses".
- Memetakan "event_type" ke "USER_UNCATEGORIZED" saat "activityDisplayName" berada di ["Issue an id_token to the application", "Set Company Information"].
2023-02-20
Perbaikan Bug -
- Memetakan beberapa alamat IP yang berasal dari kunci "additionalDetails.ClientIpAddress" ke "principal.ip".
- Memetakan metadata.event_type sebagai "USER_UNCATEGORIZED" jika "activityDisplayName" sama dengan "Delete user" dan kolom "initiatedBy.user.userPrincipalName" tidak ada.
2023-02-02
- Peningkatan - Memetakan hal berikut saat "activityDisplayName" sama dengan "Delete user" :
- Memetakan "event_type" ke "USER_DELETION".
- Memetakan "initiatedBy.user.userPrincipalName" ke "principal.user.userid".
2022-11-24
Peningkatan -
- Memetakan "modifiedProperties.newValue" ke "target.resource.attribute.labels".
- Memetakan "modifiedProperties.oldValue" ke "src.resource.attribute.labels".
2022-11-07
Peningkatan -
- Memetakan "target.modifiedProperties.TargetId.DeviceId" ke "event.idm.read_only_udm.target.asset.asset_id".
16-09-2022
Peningkatan -
- Memetakan "properties.initiatedBy.user.ipAddress" ke "principal.ip".
- Memetakan "properties.initiatedBy.user.userPrincipalName" ke "principal.user.userid".
- Memetakan "properties.resultReason" ke "security_result.description".
- Memetakan "identity" ke "target.user.userid".
- Memetakan "operationName" ke "metadata.product_event_type".
- Memetakan "metadata.event_type" ke "USER_UNCATEGORIZED" dengan "properties.activityDisplayName" adalah "Get resource properties of a tenant".
- Memetakan "category" dan "properties.category" ke "security_result.category_details".
- Memetakan "resultDescription" ke "metadata.description".
- Memetakan "resultType" ke "security_result.rule_id".
2022-06-20
- Peningkatan - Meningkatkan parser untuk mengurai log dengan kategori : 'AuditLogs' dan 'SignInLogs' dengan menambahkan pemetaan berikut :
- Memetakan kolom 'properties.id' ke 'metadata.product_log_id'.
- Memetakan kolom 'properties.loggedByService' ke 'target.application'.
- Memetakan kolom 'Level' ke 'security_result.severity' dan 'security_result.severity_details'.
- Memetakan kolom 'properties.result' ke 'security_result.summary' dan 'security_result.action'.
- Memetakan kolom 'properties.operationType' ke 'security_result.action_details'.
- Memetakan kolom 'properties.activityDisplayName' ke 'metadata.description'.
- Memetakan kolom 'properties.category' ke 'metadata.product_event_type'.
- Memetakan kolom 'properties.resultReason' ke 'security_result.description'.
- Memetakan kolom 'properties.initiatedBy.app.displayName' ke 'principal.application'.
- Memetakan kolom 'properties.ipAddress' ke 'principal.ip'.
- Memetakan kolom 'properties.initiatedBy.app.servicePrincipalId' ke 'principal.user.userid'.
- Memetakan kolom 'properties.initiatedBy.app.servicePrincipalName' ke 'principal.user.user_display_name'.
- Memetakan kolom 'properties.appId' dan 'properties.initiatedBy.app.appId' ke 'principal.resource.attribute.labels'.
- Memetakan kolom 'properties.location.city' ke 'principal.location.city'.
- Memetakan kolom 'properties.location.state' ke 'principal.location.state'.
- Memetakan kolom 'properties.location.countryOrRegion' ke 'principal.location.country_or_region'.
- Memetakan kolom 'properties.location.geoCoordinates.latitude' ke 'principal.location.region_latitude'.
- Memetakan kolom 'properties.location.geoCoordinates.longitude' ke 'principal.location.region_longitude'.
- Memetakan kolom 'properties.targetResources.modifiedProperties' ke 'target.user.attribute.labels'.
- Memetakan kolom 'targetResources.displayName' ke 'target.user.user_display_name'.
- Memetakan kolom 'targetResources.id' ke 'target.user.userid'.
- Memetakan kolom 'properties.additionalDetails', 'properties.riskDetail', 'properties.riskEventTypes', 'properties.riskEventTypes_v2', 'properties.riskLevelAggregated', 'properties.riskLevelDuringSignIn', 'properties.riskState', 'properties.conditionalAccessStatus', 'tenantId' ke 'additional.fields'.
- Memetakan kolom 'operationVersion' ke 'metadata.product_version'.
- Memetakan kolom 'properties.appliedConditionalAccessPolicies.displayName' ke 'about.user.user_display_name'.
- Memetakan kolom 'properties.appliedConditionalAccessPolicies..id' ke 'about.user.userid'.
- Memetakan kolom 'properties.appliedConditionalAccessPolicies.result' ke 'about.labels'.