Azure AD STS logon events

OperationDescriptionSampleRule
PasswordLogonInitialAuthUsingPasswordA user authenticated to Azure AD STS using a password as the initial credential, before any MFA step.NY
UserLoggedInA user account authenticated against the Microsoft Entra ID Secure Token Service (STS). The schema defines RecordType 15 as STS logon events without restricting them to interactive sign-ins, so do not read this event as covering interactive logons only; a successful UserLoggedIn record also does not by itself mean the user went on to access any resource. First-party capture confirms it logs under AzureActiveDirectoryStsLogon (RecordType 15), not AzureActiveDirectory (RecordType 8).YY
UserLoginFailedA user sign-in attempt failed; first-party capture confirms it logs under AzureActiveDirectoryStsLogon (RecordType 15), not AzureActiveDirectory (RecordType 8).YY

PasswordLogonInitialAuthUsingPassword

#
RecordType
AzureActiveDirectoryStsLogon

Description

A user authenticated to Azure AD STS using a password as the initial credential, before any MFA step.

Detection Fields #

Fields referenced by at least one attached detection rule. This view counts distinct rules and is not a complete schema for this catalog entry.

NameRulesVendors
event.action2 detection rulesElastic
event.category2 detection rulesElastic
event.provider2 detection rulesElastic
Target.Type2 detection rulesElastic
LogonError1 detection ruleElastic
source.as.organization.name1 detection ruleElastic

Common Indicators #

Positive field/value combinations most frequently checked by detection rules attached to this catalog entry, derived from cross-vendor predicate analysis. This is separate from Fields accounting, which also includes exclusions and counts distinct attached rules.

FieldKindValueRulesVendors
m365::Target.Type (elastic rule field)in02 ruleselastic
m365::Target.Type (elastic rule field)in102 ruleselastic
m365::Target.Type (elastic rule field)in22 ruleselastic
m365::Target.Type (elastic rule field)in62 ruleselastic
Esql.event_count (elastic rule field)ge101 ruleelastic

Detection Rules #

Full rule details for this catalog entry, including ATT&CK technique mappings and native queries →

Elastic #

UserLoggedIn

#
RecordType
AzureActiveDirectoryStsLogon

Description

A user account authenticated against the Microsoft Entra ID Secure Token Service (STS). The schema defines RecordType 15 as STS logon events without restricting them to interactive sign-ins, so do not read this event as covering interactive logons only; a successful UserLoggedIn record also does not by itself mean the user went on to access any resource. First-party capture confirms it logs under AzureActiveDirectoryStsLogon (RecordType 15), not AzureActiveDirectory (RecordType 8).

Detection Fields #

Fields referenced by at least one attached detection rule. This view counts distinct rules and is not a complete schema for this catalog entry.

NameRulesVendors
event.action7 detection rulesElastic
security_result.action6 detection rulesYARA-L
ApplicationId5 detection rulesElastic
target.resource.product_object_id5 detection rulesYARA-L
ExtendedProperties.RequestType4 detection rulesElastic
Operation4 detection rulesSigma, Splunk
event.outcome3 detection rulesElastic
user_agent.original3 detection rulesElastic
UserId3 detection rulesElastic
UserType3 detection rulesElastic
event.provider2 detection rulesElastic
ExtendedProperties.ResultStatusDetail2 detection rulesElastic
ObjectId2 detection rulesElastic
source.geo.country_name2 detection rulesElastic
Target.Type2 detection rulesElastic
Workload2 detection rulesSplunk
ApplicationId1 detection ruleSigma
event.category1 detection ruleElastic
network.http.user_agent1 detection ruleYARA-L
network.session_id1 detection ruleYARA-L
o365.audit.Target.ID1 detection ruleElastic
ObjectId1 detection ruleSigma
RequestType1 detection ruleSigma
ResultStatus1 detection ruleSigma
source.geo.region_name1 detection ruleElastic
source.ip1 detection ruleElastic
target.application1 detection ruleYARA-L
target.user.userid1 detection ruleYARA-L

Example Audit Record #

{
  "Actor": [
    {
      "ID": "11111111-1111-1111-1111-111111111111",
      "Type": 0
    },
    {
      "ID": "adminuser@example.onmicrosoft.com",
      "Type": 5
    }
  ],
  "ActorContextId": "00000000-0000-0000-0000-000000000001",
  "ActorIpAddress": "203.0.113.10",
  "ApplicationId": "fb78d390-0c51-40cd-8e17-fdbfab77341b",
  "AzureActiveDirectoryEventType": 1,
  "ClientIP": "203.0.113.10",
  "CreationTime": "2026-07-02T15:29:47Z",
  "DeviceProperties": [
    {
      "Name": "OS",
      "Value": "Linux"
    },
    {
      "Name": "BrowserType",
      "Value": "Firefox"
    },
    {
      "Name": "IsCompliant",
      "Value": "False"
    },
    {
      "Name": "IsCompliantAndManaged",
      "Value": "False"
    },
    {
      "Name": "SessionId",
      "Value": "0022840a-e4ab-884c-587f-d20d24637227"
    }
  ],
  "ErrorNumber": "0",
  "ExtendedProperties": [
    {
      "Name": "ResultStatusDetail",
      "Value": "Success"
    },
    {
      "Name": "UserAgent",
      "Value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:152.0) Gecko/20100101 Firefox/152.0"
    },
    {
      "Name": "RequestType",
      "Value": "Cmsi:Cmsi"
    }
  ],
  "Id": "c9b63ef0-aa6e-4042-886d-75a46ac31000",
  "InterSystemsId": "fe1336ca-2296-44cf-9fd2-e4f912dc1aa1",
  "IntraSystemId": "c9b63ef0-aa6e-4042-886d-75a46ac31000",
  "ObjectId": "00000002-0000-0ff1-ce00-000000000000",
  "Operation": "UserLoggedIn",
  "OrganizationId": "00000000-0000-0000-0000-000000000001",
  "RecordType": 15,
  "ResultStatus": "Success",
  "Target": [
    {
      "ID": "00000002-0000-0ff1-ce00-000000000000",
      "Type": 0
    }
  ],
  "TargetContextId": "00000000-0000-0000-0000-000000000001",
  "UserId": "adminuser@example.onmicrosoft.com",
  "UserKey": "11111111-1111-1111-1111-111111111111",
  "UserType": 0,
  "Version": 1,
  "Workload": "AzureActiveDirectory"
}

Common Indicators #

Positive field/value combinations most frequently checked by detection rules attached to this catalog entry, derived from cross-vendor predicate analysis. This is separate from Fields accounting, which also includes exclusions and counts distinct attached rules.

FieldKindValueRulesVendors
security_result.action (Chronicle)eqALLOW6 ruleschronicle
m365::UserId (elastic rule field)is_not_null3 ruleselastic
target.resource.product_object_id (Chronicle)eq1b730954-1685-4b74-9bfd-dac224a7b8943 ruleschronicle
m365::ApplicationId (elastic rule field)is_not_null2 ruleselastic
m365::Target.Type (elastic rule field)in02 ruleselastic
m365::Target.Type (elastic rule field)in102 ruleselastic
m365::Target.Type (elastic rule field)in22 ruleselastic
m365::Target.Type (elastic rule field)in32 ruleselastic
m365::Target.Type (elastic rule field)in52 ruleselastic
m365::Target.Type (elastic rule field)in62 ruleselastic
source.geo.country_name (elastic rule field)is_not_null2 ruleselastic
Esql.source_ip_count_distinct (elastic rule field)ge21 ruleelastic
ResultStatus (sigma rule field)eqSuccess1 rulesigma
TargetUserName (chronicle rule field)macrore.replace($login.target.user.userid, `@.*$`, "")1 rulechronicle
aws::userAgent (elastic rule field)eqBAV2ROPC1 ruleelastic

Detection Rules #

Full rule details for this catalog entry, including ATT&CK technique mappings and native queries →

Sigma #

Elastic #

  • M365 Identity OAuth Flow by First-Party Microsoft App from Multiple IPs source high: Identifies sign-ins on behalf of a principal user to the Microsoft Graph or legacy Azure AD API from multiple IPs using first-party Microsoft applications from the FOCI (Family of Client IDs) group. Developer tools like Azure CLI, VSCode, and Azure PowerShell accessing these resources from multiple IPs are flagged, along with any FOCI application accessing the deprecated Windows Azure Active Directory from multiple IPs. This behavior may indicate an adversary using a phished OAuth authorization code or refresh token, as seen in attacks like ConsentFix where attackers steal localhost OAuth codes and replay them from attacker infrastructure.T1078, T1078.004, T1528, T1550, T1550.001, T1566
  • M365 Identity Login from Atypical Region source medium: Detects successful Microsoft 365 portal logins from a country and region the user has not previously authenticated from in a specific time window. Atypical regions are identified by combining the user's country and region geolocation history; an authentication from a new country/region pair for that user may indicate an adversary attempting to access the account from an unusual location or behind a VPN.T1078, T1078.004
  • M365 Identity Login from Impossible Travel Location source medium: Detects successful Microsoft 365 portal logins from impossible travel locations. Impossible travel locations are defined as two different countries within a short time frame. This behavior may indicate an adversary attempting to access a Microsoft 365 account from a compromised account or a malicious actor attempting to access a Microsoft 365 account from a different location.T1078, T1078.004

Splunk #

YARA-L #

UserLoginFailed

#
RecordType
AzureActiveDirectoryStsLogon

Description

A user sign-in attempt failed; first-party capture confirms it logs under AzureActiveDirectoryStsLogon (RecordType 15), not AzureActiveDirectory (RecordType 8).

Detection Fields #

Fields referenced by at least one attached detection rule. This view counts distinct rules and is not a complete schema for this catalog entry.

NameRulesVendors
Operation9 detection rulesPanther, Splunk
Workload7 detection rulesSplunk
ErrorNumber3 detection rulesSplunk
event.action2 detection rulesElastic
event.category2 detection rulesElastic
event.provider2 detection rulesElastic
record_type2 detection rulesSplunk
Target.Type2 detection rulesElastic
LogonError1 detection ruleSplunk
LogonError1 detection ruleElastic
ResultStatus1 detection ruleSplunk
source.as.organization.name1 detection ruleElastic

Example Audit Record #

{
  "Actor": [
    {
      "ID": "11111111-1111-1111-1111-111111111111",
      "Type": 0
    },
    {
      "ID": "adminuser@example.onmicrosoft.com",
      "Type": 5
    }
  ],
  "ActorContextId": "00000000-0000-0000-0000-000000000001",
  "ActorIpAddress": "203.0.113.10",
  "ApplicationId": "12128f48-ec9e-42f0-b203-ea49fb6af367",
  "AzureActiveDirectoryEventType": 1,
  "ClientIP": "203.0.113.10",
  "CreationTime": "2026-07-02T15:44:44Z",
  "DeviceProperties": [
    {
      "Name": "OS",
      "Value": "Linux"
    },
    {
      "Name": "BrowserType",
      "Value": "Firefox"
    },
    {
      "Name": "IsCompliant",
      "Value": "False"
    },
    {
      "Name": "IsCompliantAndManaged",
      "Value": "False"
    },
    {
      "Name": "SessionId",
      "Value": "0022840a-e4ab-884c-587f-d20d24637227"
    }
  ],
  "ErrorNumber": "50199",
  "ExtendedProperties": [
    {
      "Name": "ResultStatusDetail",
      "Value": "Success"
    },
    {
      "Name": "UserAgent",
      "Value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:152.0) Gecko/20100101 Firefox/152.0"
    },
    {
      "Name": "RequestType",
      "Value": "Login:reprocess"
    }
  ],
  "Id": "c2d3606b-8392-481a-a571-d3a63f701000",
  "InterSystemsId": "3e459115-c228-4fd9-aa4a-b8af7572a0e0",
  "IntraSystemId": "c2d3606b-8392-481a-a571-d3a63f701000",
  "LogonError": "CmsiInterrupt",
  "ObjectId": "00000003-0000-0000-c000-000000000000",
  "Operation": "UserLoginFailed",
  "OrganizationId": "00000000-0000-0000-0000-000000000001",
  "RecordType": 15,
  "ResultStatus": "Success",
  "Target": [
    {
      "ID": "00000003-0000-0000-c000-000000000000",
      "Type": 0
    }
  ],
  "TargetContextId": "00000000-0000-0000-0000-000000000001",
  "UserId": "adminuser@example.onmicrosoft.com",
  "UserKey": "11111111-1111-1111-1111-111111111111",
  "UserType": 0,
  "Version": 1,
  "Workload": "AzureActiveDirectory"
}

Common Indicators #

Positive field/value combinations most frequently checked by detection rules attached to this catalog entry, derived from cross-vendor predicate analysis. This is separate from Fields accounting, which also includes exclusions and counts distinct attached rules.

FieldKindValueRulesVendors
ErrorNumber (splunk rule field)eq501262 rulessplunk
failed_attempts (splunk rule field)gt102 rulessplunk
m365::Target.Type (elastic rule field)in02 ruleselastic
m365::Target.Type (elastic rule field)in102 ruleselastic
m365::Target.Type (elastic rule field)in22 ruleselastic
m365::Target.Type (elastic rule field)in62 ruleselastic
Esql.event_count (elastic rule field)ge101 ruleelastic
ResultStatus (splunk rule field)eqSuccess1 rulesplunk
count (splunk rule field)ge51 rulesplunk
uniqueIPs (splunk rule field)gt201 rulesplunk
uniqueIpUserCombinations (splunk rule field)gt201 rulesplunk
uniqueUsers (splunk rule field)gt201 rulesplunk
unique_app_ids (splunk rule field)gt21 rulesplunk
unique_user_agents (splunk rule field)gt51 rulesplunk

Detection Rules #

Full rule details for this catalog entry, including ATT&CK technique mappings and native queries →

Elastic #

Splunk #

Panther #

any: Azure AD STS logon events (catch-all)

#

Scope grouping: This repository-authored catalog entry represents a broad attribution scope, not a distinct emitted event or operation. Any sample below is a representative record from that scope; attached rules, if any, are listed separately.

RecordType
AzureActiveDirectoryStsLogon

Description

Catch-all for M365-AzureActiveDirectoryStsLogon rules matching the RecordType but no specific Operation.

Detection Fields #

Fields referenced by at least one attached detection rule. This view counts distinct rules and is not a complete schema for this catalog entry.

NameRulesVendors
RecordType1 detection ruleKusto

Common Indicators #

Positive field/value combinations most frequently checked by detection rules attached to this catalog entry, derived from cross-vendor predicate analysis. This is separate from Fields accounting, which also includes exclusions and counts distinct attached rules.

FieldKindValueRulesVendors
csUserAgent (kusto rule field)is_not_null1 rulekusto

Detection Rules #

Full rule details for this catalog entry, including ATT&CK technique mappings and native queries →

Kusto #

  • Malformed user agent source medium: Malware authors will sometimes hardcode user agent string values when writing the network communication component of their malware. Malformed user agents can be an indication of such malware.T1071, T1189, T1203

References #

M365 audit records use different field names on each surface #

The same Unified Audit Log record uses different field names on each surface. A query built for one surface can silently miss on another. These pages document the Management Activity API JSON names, the same names Search-UnifiedAuditLog and the Office 365 Management Activity API return.

  • Purview CSV export flattens each record to four columns (CreationDate, UserIds, Operations, AuditData). The API field names live only inside the AuditData JSON blob. Expand it with ConvertFrom-Json. The wrapper columns are renamed too: CreationDate not CreationTime, UserIds not UserId, Operations not Operation.
  • Sentinel's OfficeActivity table renames several fields and turns two integer enum columns into strings. The table below maps them.
API JSON (event pages)OfficeActivity columnNote
IdOfficeIdRenamed.
WorkloadOfficeWorkloadRenamed.
ObjectIdOfficeObjectIdRenamed.
CreationTimeTimeGeneratedRenamed. OfficeActivity has no CreationTime column.
SiteUrlSite_UrlRenamed (SharePoint family).
RecordTypeRecordTypeSame name; the Int32 enum becomes its string enum name.
UserTypeUserTypeSame name; the Int32 enum becomes a string.
ClientIPClientIP, Client_IPAddressBoth columns present on OfficeActivity.
Scope(none)No OfficeActivity equivalent under any name. Recover it from the API JSON or the Purview AuditData blob.
Operation, UserId, ResultStatus, UserKey, AppAccessContext, OrganizationIdsame namesUnchanged. No _s / _d suffixes (a native table, not a custom log).

Mapping verified against the OfficeActivity table reference, the Management Activity API schema, and the Purview audit-record export format.