Audit Logs / Microsoft Entra ID AuditLogs category
Audit Logs: CompanyBrandingLocale
| OperationName | Description | Sample | Rule |
|---|---|---|---|
| Create Branding Theme Localization | A language localization was added to a company-branding theme. | N | N |
| Delete Branding Theme Localization | A localized (language-specific) variant of a company branding theme was deleted. | N | N |
| Hard Delete Branding Theme Localization | Permanent deletion of a per-language company branding (locale) customization. | N | N |
| Update Branding Theme Localization | Records a change to a language-specific localization of a company branding theme. | N | N |
Create Branding Theme Localization
#Description
A language-specific localization was added to a company-branding theme, supplying localized sign-in customization for a particular language. Custom text that is not set per language is not localized and falls back to the default theme text.
References #
Delete Branding Theme Localization
#Description
Records the deletion of a language-specific (localized) variant of a company branding theme. Each theme can carry per-language customizations of sign-in text and assets; this operation removes one such localization while leaving the base theme intact.
References #
Hard Delete Branding Theme Localization
#Description
Records the permanent (hard) deletion of a language-specific company branding customization, the per-locale variant of the tenant's sign-in branding shown to users whose browser language matches that locale.
References #
Update Branding Theme Localization
#Description
Records a change to a language-specific localization of a company branding theme, overriding sign-in branding elements (such as text, logos, and colors) for a particular locale. Unspecified properties fall back to the theme or default branding.
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.