Schema reference
Cross-table field intersections for pivoting and hunting across Microsoft 365 Defender Advanced Hunting tables. Every field lists every table that contains it — grep for a table name to find every pivot it supports, or grep for a field name to find every table it reaches.
Physical reference only: a shared column name does not prove shared semantics, matching values, uniqueness, cardinality, or join safety. Use
xdr schema pivot <Table.Column>andxdr schema path <Source> <Target>for reviewed semantic routes. Seedocs/schema_graph.md.
Generated semantic route inventory
Section titled “Generated semantic route inventory”This table is generated from the packaged graph. Tenant availability is
reported at runtime by xdr schema pivot and xdr schema path.
| Source | Target | Relationship | Workflow | Cardinality | Confidence | Status |
|---|---|---|---|---|---|---|
| DeviceFileEvents.DeviceName | DeviceInfo.DeviceName | semantic-equivalent | query → extract → query | many-to-one | medium | reviewed |
| CloudAppEvents.RawEventData#/ClientIP | EntraIdSignInEvents.IPAddress | correlation-only | query → extract → query | many-to-many | medium | reviewed |
| CloudAppEvents.IPAddress | EntraIdSignInEvents.IPAddress | correlation-only | query → extract → query | many-to-many | high | reviewed |
| DeviceFileEvents.DeviceId | DeviceInfo.DeviceId | join-compatible | direct join | many-to-one | high | reviewed |
| DeviceEvents.DeviceId | DeviceInfo.DeviceId | join-compatible | direct join | many-to-one | high | reviewed |
| DeviceProcessEvents.SHA256 | EmailAttachmentInfo.SHA256 | correlation-only | query → extract → query | many-to-many | high | reviewed |
| EntraIdSignInEvents.AccountObjectId | IdentityInfo.AccountObjectId | join-compatible | direct join | many-to-one | high | reviewed |
| DeviceInfo.DeviceId | DeviceRegistryEvents.DeviceId | join-compatible | direct join | one-to-many | high | reviewed |
| DeviceInfo.DeviceId | DeviceLogonEvents.DeviceId | join-compatible | direct join | one-to-many | high | reviewed |
| DeviceInfo.DeviceId | DeviceNetworkEvents.DeviceId | join-compatible | direct join | one-to-many | high | reviewed |
| CloudAppEvents.AccountObjectId | IdentityInfo.AccountObjectId | join-compatible | direct join | many-to-one | high | reviewed |
| GraphAPIAuditEvents.AccountObjectId | IdentityInfo.AccountObjectId | join-compatible | direct join | many-to-one | high | reviewed |
| CloudAppEvents.RawEventData#/UserId | IdentityInfo.AccountUpn | transform-required | query → extract → query | many-to-one | medium | reviewed |
| EntraIdSignInEvents.AccountUpn | IdentityInfo.AccountUpn | transform-required | query → extract → query | many-to-one | high | reviewed |
| CloudAppEvents.RawEventData#/TargetResources/*/id | IdentityInfo.AccountObjectId | semantic-equivalent | query → extract → query | unknown | low | candidate |
| AADSignInEventsBeta.AccountUpn | IdentityInfo.AccountUpn | transform-required | query → extract → query | many-to-one | high | reviewed |
| DeviceInfo.DeviceId | DeviceProcessEvents.DeviceId | join-compatible | direct join | one-to-many | high | reviewed |
| DeviceFileEvents.SHA256 | EmailAttachmentInfo.SHA256 | correlation-only | query → extract → query | many-to-many | high | reviewed |
| DeviceInfo.DeviceName | DeviceNetworkEvents.DeviceName | semantic-equivalent | query → extract → query | one-to-many | medium | reviewed |
| EmailAttachmentInfo.NetworkMessageId | EmailEvents.NetworkMessageId | join-compatible | direct join | many-to-one | high | reviewed |
| DeviceProcessEvents.AccountUpn | IdentityInfo.AccountUpn | transform-required | query → extract → query | many-to-one | high | reviewed |
| DeviceImageLoadEvents.DeviceId | DeviceInfo.DeviceId | join-compatible | direct join | many-to-one | high | reviewed |
| DeviceProcessEvents.AccountObjectId | IdentityInfo.AccountObjectId | join-compatible | direct join | many-to-one | high | reviewed |
| EmailEvents.NetworkMessageId | UrlClickEvents.NetworkMessageId | join-compatible | direct join | one-to-many | high | reviewed |
| EmailEvents.NetworkMessageId | EmailUrlInfo.NetworkMessageId | join-compatible | direct join | one-to-many | high | reviewed |
| IdentityInfo.AccountUpn | UrlClickEvents.AccountUpn | transform-required | query → extract → query | one-to-many | high | reviewed |
| DeviceInfo.DeviceName | DeviceProcessEvents.DeviceName | semantic-equivalent | query → extract → query | one-to-many | medium | reviewed |
Do not infer a route from the physical same-name appendix below. Use the generated inventory or the runtime commands, which also return transforms, roles, namespaces, provenance, temporal guidance, and tenant availability.
Refresh in any tenant with
xdr schema refresh, then convert the receipt’s completedata_pathJSONL to CSV before running the renderer. See Regenerating this file at the end for the exact POSIX commands and the portal-export path.The probe covers 80 curated Defender XDR, Sentinel, and Entra workspace tables; which schemas resolve can vary by license, permission, region, connected-workspace context, and connector.
sys_schema_probeusesunion isfuzzy=true, so absent tables are silently skipped. Schema presence does not prove recent row population or a licensed SKU. Custom logs and future workspace tables must be added to the probe explicitly. Re-run after a relevant tenant or schema change.
Rebuilding this doc: the build script consumes CSV, so convert the probe’s artifact JSONL to
schema.csvfirst (see Regenerating this file), thenpython scripts/build_schema_pivots.py schema.csv docs/schema_pivots.md.
Casing gotchas — read first
Section titled “Casing gotchas — read first”Column names are case-sensitive in KQL joins. A few near-duplicates trip up cross-table queries:
IPAddress→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, AADSignInEventsBeta, AADSpnSignInEventsBeta, CloudAppEvents, CloudAuditEvents, CloudStorageAggregatedEvents, DataSecurityEvents, EntraIdSignInEvents, EntraIdSpnSignInEvents, IdentityDirectoryEvents, IdentityEvents, IdentityLogonEvents, IdentityQueryEvents, MicrosoftGraphActivityLogs, SigninLogs, UrlClickEvents — all-caps — the dominant form.IpAddress→ AADUserRiskEvents, DisruptionAndResponseEvents, GraphAPIAuditEvents — camelCasep—DisruptionAndResponseEventsandGraphAPIAuditEventsuse this spelling instead ofIPAddress.DisruptionAndResponseEventsalso hasSourceIpAddressand plainPort/SourcePort.Categories→ AlertEvidence, BehaviorEntities, BehaviorInfo, DataSecurityBehaviors, DeviceTvmInfoGatheringKB, ExposureGraphNodes — dynamic array in most tables, butAlertInfouses scalarCategory(singular) instead.
When unioning across these boundaries, normalize: extend IpAddr = coalesce(IPAddress, IpAddress).
Tenant variance - columns that may be absent
Section titled “Tenant variance - columns that may be absent”Some columns appear in Microsoft’s public schema documentation but are not consistently populated or even present across all tenants. License tier, region, and table version determine availability. Columns to sanity-check before using:
IsAnonymousProxy,IsExternalDeviceare documented forAADSignInEventsBetabut are absent on some tenants. Projecting them causesFailed to resolve scalar expression(API 400).RawEventData.CountryCodeis populated for someCloudAppEventssources (for example, Entra sign-in-derived rows) and null for others.DetectionMethodsis documented forEmailEvents, but the table itself may be empty in tenants without Defender for Office licenses.
Before referencing an unfamiliar column, run xdr schema refresh followed by
xdr schema show <table> --search <column>, or test with getschema:
AADSignInEventsBeta | getschema | where ColumnName in ('IsAnonymousProxy', 'IsExternalDevice')An empty result means the column is not in this tenant’s schema - pick an
available alternative (IsCompliant, AuthenticationRequirement,
ConditionalAccessStatus) or drop the projection.
Row identity (uniqueness contracts)
Section titled “Row identity (uniqueness contracts)”Uniqueness contracts come from Microsoft’s Advanced Hunting docs, not from
the probe — getschema only reports columns, not keys.
ReportId→ AADSignInEventsBeta, AADSpnSignInEventsBeta, CampaignInfo, CloudAppEvents, CloudAuditEvents, CloudDnsEvents, CloudProcessEvents, CloudStorageAggregatedEvents, ConnectorStatusInfo, DeviceEvents, DeviceFileCertificateInfo, DeviceFileEvents, DeviceImageLoadEvents, DeviceInfo, DeviceLogonEvents, DeviceNetworkEvents, DeviceNetworkInfo, DeviceProcessEvents, DeviceRegistryEvents, DisruptionAndResponseEvents, EmailAttachmentInfo, EmailEvents, EmailPostDeliveryEvents, EmailUrlInfo, EntraIdSignInEvents, EntraIdSpnSignInEvents, FileMaliciousContentInfo, GraphAPIAuditEvents, IdentityAccountInfo, IdentityDirectoryEvents, IdentityEvents, IdentityInfo, IdentityLogonEvents, IdentityQueryEvents, MessageEvents, MessagePostDeliveryEvents, MessageUrlInfo, OAuthAppInfo, UrlClickEvents — not unique alone; MDE event identity is(DeviceId, ReportId, Timestamp). Many other tables have their own ReportId semantics.Timestamp→ AADSignInEventsBeta, AADSpnSignInEventsBeta, AlertEvidence, AlertInfo, BehaviorEntities, BehaviorInfo, CampaignInfo, CloudAppEvents, CloudAuditEvents, CloudDnsEvents, CloudProcessEvents, CloudStorageAggregatedEvents, ConnectorStatusInfo, DataSecurityBehaviors, DataSecurityEvents, DeviceEvents, DeviceFileCertificateInfo, DeviceFileEvents, DeviceImageLoadEvents, DeviceInfo, DeviceLogonEvents, DeviceNetworkEvents, DeviceNetworkInfo, DeviceProcessEvents, DeviceRegistryEvents, DeviceTvmInfoGathering, DeviceTvmSecureConfigurationAssessment, DisruptionAndResponseEvents, EmailAttachmentInfo, EmailEvents, EmailPostDeliveryEvents, EmailUrlInfo, EntraIdSignInEvents, EntraIdSpnSignInEvents, FileMaliciousContentInfo, GraphAPIAuditEvents, IdentityAccountInfo, IdentityDirectoryEvents, IdentityEvents, IdentityInfo, IdentityLogonEvents, IdentityQueryEvents, MessageEvents, MessagePostDeliveryEvents, MessageUrlInfo, OAuthAppInfo, UrlClickEvents — always narrow by time window before joins.AlertId→ Alert, AlertEvidence, AlertInfo — oneAlertInforow per alert, manyAlertEvidencerows.BehaviorId→ BehaviorEntities, BehaviorInfo, DataSecurityBehaviors — do not assume this key is unique in eitherBehaviorInfoorBehaviorEntities; aggregate or deduplicate it to match the investigation question. Also used byDataSecurityBehaviors.NetworkMessageId→ AlertEvidence, BehaviorEntities, CampaignInfo, DataSecurityEvents, EmailAttachmentInfo, EmailEvents, EmailPostDeliveryEvents, EmailUrlInfo, UrlClickEvents — spine of the email chain;CampaignInfoandDataSecurityEventsride it too.InternetMessageId→ DataSecurityEvents, EmailEvents, EmailPostDeliveryEvents — RFC-5322Message-ID.TeamsMessageId→ MessageEvents, MessagePostDeliveryEvents, MessageUrlInfo — spine of the Teams chain.CampaignId→ CampaignInfoRequestId→ AADGraphActivityLogs, AADSignInEventsBeta, AADSpnSignInEventsBeta, AADUserRiskEvents, EntraIdSignInEvents, EntraIdSpnSignInEvents, GraphAPIAuditEvents, MicrosoftGraphActivityLogs — Entra sign-in request ID; joins Entra twins + Graph audit.CorrelationId→ AADManagedIdentitySignInLogs, AADProvisioningLogs, AADRiskyUsers, AADServicePrincipalSignInLogs, AADSignInEventsBeta, AADSpnSignInEventsBeta, AADUserRiskEvents, AuditLogs, EntraIdSignInEvents, EntraIdSpnSignInEvents, GraphNotificationsActivityLogs, Operation, SigninLogs — Entra sign-in correlation ID across user + SPN + new/legacy Entra tables.SessionId→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, AADSignInEventsBeta, DisruptionAndResponseEvents, EntraIdSignInEvents, EntraIdSpnSignInEvents, MicrosoftGraphActivityLogs, SigninLogsOperationId→ GraphAPIAuditEvents, MicrosoftGraphActivityLogsActivityId→ DataSecurityEventsUniqueTokenId→ EntraIdSignInEvents, EntraIdSpnSignInEvents, MicrosoftGraphActivityLogs
Ingestion and tenancy metadata
Section titled “Ingestion and tenancy metadata”These fields describe the hunting data pipeline rather than an entity pivot. Use them for ingestion and billing analysis, not event correlation:
MachineGroup→ AlertEvidence, AlertInfo, BehaviorEntities, BehaviorInfo, DeviceBaselineComplianceAssessment, DeviceBaselineComplianceProfiles, DeviceEvents, DeviceFileCertificateInfo, DeviceFileEvents, DeviceImageLoadEvents, DeviceInfo, DeviceLogonEvents, DeviceNetworkEvents, DeviceNetworkInfo, DeviceProcessEvents, DeviceRegistryEvents, DeviceTvmBrowserExtensions, DeviceTvmCertificateInfo, DeviceTvmHardwareFirmware, DeviceTvmInfoGathering, DeviceTvmSecureConfigurationAssessment, DeviceTvmSoftwareEvidenceBeta, DeviceTvmSoftwareInventory, DeviceTvmSoftwareVulnerabilities, DisruptionAndResponseEventsSourceSystem→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADProvisioningLogs, AADRiskyUsers, AADServicePrincipalSignInLogs, AADSignInEventsBeta, AADSpnSignInEventsBeta, AADUserRiskEvents, Alert, AlertEvidence, AlertInfo, Anomalies, AuditLogs, BehaviorEntities, BehaviorInfo, CampaignInfo, CloudAppEvents, CloudAuditEvents, CloudDnsEvents, CloudProcessEvents, CloudStorageAggregatedEvents, ConnectorStatusInfo, DataSecurityBehaviors, DataSecurityEvents, DeviceBaselineComplianceAssessment, DeviceBaselineComplianceAssessmentKB, DeviceBaselineComplianceProfiles, DeviceEvents, DeviceFileCertificateInfo, DeviceFileEvents, DeviceImageLoadEvents, DeviceInfo, DeviceLogonEvents, DeviceNetworkEvents, DeviceNetworkInfo, DeviceProcessEvents, DeviceRegistryEvents, DeviceTvmBrowserExtensions, DeviceTvmCertificateInfo, DeviceTvmHardwareFirmware, DeviceTvmInfoGathering, DeviceTvmInfoGatheringKB, DeviceTvmSecureConfigurationAssessment, DeviceTvmSecureConfigurationAssessmentKB, DeviceTvmSoftwareEvidenceBeta, DeviceTvmSoftwareInventory, DeviceTvmSoftwareVulnerabilities, DeviceTvmSoftwareVulnerabilitiesKB, DisruptionAndResponseEvents, EmailAttachmentInfo, EmailEvents, EmailPostDeliveryEvents, EmailUrlInfo, EntraIdSignInEvents, EntraIdSpnSignInEvents, ExposureGraphEdges, ExposureGraphNodes, FileMaliciousContentInfo, GraphAPIAuditEvents, GraphNotificationsActivityLogs, Heartbeat, IdentityAccountInfo, IdentityDirectoryEvents, IdentityEvents, IdentityInfo, IdentityLogonEvents, IdentityQueryEvents, MessageEvents, MessagePostDeliveryEvents, MessageUrlInfo, MicrosoftGraphActivityLogs, OAuthAppInfo, Operation, SecurityAlert, SecurityIncident, SigninLogs, UrlClickEvents, UsageTenantId→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADProvisioningLogs, AADRiskyUsers, AADServicePrincipalSignInLogs, AADSignInEventsBeta, AADSpnSignInEventsBeta, AADUserRiskEvents, Alert, AlertEvidence, AlertInfo, Anomalies, AuditLogs, BehaviorEntities, BehaviorInfo, CampaignInfo, CloudAppEvents, CloudAuditEvents, CloudDnsEvents, CloudProcessEvents, CloudStorageAggregatedEvents, ConnectorStatusInfo, DataSecurityBehaviors, DataSecurityEvents, DeviceBaselineComplianceAssessment, DeviceBaselineComplianceAssessmentKB, DeviceBaselineComplianceProfiles, DeviceEvents, DeviceFileCertificateInfo, DeviceFileEvents, DeviceImageLoadEvents, DeviceInfo, DeviceLogonEvents, DeviceNetworkEvents, DeviceNetworkInfo, DeviceProcessEvents, DeviceRegistryEvents, DeviceTvmBrowserExtensions, DeviceTvmCertificateInfo, DeviceTvmHardwareFirmware, DeviceTvmInfoGathering, DeviceTvmInfoGatheringKB, DeviceTvmSecureConfigurationAssessment, DeviceTvmSecureConfigurationAssessmentKB, DeviceTvmSoftwareEvidenceBeta, DeviceTvmSoftwareInventory, DeviceTvmSoftwareVulnerabilities, DeviceTvmSoftwareVulnerabilitiesKB, DisruptionAndResponseEvents, EmailAttachmentInfo, EmailEvents, EmailPostDeliveryEvents, EmailUrlInfo, EntraIdSignInEvents, EntraIdSpnSignInEvents, ExposureGraphEdges, ExposureGraphNodes, FileMaliciousContentInfo, GraphAPIAuditEvents, GraphNotificationsActivityLogs, Heartbeat, IdentityAccountInfo, IdentityDirectoryEvents, IdentityEvents, IdentityInfo, IdentityLogonEvents, IdentityQueryEvents, MessageEvents, MessagePostDeliveryEvents, MessageUrlInfo, MicrosoftGraphActivityLogs, OAuthAppInfo, Operation, SecurityAlert, SecurityIncident, SigninLogs, UrlClickEvents, UsageTenantMembershipType→ IdentityAccountInfo, IdentityInfoTimeGenerated→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADProvisioningLogs, AADRiskyUsers, AADServicePrincipalSignInLogs, AADSignInEventsBeta, AADSpnSignInEventsBeta, AADUserRiskEvents, Alert, AlertEvidence, AlertInfo, Anomalies, AuditLogs, BehaviorEntities, BehaviorInfo, CampaignInfo, CloudAppEvents, CloudAuditEvents, CloudDnsEvents, CloudProcessEvents, CloudStorageAggregatedEvents, ConnectorStatusInfo, DataSecurityBehaviors, DataSecurityEvents, DeviceEvents, DeviceFileCertificateInfo, DeviceFileEvents, DeviceImageLoadEvents, DeviceInfo, DeviceLogonEvents, DeviceNetworkEvents, DeviceNetworkInfo, DeviceProcessEvents, DeviceRegistryEvents, DeviceTvmSecureConfigurationAssessment, DisruptionAndResponseEvents, EmailAttachmentInfo, EmailEvents, EmailPostDeliveryEvents, EmailUrlInfo, EntraIdSignInEvents, EntraIdSpnSignInEvents, FileMaliciousContentInfo, GraphAPIAuditEvents, GraphNotificationsActivityLogs, Heartbeat, IdentityAccountInfo, IdentityDirectoryEvents, IdentityEvents, IdentityInfo, IdentityLogonEvents, IdentityQueryEvents, MessageEvents, MessagePostDeliveryEvents, MessageUrlInfo, MicrosoftGraphActivityLogs, OAuthAppInfo, Operation, SecurityAlert, SecurityIncident, SigninLogs, UrlClickEvents, Usage_BilledSize→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADProvisioningLogs, AADRiskyUsers, AADServicePrincipalSignInLogs, AADUserRiskEvents, Alert, Anomalies, AuditLogs, BehaviorEntities, BehaviorInfo, GraphNotificationsActivityLogs, Heartbeat, MicrosoftGraphActivityLogs, Operation, SecurityAlert, SecurityIncident, SigninLogs, Usage_IsBillable→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADProvisioningLogs, AADRiskyUsers, AADServicePrincipalSignInLogs, AADUserRiskEvents, Alert, Anomalies, AuditLogs, BehaviorEntities, BehaviorInfo, GraphNotificationsActivityLogs, Heartbeat, MicrosoftGraphActivityLogs, Operation, SecurityAlert, SecurityIncident, SigninLogs, Usage_ItemId→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADProvisioningLogs, AADRiskyUsers, AADServicePrincipalSignInLogs, AADUserRiskEvents, Alert, Anomalies, AuditLogs, BehaviorEntities, BehaviorInfo, GraphNotificationsActivityLogs, Heartbeat, MicrosoftGraphActivityLogs, Operation, SecurityAlert, SecurityIncident, SigninLogs, Usage_ResourceId→ AADGraphActivityLogs, Alert, BehaviorEntities, BehaviorInfo, Heartbeat, Operation_SubscriptionId→ AADGraphActivityLogs, Alert, BehaviorEntities, BehaviorInfo, Heartbeat, Operation_TimeReceived→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADProvisioningLogs, AADRiskyUsers, AADServicePrincipalSignInLogs, AADUserRiskEvents, Alert, Anomalies, AuditLogs, BehaviorEntities, BehaviorInfo, GraphNotificationsActivityLogs, Heartbeat, MicrosoftGraphActivityLogs, Operation, SecurityAlert, SecurityIncident, SigninLogs, Usage
Device identity
Section titled “Device identity”DeviceId→ AADGraphActivityLogs, AlertEvidence, BehaviorEntities, BehaviorInfo, DeviceBaselineComplianceAssessment, DeviceEvents, DeviceFileCertificateInfo, DeviceFileEvents, DeviceImageLoadEvents, DeviceInfo, DeviceLogonEvents, DeviceNetworkEvents, DeviceNetworkInfo, DeviceProcessEvents, DeviceRegistryEvents, DeviceTvmBrowserExtensions, DeviceTvmCertificateInfo, DeviceTvmHardwareFirmware, DeviceTvmInfoGathering, DeviceTvmSecureConfigurationAssessment, DeviceTvmSoftwareEvidenceBeta, DeviceTvmSoftwareInventory, DeviceTvmSoftwareVulnerabilities, DisruptionAndResponseEvents, MicrosoftGraphActivityLogs — prefer as MDE join key.DeviceName→ AADSignInEventsBeta, AlertEvidence, BehaviorEntities, DeviceBaselineComplianceAssessment, DeviceEvents, DeviceFileCertificateInfo, DeviceFileEvents, DeviceImageLoadEvents, DeviceInfo, DeviceLogonEvents, DeviceNetworkEvents, DeviceNetworkInfo, DeviceProcessEvents, DeviceRegistryEvents, DeviceTvmHardwareFirmware, DeviceTvmInfoGathering, DeviceTvmSecureConfigurationAssessment, DeviceTvmSoftwareInventory, DeviceTvmSoftwareVulnerabilities, DisruptionAndResponseEvents, EntraIdSignInEvents, IdentityDirectoryEvents, IdentityLogonEvents, IdentityQueryEvents — human-readable, rename-unsafe; filter/display only.AadDeviceId→ AADSignInEventsBeta, DeviceInfo, DeviceTvmSoftwareVulnerabilities — Entra join key — device ↔ Azure AD object.EntraIdDeviceId→ AADSignInEventsBeta, EntraIdSignInEvents — new Entra device ID (equivalent toAadDeviceIdin Entra sign-in tables).
OS / device facets
Section titled “OS / device facets”OSPlatform→ AADSignInEventsBeta, CloudAppEvents, DeviceBaselineComplianceAssessment, DeviceBaselineComplianceProfiles, DeviceInfo, DeviceTvmInfoGathering, DeviceTvmSecureConfigurationAssessment, DeviceTvmSoftwareInventory, DeviceTvmSoftwareVulnerabilities, EntraIdSignInEvents, IdentityLogonEventsOSArchitecture→ DeviceInfo, DeviceTvmSoftwareInventory, DeviceTvmSoftwareVulnerabilitiesOSVersion→ DeviceBaselineComplianceAssessment, DeviceBaselineComplianceProfiles, DeviceInfo, DeviceTvmSoftwareInventory, DeviceTvmSoftwareVulnerabilitiesDeviceType→ CloudAppEvents, DeviceInfo, IdentityLogonEventsPlatform→ (not present in probe)
Cloud resource identity (Defender for Cloud — multi-cloud)
Section titled “Cloud resource identity (Defender for Cloud — multi-cloud)”MDC tables (CloudAuditEvents, CloudDnsEvents, CloudProcessEvents,
CloudStorageAggregatedEvents) don’t carry DeviceId. They identify the
workload by cloud-native resource ID:
AzureResourceId→ CloudAuditEvents, CloudDnsEvents, CloudProcessEvents, CloudStorageAggregatedEvents, DeviceInfo — also present inDeviceInfo— the Azure VM join bridge.AwsResourceName→ CloudAuditEvents, CloudDnsEvents, CloudProcessEvents, DeviceInfoGcpFullResourceName→ CloudAuditEvents, CloudDnsEvents, CloudProcessEvents, DeviceInfo
CloudProcessEvents mirrors MDE process telemetry with a workload
identifier — bridge MDE ↔ cloud via AzureResourceId (from DeviceInfo
to CloudProcessEvents), then pivot on ProcessCommandLine / FileName /
AccountName.
Container / Kubernetes context (MDC CloudDnsEvents ↔ CloudProcessEvents):
ContainerId→ CloudDnsEvents, CloudProcessEventsContainerName→ CloudDnsEvents, CloudProcessEventsKubernetesNamespace→ CloudDnsEvents, CloudProcessEventsKubernetesPodName→ CloudDnsEvents, CloudProcessEventsKubernetesResource→ CloudDnsEvents, CloudProcessEventsProcessName→ CloudDnsEvents, CloudProcessEvents
MDC cloud-audit plumbing:
AuditSource→ CloudAppEvents, CloudAuditEventsDataSource→ CloudAuditEvents, CloudStorageAggregatedEvents, DisruptionAndResponseEventsIsAnonymousProxy→ CloudAppEvents, CloudAuditEvents
User / account identity
Section titled “User / account identity”AccountObjectId→ AADSignInEventsBeta, AlertEvidence, BehaviorEntities, BehaviorInfo, CloudAppEvents, CloudStorageAggregatedEvents, DataSecurityEvents, DeviceProcessEvents, EntraIdSignInEvents, GraphAPIAuditEvents, IdentityDirectoryEvents, IdentityInfo, IdentityLogonEvents, IdentityQueryEvents — Entra OID — strongest cross-surface pivot (Entra sign-ins ↔ MDI ↔ MDCA ↔ DLP ↔ Graph audit ↔ alerts ↔ device processes).AccountUpn→ AADSignInEventsBeta, AlertEvidence, BehaviorEntities, BehaviorInfo, CloudStorageAggregatedEvents, DataSecurityBehaviors, DataSecurityEvents, DeviceProcessEvents, EntraIdSignInEvents, IdentityAccountInfo, IdentityDirectoryEvents, IdentityEvents, IdentityInfo, IdentityLogonEvents, IdentityQueryEvents, UrlClickEvents — human-readable UPN; reaches click telemetry, MDI, MDCA, DLP, Entra sign-ins.AccountSid→ AlertEvidence, BehaviorEntities, DeviceEvents, DeviceLogonEvents, DeviceProcessEvents, IdentityDirectoryEvents, IdentityLogonEvents, IdentityQueryEvents — Windows SID, device-side + MDI.AccountName→ AlertEvidence, BehaviorEntities, CloudProcessEvents, DeviceEvents, DeviceLogonEvents, DeviceProcessEvents, IdentityDirectoryEvents, IdentityInfo, IdentityLogonEvents, IdentityQueryEvents — pair withAccountDomain.AccountDomain→ AlertEvidence, BehaviorEntities, DeviceEvents, DeviceLogonEvents, DeviceProcessEvents, IdentityDirectoryEvents, IdentityInfo, IdentityLogonEvents, IdentityQueryEvents — pair withAccountName.AccountDisplayName→ AADSignInEventsBeta, CloudAppEvents, EntraIdSignInEvents, IdentityDirectoryEvents, IdentityEvents, IdentityInfo, IdentityLogonEvents, IdentityQueryEvents — display name; filter/display only.AccountId→ CloudAppEvents, IdentityAccountInfo, IdentityEvents — MDI/Cloud account identifier (different fromAccountObjectId).AccountType→ CloudAppEvents, CloudStorageAggregatedEvents, GraphNotificationsActivityLogs, IdentityEventsIdentityId→ IdentityAccountInfo, IdentityInfo —IdentityInfo+IdentityAccountInfoidentity key.AlternateSignInName→ AADSignInEventsBeta, EntraIdSignInEvents, SigninLogsIsExternalUser→ AADSignInEventsBeta, CloudAppEvents, EntraIdSignInEventsIsGuestUser→ AADSignInEventsBeta, EntraIdSignInEvents
MDI target-entity fields (actor + target shape):
TargetAccountUpn→ IdentityDirectoryEvents, IdentityQueryEventsTargetAccountDisplayName→ IdentityDirectoryEvents, IdentityLogonEvents, IdentityQueryEventsTargetDeviceName→ DisruptionAndResponseEvents, IdentityDirectoryEvents, IdentityLogonEvents, IdentityQueryEventsTargetDomainName→ DisruptionAndResponseEventsDestinationDeviceName→ IdentityDirectoryEvents, IdentityLogonEvents, IdentityQueryEventsDestinationIPAddress→ IdentityDirectoryEvents, IdentityLogonEvents, IdentityQueryEventsDestinationPort→ IdentityDirectoryEvents, IdentityLogonEvents, IdentityQueryEvents
DisruptionAndResponseEvents has its own Source/Target shape:
SourceDeviceId→ DisruptionAndResponseEventsTargetDeviceId→ DisruptionAndResponseEventsSourceDeviceName→ DisruptionAndResponseEventsSourceDomainName→ DisruptionAndResponseEventsSourceUserSid→ DisruptionAndResponseEventsSourceUserName→ DisruptionAndResponseEventsSourceUserDomainName→ DisruptionAndResponseEventsSourceIpAddress→ Anomalies, DisruptionAndResponseEvents — camelCasep— notIPAddress.SourcePort→ DisruptionAndResponseEvents
Service principals / OAuth apps
Section titled “Service principals / OAuth apps”ApplicationId→ AADSignInEventsBeta, AADSpnSignInEventsBeta, AlertEvidence, BehaviorEntities, CloudAppEvents, EntraIdSignInEvents, EntraIdSpnSignInEvents, GraphAPIAuditEvents, GraphNotificationsActivityLogsApplication→ AADSignInEventsBeta, AADSpnSignInEventsBeta, AlertEvidence, BehaviorEntities, CloudAppEvents, DataSecurityBehaviors, EntraIdSignInEvents, EntraIdSpnSignInEvents, IdentityDirectoryEvents, IdentityEvents, IdentityLogonEvents, IdentityQueryEventsAppName→ OAuthAppInfo, UrlClickEventsOAuthAppId→ CloudAppEvents, OAuthAppInfo — join to Entra SPN sign-ins viaServicePrincipalId.OAuthApplicationId→ AlertEvidence, BehaviorEntitiesServicePrincipalId→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, AADSpnSignInEventsBeta, EntraIdSpnSignInEvents, GraphAPIAuditEvents, MicrosoftGraphActivityLogs, OAuthAppInfo, SigninLogsServicePrincipalName→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, AADSpnSignInEventsBeta, EntraIdSpnSignInEvents, SigninLogsApplicationInstanceId→ IdentityEventsApplicationEventId→ IdentityEventsApplicationSessionId→ IdentityEventsResourceDisplayName→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, AADSignInEventsBeta, AADSpnSignInEventsBeta, EntraIdSignInEvents, EntraIdSpnSignInEvents, SigninLogsResourceId→ AADSignInEventsBeta, AADSpnSignInEventsBeta, Alert, AuditLogs, EntraIdSignInEvents, EntraIdSpnSignInEvents, Heartbeat, SecurityAlert, SigninLogsResourceTenantId→ AADSignInEventsBeta, AADSpnSignInEventsBeta, EntraIdSignInEvents, EntraIdSpnSignInEvents, SigninLogs — tenant of the resource the token was issued for.AppOwnerTenantId→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, OAuthAppInfo, SigninLogs
Initiating process bundle (27 fields across the same 7 device tables)
Section titled “Initiating process bundle (27 fields across the same 7 device tables)”Every field below is present in exactly these 7 tables: DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEvents.
InitiatingProcessAccountDomain→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessAccountName→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessAccountObjectId→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessAccountSid→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessAccountUpn→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessCommandLine→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessCreationTime→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessFileSize→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessFolderPath→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessMD5→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessParentCreationTime→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessParentFileName→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessParentId→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessRemoteSessionDeviceName→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessRemoteSessionIP→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessSHA1→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessSHA256→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessSessionId→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessUniqueId→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessVersionInfoCompanyName→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessVersionInfoFileDescription→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessVersionInfoInternalFileName→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessVersionInfoOriginalFileName→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessVersionInfoProductName→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessVersionInfoProductVersion→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsIsInitiatingProcessRemoteSession→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsAppGuardContainerId→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEvents
Extended (8–9 tables — also in CloudProcessEvents + DisruptionAndResponseEvents):
InitiatingProcessFileName→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEvents, DisruptionAndResponseEventsInitiatingProcessId→ CloudProcessEvents, DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEvents, DisruptionAndResponseEvents
Subset (6 of 7 — missing from DeviceEvents):
InitiatingProcessIntegrityLevel→ DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEventsInitiatingProcessTokenElevation→ DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEvents
Canonical unique process identity on a device:
(DeviceId, InitiatingProcessId, InitiatingProcessCreationTime).
Created-process bundle
Section titled “Created-process bundle”CreatedProcessSessionId→ DeviceEvents, DeviceProcessEventsProcessCreationTime→ CloudProcessEvents, DeviceEvents, DeviceProcessEventsProcessId→ CloudDnsEvents, CloudProcessEvents, DeviceEvents, DeviceProcessEvents — also inCloudProcessEvents+CloudDnsEvents— cloud workload process id, not DeviceId-scoped.ProcessRemoteSessionDeviceName→ DeviceEvents, DeviceProcessEventsProcessRemoteSessionIP→ DeviceEvents, DeviceProcessEventsProcessTokenElevation→ DeviceEvents, DeviceProcessEventsIsProcessRemoteSession→ DeviceEvents, DeviceProcessEventsInitiatingProcessLogonId→ DeviceEvents, DeviceProcessEventsProcessCommandLine→ AlertEvidence, BehaviorEntities, CloudProcessEvents, DeviceEvents, DeviceProcessEvents — also inCloudProcessEvents.LogonId→ CloudProcessEvents, DeviceEvents, DeviceLogonEvents, DeviceProcessEvents, DisruptionAndResponseEvents —DisruptionAndResponseEventsandCloudProcessEventsextend the MDE logon trio.
File identity
Section titled “File identity”SHA256→ AlertEvidence, BehaviorEntities, DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceProcessEvents, EmailAttachmentInfo, FileMaliciousContentInfo — canonical file pivot; reachesFileMaliciousContentInfotoo.SHA1→ AlertEvidence, BehaviorEntities, DeviceEvents, DeviceFileCertificateInfo, DeviceFileEvents, DeviceImageLoadEvents, DeviceProcessEvents — only hash that joinsDeviceFileCertificateInfo(code signing).MD5→ DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceProcessEvents — legacy.FileName→ AlertEvidence, BehaviorEntities, CloudProcessEvents, DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceProcessEvents, DisruptionAndResponseEvents, EmailAttachmentInfo, FileMaliciousContentInfoFolderPath→ AlertEvidence, BehaviorEntities, CloudProcessEvents, DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceProcessEvents, FileMaliciousContentInfoFileSize→ AlertEvidence, BehaviorEntities, DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceProcessEvents, EmailAttachmentInfo, FileMaliciousContentInfoFileOriginIP→ DeviceEvents, DeviceFileEventsFileOriginUrl→ DeviceEvents, DeviceFileEventsFileOwnerUpn→ FileMaliciousContentInfoDocumentID→ FileMaliciousContentInfo
Network — device-side (MDE)
Section titled “Network — device-side (MDE)”RemoteIP→ AlertEvidence, BehaviorEntities, DeviceEvents, DeviceLogonEvents, DeviceNetworkEventsLocalIP→ AlertEvidence, BehaviorEntities, DeviceEvents, DeviceNetworkEventsRemoteUrl→ AlertEvidence, BehaviorEntities, DeviceEvents, DeviceNetworkEventsRemotePort→ DeviceEvents, DeviceLogonEvents, DeviceNetworkEventsLocalPort→ DeviceEvents, DeviceNetworkEventsProtocol→ DeviceLogonEvents, DeviceNetworkEvents, IdentityDirectoryEvents, IdentityLogonEvents, IdentityQueryEventsRemoteIPType→ DeviceLogonEvents, DeviceNetworkEventsRemoteDeviceName→ DeviceEvents, DeviceLogonEventsShareName→ DeviceFileEvents, DisruptionAndResponseEvents — device file-share activity, also surfaces inDisruptionAndResponseEvents.
Network — identity / sign-in / cloud-apps
Section titled “Network — identity / sign-in / cloud-apps”Distinct shape from device-side Remote*/Local* — actor-centric source
IP + port, Destination* / Target* for the target.
IPAddress→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, AADSignInEventsBeta, AADSpnSignInEventsBeta, CloudAppEvents, CloudAuditEvents, CloudStorageAggregatedEvents, DataSecurityEvents, EntraIdSignInEvents, EntraIdSpnSignInEvents, IdentityDirectoryEvents, IdentityEvents, IdentityLogonEvents, IdentityQueryEvents, MicrosoftGraphActivityLogs, SigninLogs, UrlClickEvents — see casing gotchas above.IpAddress→ AADUserRiskEvents, DisruptionAndResponseEvents, GraphAPIAuditEvents — camelCasepvariant.Port→ DisruptionAndResponseEvents, IdentityDirectoryEvents, IdentityLogonEvents, IdentityQueryEventsUserAgent→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, AADSignInEventsBeta, CloudAppEvents, CloudAuditEvents, EntraIdSignInEvents, EntraIdSpnSignInEvents, IdentityEvents, MicrosoftGraphActivityLogs, SigninLogsGatewayJA4→ EntraIdSignInEvents, EntraIdSpnSignInEvents
Logon correlation (device ↔ identity ↔ Entra sign-in)
Section titled “Logon correlation (device ↔ identity ↔ Entra sign-in)”LogonType→ AADSignInEventsBeta, DeviceLogonEvents, DisruptionAndResponseEvents, EntraIdSignInEvents, IdentityLogonEvents — MDEDeviceLogonEvents↔ MDIIdentityLogonEvents↔ EntraAADSignInEventsBeta/EntraIdSignInEvents↔DisruptionAndResponseEvents.LogonId→ CloudProcessEvents, DeviceEvents, DeviceLogonEvents, DeviceProcessEvents, DisruptionAndResponseEventsFailureReason→ DeviceLogonEvents, IdentityLogonEventsActionFailureReason→ IdentityEventsErrorCode→ AADSignInEventsBeta, AADSpnSignInEventsBeta, EntraIdSignInEvents, EntraIdSpnSignInEvents — Entra sign-in failure code (user + SPN, legacy + new).
Sign-in events — Entra twins (user)
Section titled “Sign-in events — Entra twins (user)”AADSignInEventsBeta and EntraIdSignInEvents are schema-compatible twins
(legacy vs new). Prefer EntraIdSignInEvents when available.
RiskLevelAggregated→ AADSignInEventsBeta, EntraIdSignInEvents, SigninLogsRiskLevelDuringSignIn→ AADSignInEventsBeta, EntraIdSignInEvents, SigninLogsRiskEventTypes→ AADSignInEventsBeta, EntraIdSignInEvents, SigninLogsRiskState→ AADRiskyUsers, AADSignInEventsBeta, AADUserRiskEvents, EntraIdSignInEvents, SigninLogsConditionalAccessPolicies→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, AADSignInEventsBeta, EntraIdSignInEvents, SigninLogsConditionalAccessStatus→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, AADSignInEventsBeta, EntraIdSignInEvents, SigninLogsAuthenticationProcessingDetails→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, AADSignInEventsBeta, EntraIdSignInEvents, SigninLogsAuthenticationRequirement→ AADSignInEventsBeta, EntraIdSignInEvents, SigninLogsTokenIssuerType→ AADSignInEventsBeta, AADUserRiskEvents, EntraIdSignInEvents, SigninLogsClientAppUsed→ AADSignInEventsBeta, EntraIdSignInEvents, SigninLogsBrowser→ AADSignInEventsBeta, EntraIdSignInEventsDeviceTrustType→ AADSignInEventsBeta, EntraIdSignInEventsIsManaged→ AADSignInEventsBeta, EntraIdSignInEventsIsCompliant→ AADSignInEventsBeta, DeviceBaselineComplianceAssessment, DeviceTvmSecureConfigurationAssessment, EntraIdSignInEventsEndpointCall→ AADSignInEventsBeta, EntraIdSignInEventsEntraIdDeviceId→ AADSignInEventsBeta, EntraIdSignInEventsNetworkLocationDetails→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, AADSignInEventsBeta, EntraIdSignInEvents, SigninLogsLastPasswordChangeTimestamp→ AADSignInEventsBeta, EntraIdSignInEvents
Sign-in events — Entra twins (service principal)
Section titled “Sign-in events — Entra twins (service principal)”AADSpnSignInEventsBeta and EntraIdSpnSignInEvents — workload identity sign-ins.
IsManagedIdentity→ AADSpnSignInEventsBeta, EntraIdSpnSignInEventsIsConfidentialClient→ AADSpnSignInEventsBeta, EntraIdSpnSignInEvents
Geo enrichment
Section titled “Geo enrichment”Country→ AADSignInEventsBeta, AADSpnSignInEventsBeta, EntraIdSignInEvents, EntraIdSpnSignInEvents, IdentityAccountInfo, IdentityInfoCountryCode→ CloudAppEvents, CloudAuditEventsState→ AADSignInEventsBeta, AADSpnSignInEventsBeta, EntraIdSignInEvents, EntraIdSpnSignInEvents, IdentityInfoCity→ AADSignInEventsBeta, AADSpnSignInEventsBeta, CloudAppEvents, CloudAuditEvents, EntraIdSignInEvents, EntraIdSpnSignInEvents, IdentityAccountInfo, IdentityInfoLatitude→ AADSignInEventsBeta, AADSpnSignInEventsBeta, EntraIdSignInEvents, EntraIdSpnSignInEventsLongitude→ AADSignInEventsBeta, AADSpnSignInEventsBeta, EntraIdSignInEvents, EntraIdSpnSignInEventsLocation→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, AADUserRiskEvents, AuditLogs, CloudStorageAggregatedEvents, GraphAPIAuditEvents, GraphNotificationsActivityLogs, IdentityDirectoryEvents, IdentityLogonEvents, IdentityQueryEvents, MicrosoftGraphActivityLogs, SigninLogsISP→ CloudAppEvents, CloudAuditEvents, IdentityDirectoryEvents, IdentityLogonEvents
Email chain
Section titled “Email chain”NetworkMessageId is the spine — EmailEvents → EmailAttachmentInfo →
EmailUrlInfo → EmailPostDeliveryEvents → UrlClickEvents →
CampaignInfo → DataSecurityEvents (+ AlertEvidence / BehaviorEntities
for XDR fusion).
NetworkMessageId→ AlertEvidence, BehaviorEntities, CampaignInfo, DataSecurityEvents, EmailAttachmentInfo, EmailEvents, EmailPostDeliveryEvents, EmailUrlInfo, UrlClickEventsInternetMessageId→ DataSecurityEvents, EmailEvents, EmailPostDeliveryEventsRecipientEmailAddress→ CampaignInfo, EmailAttachmentInfo, EmailEvents, EmailPostDeliveryEventsSenderFromAddress→ EmailAttachmentInfo, EmailEvents, EmailPostDeliveryEventsRecipientObjectId→ EmailAttachmentInfo, EmailEventsSenderObjectId→ EmailAttachmentInfo, EmailEvents, MessageEventsSenderDisplayName→ EmailAttachmentInfo, EmailEvents, MessageEventsUrl→ Alert, EmailUrlInfo, MessageUrlInfo, UrlClickEventsUrlDomain→ EmailUrlInfo, MessageUrlInfoEmailDirection→ EmailEvents, EmailPostDeliveryEventsDeliveryLocation→ EmailEvents, EmailPostDeliveryEvents, MessageEventsDeliveryAction→ EmailEvents, MessageEventsLatestDeliveryLocation→ EmailEvents, MessagePostDeliveryEventsLatestDeliveryAction→ EmailEventsEmailClusterId→ BehaviorEntities, EmailEventsEmailSubject→ AlertEvidence, BehaviorEntities, DataSecurityEventsSubject→ EmailEvents, MessageEvents
Campaigns (MDO)
Section titled “Campaigns (MDO)”CampaignId→ CampaignInfoCampaignName→ CampaignInfoCampaignType→ CampaignInfoCampaignSubType→ CampaignInfo
Join CampaignInfo to the email chain on NetworkMessageId.
Teams chain
Section titled “Teams chain”TeamsMessageId is the spine for MessageEvents / MessagePostDeliveryEvents
/ MessageUrlInfo. These do not share NetworkMessageId — pivot only
on TeamsMessageId within the Teams set.
TeamsMessageId→ MessageEvents, MessagePostDeliveryEvents, MessageUrlInfoSenderEmailAddress→ MessageEvents, MessagePostDeliveryEventsRecipientDetails→ MessageEvents, MessagePostDeliveryEvents — dynamic —parse_jsonormv-expand.IsExternalThread→ MessageEvents, MessagePostDeliveryEventsSafetyTip→ MessageEvents, MessagePostDeliveryEventsConfidenceLevel→ EmailEvents, MessageEvents, MessagePostDeliveryEvents, SecurityAlertMessageType→ ConnectorStatusInfo, MessageEvents — also used byConnectorStatusInfo(unrelated semantic — connector message type).
Cross-link to users/accounts via SenderObjectId (shared with email chain).
Registry
Section titled “Registry”RegistryKey→ AlertEvidence, BehaviorEntities, DeviceEvents, DeviceRegistryEventsRegistryValueName→ AlertEvidence, BehaviorEntities, DeviceEvents, DeviceRegistryEventsRegistryValueData→ AlertEvidence, BehaviorEntities, DeviceEvents, DeviceRegistryEvents
TVM — software inventory
Section titled “TVM — software inventory”SoftwareName→ DeviceTvmSoftwareEvidenceBeta, DeviceTvmSoftwareInventory, DeviceTvmSoftwareVulnerabilitiesSoftwareVendor→ DeviceTvmSoftwareEvidenceBeta, DeviceTvmSoftwareInventory, DeviceTvmSoftwareVulnerabilitiesSoftwareVersion→ DeviceTvmSoftwareEvidenceBeta, DeviceTvmSoftwareInventory, DeviceTvmSoftwareVulnerabilities
TVM — vulnerabilities (device data ↔ CVE KB)
Section titled “TVM — vulnerabilities (device data ↔ CVE KB)”CveId→ DeviceTvmSoftwareVulnerabilities, DeviceTvmSoftwareVulnerabilitiesKBVulnerabilitySeverityLevel→ DeviceTvmSoftwareVulnerabilities, DeviceTvmSoftwareVulnerabilitiesKB
TVM — secure-config assessment (data ↔ KB)
Section titled “TVM — secure-config assessment (data ↔ KB)”ConfigurationId→ DeviceBaselineComplianceAssessment, DeviceBaselineComplianceAssessmentKB, DeviceTvmSecureConfigurationAssessment, DeviceTvmSecureConfigurationAssessmentKB — also inDeviceBaselineCompliance*— same field name, different semantic.ConfigurationCategory→ DeviceBaselineComplianceAssessmentKB, DeviceTvmSecureConfigurationAssessment, DeviceTvmSecureConfigurationAssessmentKBConfigurationSubcategory→ DeviceTvmSecureConfigurationAssessment, DeviceTvmSecureConfigurationAssessmentKBConfigurationImpact→ DeviceTvmSecureConfigurationAssessment, DeviceTvmSecureConfigurationAssessmentKB
TVM — info-gathering
Section titled “TVM — info-gathering”LastSeenTime→ DeviceTvmInfoGathering, DeviceTvmSoftwareEvidenceBeta
TVM — browser extensions (device evidence ↔ KB)
Section titled “TVM — browser extensions (device evidence ↔ KB)”BrowserName→ DeviceTvmBrowserExtensions, DeviceTvmBrowserExtensionsKBExtensionId→ DeviceTvmBrowserExtensions, DeviceTvmBrowserExtensionsKBExtensionName→ DeviceTvmBrowserExtensions, DeviceTvmBrowserExtensionsKBExtensionDescription→ DeviceTvmBrowserExtensions, DeviceTvmBrowserExtensionsKBExtensionVersion→ DeviceTvmBrowserExtensions, DeviceTvmBrowserExtensionsKBExtensionRisk→ DeviceTvmBrowserExtensions, DeviceTvmBrowserExtensionsKB
Device baseline compliance
Section titled “Device baseline compliance”ProfileId→ DeviceBaselineComplianceAssessment, DeviceBaselineComplianceProfilesIsCompliant→ AADSignInEventsBeta, DeviceBaselineComplianceAssessment, DeviceTvmSecureConfigurationAssessment, EntraIdSignInEvents — shared with TVM secure-config + Entra sign-ins.IsApplicable→ DeviceBaselineComplianceAssessment, DeviceTvmSecureConfigurationAssessmentAssessmentMethod→ DeviceBaselineComplianceAssessment, DeviceBaselineComplianceAssessmentKBRecommendedValue→ DeviceBaselineComplianceAssessment, DeviceBaselineComplianceAssessmentKBSource→ AADUserRiskEvents, DeviceBaselineComplianceAssessment, DeviceBaselineComplianceAssessmentKB
Baseline KB ↔ TVM secure-config KB share control metadata:
ConfigurationName→ DeviceBaselineComplianceAssessmentKB, DeviceTvmSecureConfigurationAssessmentKBConfigurationDescription→ DeviceBaselineComplianceAssessmentKB, DeviceTvmSecureConfigurationAssessmentKBRemediationOptions→ DeviceBaselineComplianceAssessmentKB, DeviceTvmSecureConfigurationAssessmentKB
Cloud apps (MDCA)
Section titled “Cloud apps (MDCA)”Application→ AADSignInEventsBeta, AADSpnSignInEventsBeta, AlertEvidence, BehaviorEntities, CloudAppEvents, DataSecurityBehaviors, EntraIdSignInEvents, EntraIdSpnSignInEvents, IdentityDirectoryEvents, IdentityEvents, IdentityLogonEvents, IdentityQueryEventsApplicationId→ AADSignInEventsBeta, AADSpnSignInEventsBeta, AlertEvidence, BehaviorEntities, CloudAppEvents, EntraIdSignInEvents, EntraIdSpnSignInEvents, GraphAPIAuditEvents, GraphNotificationsActivityLogsOAuthApplicationId→ AlertEvidence, BehaviorEntities
Alerts & behaviors fan-out
Section titled “Alerts & behaviors fan-out”AlertId→ Alert, AlertEvidence, AlertInfoTitle→ AlertEvidence, AlertInfo, BehaviorInfo, SecurityIncidentSeverity→ AlertEvidence, AlertInfo, SecurityIncidentSentinelWorkspaceIds→ AlertEvidence, AlertInfoServiceSource→ AlertEvidence, AlertInfo, BehaviorEntities, BehaviorInfo, DataSecurityBehaviorsDetectionSource→ AlertEvidence, AlertInfo, BehaviorEntities, BehaviorInfo, DataSecurityBehaviorsAttackTechniques→ AlertEvidence, AlertInfo, BehaviorInfo, DataSecurityBehaviorsBehaviorId→ BehaviorEntities, BehaviorInfo, DataSecurityBehaviorsDataSources→ BehaviorEntities, BehaviorInfoCategories→ AlertEvidence, BehaviorEntities, BehaviorInfo, DataSecurityBehaviors, DeviceTvmInfoGatheringKB, ExposureGraphNodes —AlertInfouses scalarCategory(singular), not theCategoriesarray.ActionType→ BehaviorEntities, BehaviorInfo, CloudAppEvents, CloudAuditEvents, CloudDnsEvents, CloudProcessEvents, CloudStorageAggregatedEvents, DataSecurityBehaviors, DataSecurityEvents, DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEvents, DisruptionAndResponseEvents, EmailPostDeliveryEvents, IdentityDirectoryEvents, IdentityEvents, IdentityLogonEvents, IdentityQueryEvents, MessagePostDeliveryEvents, UrlClickEventsAction→ AADProvisioningLogs, EmailPostDeliveryEvents, MessagePostDeliveryEventsActionCategory→ DataSecurityBehaviorsActionResult→ EmailPostDeliveryEvents, IdentityEvents, MessagePostDeliveryEventsActionTrigger→ EmailPostDeliveryEvents, MessagePostDeliveryEventsEntityType→ AlertEvidence, BehaviorEntities, GraphAPIAuditEventsEntityRole→ BehaviorEntitiesDetailedEntityRole→ BehaviorEntitiesEvidenceRole→ AlertEvidenceEvidenceDirection→ AlertEvidenceThreatFamily→ AlertEvidence, BehaviorEntitiesCloudResource→ AlertEvidence, BehaviorEntitiesCloudPlatform→ AlertEvidence, BehaviorEntitiesResourceType→ Alert, AlertEvidence, HeartbeatResourceID→ AlertEvidenceSubscriptionId→ AlertEvidence, CloudStorageAggregatedEvents, HeartbeatStartTime→ Anomalies, BehaviorInfo, DataSecurityBehaviors, SecurityAlert, UsageEndTime→ Anomalies, BehaviorInfo, DataSecurityBehaviors, SecurityAlert, Usage
Email / file / message threat metadata
Section titled “Email / file / message threat metadata”DetectionMethods→ EmailAttachmentInfo, EmailEvents, EmailPostDeliveryEvents, FileMaliciousContentInfo, MessageEvents, MessagePostDeliveryEvents, UrlClickEventsThreatTypes→ EmailAttachmentInfo, EmailEvents, EmailPostDeliveryEvents, FileMaliciousContentInfo, MessageEvents, MessagePostDeliveryEvents, UrlClickEventsThreatNames→ EmailAttachmentInfo, EmailEvents, FileMaliciousContentInfoThreatClassification→ EmailEvents
Data security (Purview DLP / insider risk)
Section titled “Data security (Purview DLP / insider risk)”DataSecurityEvents and DataSecurityBehaviors cross-link to alerts via
AttackTechniques / ServiceSource / DetectionSource / Categories,
to email via NetworkMessageId / InternetMessageId, to users via
AccountObjectId / AccountUpn.
SensitivityLabelId→ DataSecurityEventsSensitivityLabel→ DeviceFileEventsSensitivitySubLabel→ DeviceFileEventsObjectId→ CloudAppEvents, DataSecurityEvents — DLP-scoped content id; also used byCloudAppEvents.PrinterName→ DataSecurityBehaviors, DataSecurityEvents
Attack disruption
Section titled “Attack disruption”DisruptionAndResponseEvents logs automatic attack-disruption actions
(user disable, device contain). Pivots on its Source/Target shape (see
User / account identity above) and on PolicyId / PolicyName /
CompromisedAccountCount (per-table).
File threat intel
Section titled “File threat intel”FileMaliciousContentInfo joins endpoint + email file events via
SHA256, FileName, FileSize, FolderPath. See File identity.
Risk signals
Section titled “Risk signals”IsAnomalous→ DataSecurityBehaviorsIsPolicyOn→ DisruptionAndResponseEventsCompromisedAccountCount→ DisruptionAndResponseEvents
Anomaly flags (dynamic)
Section titled “Anomaly flags (dynamic)”UncommonForUser→ CloudAppEvents, IdentityLogonEvents — MDCA/MDI per-event anomaly signal;parse_jsonbefore filtering.LastSeenForUser→ CloudAppEvents, IdentityLogonEvents — complementsUncommonForUser; last-observed baseline.
Multi-valued / JSON fields (require mv-expand or parse_json)
Section titled “Multi-valued / JSON fields (require mv-expand or parse_json)”Filtering these with == or contains silently misses matches. Normalize
first.
AdditionalFields→ AlertEvidence, BehaviorEntities, BehaviorInfo, CloudAppEvents, CloudAuditEvents, CloudDnsEvents, CloudProcessEvents, CloudStorageAggregatedEvents, ConnectorStatusInfo, DeviceEvents, DeviceFileEvents, DeviceInfo, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceTvmHardwareFirmware, DeviceTvmInfoGathering, EmailEvents, IdentityAccountInfo, IdentityDirectoryEvents, IdentityEvents, IdentityLogonEvents, IdentityQueryEventsRawEventData→ CloudAppEvents, CloudAuditEvents, IdentityEventsCategories→ AlertEvidence, BehaviorEntities, BehaviorInfo, DataSecurityBehaviors, DeviceTvmInfoGatheringKB, ExposureGraphNodesAttackTechniques→ AlertEvidence, AlertInfo, BehaviorInfo, DataSecurityBehaviorsThreatTypes→ EmailAttachmentInfo, EmailEvents, EmailPostDeliveryEvents, FileMaliciousContentInfo, MessageEvents, MessagePostDeliveryEvents, UrlClickEventsDetectionMethods→ EmailAttachmentInfo, EmailEvents, EmailPostDeliveryEvents, FileMaliciousContentInfo, MessageEvents, MessagePostDeliveryEvents, UrlClickEventsDataSources→ BehaviorEntities, BehaviorInfoSentinelWorkspaceIds→ AlertEvidence, AlertInfoTags→ DeviceTvmSecureConfigurationAssessmentKB, IdentityAccountInfo, IdentityInfoThreatNames→ EmailAttachmentInfo, EmailEvents, FileMaliciousContentInfoUncommonForUser→ CloudAppEvents, IdentityLogonEventsLastSeenForUser→ CloudAppEvents, IdentityLogonEventsIPTags→ CloudAppEventsUserAgentTags→ CloudAppEventsActivityObjects→ CloudAppEventsSessionData→ CloudAppEventsConditionalAccessPolicies→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, AADSignInEventsBeta, EntraIdSignInEvents, SigninLogsPermissions→ OAuthAppInfoGroupMembership→ IdentityAccountInfo, IdentityInfoAssignedRoles→ IdentityAccountInfo, IdentityInfo, OAuthAppInfoKnowledgeDetails→ (not present in probe)AgentTopicsDetails→ (not present in probe)AgentToolsDetails→ (not present in probe)ConnectedAgentsSchemaNames→ (not present in probe)ChildAgentsSchemaNames→ (not present in probe)AccessCapabilities→ (not present in probe)PolicyMatchInfo→ DataSecurityBehaviorsDlpPolicyMatchInfo→ DataSecurityEventsDlpPolicyRuleMatchInfo→ DataSecurityEventsSensitivityLabelInfo→ DataSecurityBehaviorsSensitiveInfoTypesInfo→ DataSecurityBehaviorsSharepointSiteInfo→ DataSecurityBehaviorsRemovableMediaInfo→ DataSecurityBehaviors, DataSecurityEventsUrlDomainInfo→ DataSecurityBehaviors, DataSecurityEventsDeviceInfo→ DataSecurityBehaviors, DataSecurityEventsRecipientDetails→ MessageEvents, MessagePostDeliveryEventsEnrolledMfas→ IdentityAccountInfoEligibleRoles→ IdentityAccountInfoTargetObjects→ IdentityEvents
Misc shared fields
Section titled “Misc shared fields”Description→ Anomalies, BehaviorInfo, ConnectorStatusInfo, DataSecurityBehaviors, DeviceTvmInfoGatheringKB, SecurityAlert, SecurityIncidentContext→ DeviceTvmSecureConfigurationAssessment, EmailEventsLastModifiedTime→ DeviceTvmSoftwareVulnerabilitiesKB, FileMaliciousContentInfo, OAuthAppInfo, SecurityIncidentWorkload→ DataSecurityEvents, FileMaliciousContentInfo, UrlClickEventsManager→ IdentityAccountInfo, IdentityInfoDepartment→ DataSecurityEvents, IdentityAccountInfo, IdentityInfoCreatedDateTime→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, IdentityAccountInfo, IdentityInfo, SigninLogsDeletedDateTime→ IdentityAccountInfo, IdentityInfoEmployeeId→ IdentityAccountInfo, IdentityInfoGivenName→ IdentityAccountInfo, IdentityInfoSurname→ IdentityAccountInfo, IdentityInfoJobTitle→ IdentityAccountInfo, IdentityInfoAddress→ IdentityAccountInfo, IdentityInfoPhone→ IdentityAccountInfo, IdentityInfoEmailAddress→ IdentityAccountInfo, IdentityInfoDisplayName→ IdentityAccountInfo, SecurityAlertCriticalityLevel→ IdentityAccountInfo, IdentityInfoSourceProvider→ IdentityAccountInfo, IdentityInfoType→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADProvisioningLogs, AADRiskyUsers, AADServicePrincipalSignInLogs, AADSignInEventsBeta, AADSpnSignInEventsBeta, AADUserRiskEvents, Alert, AlertEvidence, AlertInfo, Anomalies, AuditLogs, BehaviorEntities, BehaviorInfo, CampaignInfo, CloudAppEvents, CloudAuditEvents, CloudDnsEvents, CloudProcessEvents, CloudStorageAggregatedEvents, ConnectorStatusInfo, DataSecurityBehaviors, DataSecurityEvents, DeviceBaselineComplianceAssessment, DeviceBaselineComplianceAssessmentKB, DeviceBaselineComplianceProfiles, DeviceEvents, DeviceFileCertificateInfo, DeviceFileEvents, DeviceImageLoadEvents, DeviceInfo, DeviceLogonEvents, DeviceNetworkEvents, DeviceNetworkInfo, DeviceProcessEvents, DeviceRegistryEvents, DeviceTvmBrowserExtensions, DeviceTvmCertificateInfo, DeviceTvmHardwareFirmware, DeviceTvmInfoGathering, DeviceTvmInfoGatheringKB, DeviceTvmSecureConfigurationAssessment, DeviceTvmSecureConfigurationAssessmentKB, DeviceTvmSoftwareEvidenceBeta, DeviceTvmSoftwareInventory, DeviceTvmSoftwareVulnerabilities, DeviceTvmSoftwareVulnerabilitiesKB, DisruptionAndResponseEvents, EmailAttachmentInfo, EmailEvents, EmailPostDeliveryEvents, EmailUrlInfo, EntraIdSignInEvents, EntraIdSpnSignInEvents, ExposureGraphEdges, ExposureGraphNodes, FileMaliciousContentInfo, GraphAPIAuditEvents, GraphNotificationsActivityLogs, Heartbeat, IdentityAccountInfo, IdentityDirectoryEvents, IdentityEvents, IdentityInfo, IdentityLogonEvents, IdentityQueryEvents, MessageEvents, MessagePostDeliveryEvents, MessageUrlInfo, MicrosoftGraphActivityLogs, OAuthAppInfo, Operation, SecurityAlert, SecurityIncident, SigninLogs, UrlClickEvents, UsageBlastRadius→ IdentityInfoRiskLevel→ AADRiskyUsers, AADUserRiskEvents, IdentityInfo, SigninLogsRiskScore→ IdentityInfo, OAuthAppInfoRiskLevelDetails→ IdentityInfoRiskScoreUpdateTime→ IdentityInfoIdentityEnvironment→ IdentityInfoSourceProviders→ IdentityInfo
Additional shared fields
Section titled “Additional shared fields”Shared fields outside the curated pivot categories above. These are generated directly from the tenant schema so connected workspace tables and custom logs remain represented without manual renderer changes.
AADTenantId→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADProvisioningLogs, AADServicePrincipalSignInLogs, AuditLogs, SigninLogsActivityDateTime→ AADUserRiskEvents, AuditLogsAgent→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, SigninLogsAlertName→ Alert, SecurityAlertAlertSeverity→ Alert, SecurityAlertApiVersion→ AADGraphActivityLogs, GraphAPIAuditEvents, MicrosoftGraphActivityLogsAppId→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, MicrosoftGraphActivityLogs, SigninLogsAuthenticationContextClassReferences→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, SigninLogsAuthenticationDetails→ EmailEvents, SigninLogsAuthenticationProtocol→ DisruptionAndResponseEvents, SigninLogsAutonomousSystemNumber→ AADServicePrincipalSignInLogs, SigninLogsCategory→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADProvisioningLogs, AADServicePrincipalSignInLogs, AlertInfo, AuditLogs, Heartbeat, SigninLogsClientAuthMethod→ AADGraphActivityLogs, MicrosoftGraphActivityLogsClientCredentialType→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, SigninLogsClientRequestId→ GraphAPIAuditEvents, MicrosoftGraphActivityLogsComments→ Alert, SecurityIncidentComputer→ Alert, Heartbeat, Operation, UsageConditionalAccessAudiences→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, SigninLogsConditionalAccessPoliciesV2→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogsDurationMs→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADProvisioningLogs, AADServicePrincipalSignInLogs, AuditLogs, GraphNotificationsActivityLogs, MicrosoftGraphActivityLogs, SigninLogsEntities→ Anomalies, SecurityAlertExtendedLinks→ Anomalies, SecurityAlertExtendedProperties→ Anomalies, SecurityAlertFederatedCredentialId→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, SigninLogsHostName→ Alert, CloudProcessEventsId→ AADManagedIdentitySignInLogs, AADProvisioningLogs, AADRiskyUsers, AADServicePrincipalSignInLogs, AADUserRiskEvents, Anomalies, AuditLogs, SigninLogsIdentity→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, AuditLogs, SigninLogsIdentityProvider→ AADGraphActivityLogs, GraphAPIAuditEvents, MicrosoftGraphActivityLogsInitiatedBy→ AADProvisioningLogs, AuditLogsLevel→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, AuditLogs, SigninLogsLocationDetails→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, SigninLogsMG→ Alert, Heartbeat, OperationManagementGroupName→ Alert, Heartbeat, OperationOperationName→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADProvisioningLogs, AADRiskyUsers, AADServicePrincipalSignInLogs, AADUserRiskEvents, AuditLogs, CloudAuditEvents, SigninLogsOperationVersion→ AADManagedIdentitySignInLogs, AADProvisioningLogs, AADServicePrincipalSignInLogs, AuditLogs, SigninLogsProviderName→ SecurityAlert, SecurityIncidentQuery→ Alert, IdentityQueryEventsRequestMethod→ AADGraphActivityLogs, GraphAPIAuditEvents, MicrosoftGraphActivityLogsRequestUri→ AADGraphActivityLogs, GraphAPIAuditEvents, MicrosoftGraphActivityLogsResource→ AuditLogs, Heartbeat, SigninLogsResourceGroup→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, AuditLogs, CloudStorageAggregatedEvents, Heartbeat, SigninLogsResourceIdentity→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, GraphNotificationsActivityLogs, SigninLogsResourceOwnerTenantId→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, SigninLogsResourceProvider→ AuditLogs, Heartbeat, SigninLogsResourceServicePrincipalId→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, SigninLogsResponseSizeBytes→ AADGraphActivityLogs, MicrosoftGraphActivityLogsResponseStatusCode→ AADGraphActivityLogs, GraphAPIAuditEvents, MicrosoftGraphActivityLogsResultDescription→ AADManagedIdentitySignInLogs, AADProvisioningLogs, AADServicePrincipalSignInLogs, AuditLogs, GraphNotificationsActivityLogs, SigninLogsResultSignature→ AADGraphActivityLogs, AADManagedIdentitySignInLogs, AADProvisioningLogs, AADServicePrincipalSignInLogs, AuditLogs, SigninLogsResultType→ AADManagedIdentitySignInLogs, AADProvisioningLogs, AADServicePrincipalSignInLogs, AuditLogs, SigninLogsRiskDetail→ AADRiskyUsers, AADUserRiskEvents, SigninLogsRoles→ AADGraphActivityLogs, MicrosoftGraphActivityLogsScopes→ AADGraphActivityLogs, GraphAPIAuditEvents, MicrosoftGraphActivityLogsServicePrincipalCredentialKeyId→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogsServicePrincipalCredentialThumbprint→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogsSignInActivityId→ AADGraphActivityLogs, MicrosoftGraphActivityLogsSolution→ Operation, UsageSourceAppClientId→ AADManagedIdentitySignInLogs, SigninLogsSourceComputerId→ Heartbeat, Operation, SecurityAlertSourceLocation→ Anomalies, EmailPostDeliveryEventsStatus→ DeviceBaselineComplianceProfiles, SecurityAlert, SecurityIncident, SigninLogsTactics→ Anomalies, SecurityAlertTechniques→ Anomalies, SecurityAlertTokenIssuedAt→ AADGraphActivityLogs, MicrosoftGraphActivityLogsUniqueTokenIdentifier→ AADManagedIdentitySignInLogs, AADServicePrincipalSignInLogs, GraphAPIAuditEvents, SigninLogsUserDisplayName→ AADRiskyUsers, AADUserRiskEvents, SigninLogsUserId→ AADGraphActivityLogs, AADUserRiskEvents, MicrosoftGraphActivityLogs, SigninLogsUserPrincipalName→ AADRiskyUsers, AADUserRiskEvents, Anomalies, SigninLogsVendorName→ Anomalies, SecurityAlertWids→ AADGraphActivityLogs, MicrosoftGraphActivityLogs
Worked pivot recipes
Section titled “Worked pivot recipes”1) Hash → everywhere it ran (endpoint + email + TI):
let h = "SHA256_HERE";union (DeviceProcessEvents | where SHA256 == h | project Timestamp, Table="DeviceProcessEvents", DeviceName, AccountUpn=InitiatingProcessAccountUpn, FileName, FolderPath), (DeviceFileEvents | where SHA256 == h | project Timestamp, Table="DeviceFileEvents", DeviceName, AccountUpn=InitiatingProcessAccountUpn, FileName, FolderPath), (DeviceImageLoadEvents | where SHA256 == h | project Timestamp, Table="DeviceImageLoadEvents", DeviceName, AccountUpn=InitiatingProcessAccountUpn, FileName, FolderPath), (EmailAttachmentInfo | where SHA256 == h | project Timestamp, Table="EmailAttachmentInfo", DeviceName=tostring(dynamic(null)), AccountUpn=RecipientEmailAddress, FileName, FolderPath=tostring(dynamic(null))), (FileMaliciousContentInfo | where SHA256 == h | project Timestamp, Table="FileMaliciousContentInfo", DeviceName=tostring(dynamic(null)), AccountUpn=FileOwnerUpn, FileName, FolderPath)| order by Timestamp asc2) Entra sign-in ↔ MDE logon correlation (same UPN, same window):
EntraIdSignInEvents| where Timestamp > ago(1h) and ErrorCode == 0| project EntraTime=Timestamp, AccountUpn, EntraIP=IPAddress, EntraCity=City, DeviceTrustType, IsCompliant| join kind=inner ( DeviceLogonEvents | where Timestamp > ago(1h) and ActionType == "LogonSuccess" | extend AccountUpn = strcat(AccountName, "@", AccountDomain) | project DeviceTime=Timestamp, DeviceName, AccountUpn, DeviceLogonType=LogonType, DeviceRemoteIP=RemoteIP ) on AccountUpn| where abs(datetime_diff('second', EntraTime, DeviceTime)) < 3003) OAuth app compromise triangulation (app ↔ SPN sign-ins ↔ Graph calls):
OAuthAppInfo| where AppName has "SuspectApp"| project OAuthAppId, ServicePrincipalId, Permissions, IsAdminConsented, ConsentedUsersCount| join kind=inner ( EntraIdSpnSignInEvents | project SpnTime=Timestamp, ServicePrincipalId, ApplicationId, IPAddress, Country, ErrorCode ) on ServicePrincipalId| join kind=leftouter ( GraphAPIAuditEvents | project GraphTime=Timestamp, ServicePrincipalId, RequestUri, ResponseStatusCode, RequestMethod, Scopes ) on ServicePrincipalId| order by SpnTime asc4) Cloud workload → process activity (MDC ↔ MDE by Azure resource):
DeviceInfo| where isnotempty(AzureResourceId)| project DeviceId, DeviceName, AzureResourceId| join kind=inner ( CloudProcessEvents | project CloudTime=Timestamp, AzureResourceId, ProcessCommandLine, FileName, AccountName, LogonId ) on AzureResourceId| project CloudTime, DeviceName, AccountName, FileName, ProcessCommandLine5) Email campaign → users who clicked a link:
EmailEvents| where NetworkMessageId in ("MSG_ID1","MSG_ID2")| join kind=inner UrlClickEvents on NetworkMessageId| project ClickTime=Timestamp1, AccountUpn, Url, NetworkMessageId, Subject6) Entra user → every surface they touched:
let oid = toscalar(IdentityInfo | where AccountUpn == "user@domain.com" | take 1 | project AccountObjectId);union (DeviceProcessEvents | where AccountObjectId == oid | project Timestamp, Table="DeviceProcessEvents", Detail=ProcessCommandLine), (IdentityLogonEvents | where AccountObjectId == oid | project Timestamp, Table="IdentityLogonEvents", Detail=strcat(LogonType, " from ", IPAddress)), (IdentityDirectoryEvents | where AccountObjectId == oid | project Timestamp, Table="IdentityDirectoryEvents", Detail=ActionType), (EntraIdSignInEvents | where AccountObjectId == oid | project Timestamp, Table="EntraIdSignInEvents", Detail=strcat(Application, " @ ", IPAddress, " err=", tostring(ErrorCode))), (CloudAppEvents | where AccountObjectId == oid | project Timestamp, Table="CloudAppEvents", Detail=strcat(Application, " / ", ActionType)), (GraphAPIAuditEvents | where AccountObjectId == oid | project Timestamp, Table="GraphAPIAuditEvents", Detail=strcat(RequestMethod, " ", RequestUri)), (AlertEvidence | where AccountObjectId == oid | project Timestamp, Table="AlertEvidence", Detail=strcat(Title, " [", Severity, "]"))| order by Timestamp asc7) Alert → all evidence → device activity around the event:
AlertInfo| where AlertId == "ALERT_ID"| join kind=inner AlertEvidence on AlertId| where isnotempty(DeviceId) and isnotempty(Timestamp)| project AlertId, DeviceId, PivotFrom=Timestamp| join kind=inner ( DeviceEvents | project DeviceId, Timestamp, ActionType, FileName, ProcessCommandLine ) on DeviceId| where Timestamp between (PivotFrom - 10m .. PivotFrom + 10m)8) CVE → vulnerable devices with CVSS / exploit context:
DeviceTvmSoftwareVulnerabilitiesKB| where CveId == "CVE-YYYY-NNNNN"| project CveId, CvssScore, IsExploitAvailable, VulnerabilityDescription| join kind=inner DeviceTvmSoftwareVulnerabilities on CveId| project DeviceName, SoftwareName, SoftwareVersion, CveId, CvssScore, IsExploitAvailableRegenerating this file
Section titled “Regenerating this file”Three pieces work together:
sys_schema_probe- a library KQL query that enumerates a curated 80-table Advanced Hunting catalog viaunion isfuzzy=true ... | getschema, covering Defender XDR plus Sentinel and Entra workspace tables. Custom logs and future workspace tables must be added to it explicitly; KQL has no metadata-only way to enumerate every connected-workspace table.scripts/build_schema_pivots.py- a deterministic renderer that turns the probe’s CSV output into the hand-maintained sections of this file.xdr schema validate-core --document docs/schema_pivots.md- checks (or, with--update-document, rewrites) the generated semantic block between theBEGIN/END GENERATED SEMANTIC GRAPHmarkers near the top.
The probe reports which curated schemas the current hunting identity can resolve. It does not prove that a table has recent rows or identify the licensed SKU.
1. Run the probe and convert to CSV
Section titled “1. Run the probe and convert to CSV”xdr schema refresh consumes one Advanced Hunting call. Its receipt names a
complete data JSONL (one row per (table, column), no local display limit)
and a metadata sidecar; completeness stays unknown because the upstream API
does not certify it. Convert the JSONL to CSV:
# Consume the receipt and previews, then select the first line.receipt=$(xdr schema refresh | jq -cs '.[0]')path=$(printf '%s' "$receipt" | jq -r '.data_path'){ echo 'TableName,ColumnName,ColumnType,ColumnOrdinal' jq -r '[.TableName,.ColumnName,.ColumnType,.ColumnOrdinal] | @csv' "$path"} > schema.csv # the renderer reads these column headersBrowse the refreshed cache with xdr schema tables --search signin and
xdr schema show AADSignInEventsBeta --search application (table-name and
column-name filters respectively; both are cache-only).
Without the CLI, run the probe in the Defender portal: open Advanced
Hunting, paste the body of src/xdr_cli/queries/sys_schema_probe.kql, and
delete the leading -- name: / -- description: / -- params: frontmatter
lines first (they are not KQL comments). xdr hunt library-show sys_schema_probe prints the executable KQL with the frontmatter already
stripped. Expect up to ~2500 rows and seconds to tens of seconds of runtime;
then Export -> Export results to CSV. The portal and CLI run the same
KQL, so rows are comparable when tenant scope, permissions, and
connected-workspace context match.
2. Rebuild the physical reference
Section titled “2. Rebuild the physical reference”python3 scripts/build_schema_pivots.py schema.csv docs/schema_pivots.mdpython3 scripts/build_schema_pivots.py schema.csv | less # stdout onlyWhen the output file exists, the renderer replaces only the text between
<!-- BEGIN GENERATED PHYSICAL REFERENCE --> and
<!-- END GENERATED PHYSICAL REFERENCE -->; the header above the markers,
the generated semantic block, and this section are left as they are. Without
an existing file it writes a complete document.
Same CSV in, same output out, so it is safe to regenerate in CI
(git diff --exit-code docs/schema_pivots.md after the render). Every bullet
has the form - `FieldName` -> Table1, Table2 -- note, so
grep IdentityLogonEvents docs/schema_pivots.md lists every field that
reaches that table.
3. Refresh the generated semantic block
Section titled “3. Refresh the generated semantic block”uv run xdr schema validate-core --document docs/schema_pivots.mduv run xdr schema validate-core --document docs/schema_pivots.md \ --update-documentThe first form reports DocumentState: current or stale; the second
rewrites the block atomically. tests/test_schema_graph_docs.py fails when
the block drifts from the packaged graph.
4. Optional sanity check
Section titled “4. Optional sanity check”python3 - <<'PY'import csv, refrom collections import defaultdictfrom pathlib import Path
truth = defaultdict(set)with open("schema.csv") as f: for row in csv.DictReader(f): truth[row["ColumnName"]].add(row["TableName"])
pat = re.compile( r"- `([A-Za-z0-9_]+)`\s*(?:\(.*?\))?\s*→\s*([^—\n]+?)(?:\s+—|$)", re.MULTILINE,)doc = Path("docs/schema_pivots.md").read_text()found = defaultdict(set)for m in pat.finditer(doc): for t in m.group(2).split(","): t = t.strip() if t and t != "**(not present in probe)**": found[m.group(1)].add(t)
shared = {c for c, ts in truth.items() if len(ts) >= 2}miss = sorted(shared - set(found))wrong = [c for c in found if found[c] != truth.get(c, set())]print(f"fields in doc={len(found)} shared in probe={len(shared)} " f"missing={len(miss)} mismatches={len(wrong)}")PYExpect missing=0 mismatches=0. Otherwise add a p(line("NewField")) call
in the right section of scripts/build_schema_pivots.py.
Troubleshooting
Section titled “Troubleshooting”- Fewer tables than expected.
isfuzzy=truesilently skips tables the tenant does not expose, so absent tables are invisible. Compare against the list insrc/xdr_cli/queries/sys_schema_probe.kql. - Cache is stale.
schema showandschema tablesreport cache age and staleness in the receipt but never refresh implicitly. Runxdr schema refreshdeliberately after a licensing or connector change. Refresh publishes a locked generation through one atomic manifest swap. - A new preview table is missing. It becomes queryable when Microsoft enables the schema for your tenant and region and the identity has access; rerun the probe then.
- Renderer prints
(not present in probe). The script names a field your CSV lacks: removed by Microsoft, license-gated, or tenant-specific. Ignore it or drop thep(line("Field"))call. - Diffing tenants.
diff <(awk -F, 'NR>1{print $1}' a.csv | sort -u) <(awk -F, 'NR>1{print $1}' b.csv | sort -u)surfaces schema parity gaps; treat them as a prompt to check licensing, permissions, region, and connectors, not as proof of SKU.