Audit Logs / Microsoft Entra ID AuditLogs category
Audit Logs: CertificateBasedAuthConfiguration
| OperationName | Description | Sample | Rule |
|---|---|---|---|
| Add Certificate | The tenant's certificate-based authentication configuration (trusted CA store) object was created. | N | N |
| Delete Certificate | The tenant's certificate-based authentication configuration (trusted CA store) was deleted. | N | N |
| Update Certificate | Change to the tenant certificate-based auth configuration (trusted CA collection). | N | N |
Add CertificateBasedAuthConfiguration
#Description
The tenant's certificate-based authentication configuration object was created, establishing the trusted certificate authority (CA) store that Microsoft Entra uses to validate user certificates during certificate-based authentication. Trusted-CA changes are security-sensitive: an attacker-controlled CA in the store could enable certificate-based authentication bypass or user impersonation.
References #
Delete CertificateBasedAuthConfiguration
#Description
The tenant's certificate-based authentication configuration object, which holds the collection of trusted certificate authorities, was deleted. Removing it tears down the trust store that governs certificate-based sign-in for the tenant.
References #
Update CertificateBasedAuthConfiguration
#Description
Records a change to the tenant certificate-based authentication configuration, which holds the collection of trusted certificate authorities used for Microsoft Entra CBA. Because this configuration defines which CAs are trusted for certificate sign-in, modifications are relevant to detecting authentication-bypass or persistence attempts.
References #
Rules often query computed field names, not native AuditLogs columns #
Many Entra detection rules pivot on field names that are not columns in this table but KQL projections the rule author computes from two dynamic columns. Searching the field list for those names finds nothing; use the canonical paths instead.
InitiatingUserPrincipalName(and siblingInitiating*names) is not a column. Rules project it fromInitiatedBy, for exampleextend InitiatingUserPrincipalName = tostring(InitiatedBy.user.userPrincipalName). The native paths areInitiatedBy.user.userPrincipalName,InitiatedBy.user.displayName, andInitiatedBy.user.idfor user actors, andInitiatedBy.app.displayName/InitiatedBy.app.appIdfor application or service-principal actors.- What changed lives in
TargetResources, adynamicarray. Expand it before filtering on the change:AuditLogs | mv-expand TargetResources | extend props = TargetResources.modifiedProperties, then readprops[].displayName,props[].oldValue, andprops[].newValue.
Column shapes per the AuditLogs table reference and the Graph directoryAudit resource.