Azure AD STS logon events
| Operation | Description | Sample | Rule |
|---|---|---|---|
| any | Catch-all for M365-AzureActiveDirectoryStsLogon rules matching the RecordType but no specific Operation. | N | Y |
| Password | A user authenticated to Azure AD STS using a password as the initial credential, before any MFA step. | N | Y |
| User | 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). | Y | Y |
| User | A user sign-in attempt failed; first-party capture confirms it logs under AzureActiveDirectoryStsLogon (RecordType 15), not AzureActiveDirectory (RecordType 8). | Y | Y |
any: Azure AD STS logon events (catch-all)
#Description
Catch-all for M365-AzureActiveDirectoryStsLogon rules matching the RecordType but no specific Operation.
Common Indicators #
Field/value combinations most frequently checked by detection rules targeting this event, derived from cross-vendor predicate analysis.
| Field | Kind | Value | Rules | Vendors |
|---|---|---|---|---|
csUserAgent (kusto rule field) | is_not_null | | 1 rule | kusto |
Detection Rules #
Full rule details for this event, including ATT&CK technique mappings and native queries →Kusto #
T1071, T1189, T1203
PasswordLogonInitialAuthUsingPassword
#Description
A user authenticated to Azure AD STS using a password as the initial credential, before any MFA step.
Common Indicators #
Field/value combinations most frequently checked by detection rules targeting this event, derived from cross-vendor predicate analysis.
| Field | Kind | Value | Rules | Vendors |
|---|---|---|---|---|
EventType (elastic rule field) | in | passwordlogoninitialauthusingpassword | 2 rules | elastic |
EventType (elastic rule field) | in | userloginfailed | 2 rules | elastic |
Provider_Name (elastic rule field) | in | azureactivedirectory | 2 rules | elastic |
Provider_Name (elastic rule field) | in | exchange | 2 rules | elastic |
m365::Target.Type (elastic rule field) | in | 0 | 2 rules | elastic |
m365::Target.Type (elastic rule field) | in | 10 | 2 rules | elastic |
m365::Target.Type (elastic rule field) | in | 2 | 2 rules | elastic |
m365::Target.Type (elastic rule field) | in | 6 | 2 rules | elastic |
Esql.event_count (elastic rule field) | ge | 10 | 1 rule | elastic |
Detection Rules #
Full rule details for this event, including ATT&CK technique mappings and native queries →Elastic #
T1110, T1110.001, T1110.003, T1110.004↳ also matches UserLoginFailed T1078, T1078.004, T1110, T1110.001, T1110.003, T1110.004↳ also matches UserLoginFailed
UserLoggedIn
#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).
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 #
Field/value combinations most frequently checked by detection rules targeting this event, derived from cross-vendor predicate analysis.
| Field | Kind | Value | Rules | Vendors |
|---|---|---|---|---|
EventType (elastic rule field) | eq | userloggedin | 6 rules | elastic |
security_result.action (Chronicle) | eq | ALLOW | 6 rules | chronicle |
m365::UserId (elastic rule field) | is_not_null | | 3 rules | elastic |
target.resource.product_object_id (Chronicle) | eq | 1b730954-1685-4b74-9bfd-dac224a7b894 | 3 rules | chronicle |
Provider_Name (elastic rule field) | eq | azureactivedirectory | 2 rules | elastic |
m365::ApplicationId (elastic rule field) | in | 00b41c95-dab0-4487-9791-b9d2c32c80f2 | 2 rules | elastic |
m365::ApplicationId (elastic rule field) | in | 04b07795-8ddb-461a-bbee-02f9e1bf7b46 | 2 rules | elastic |
m365::ApplicationId (elastic rule field) | in | 0ec893e0-5785-4de6-99da-4ed124e5296c | 2 rules | elastic |
m365::ApplicationId (elastic rule field) | in | 1950a258-227b-4e31-a9cf-717495945fc2 | 2 rules | elastic |
m365::ApplicationId (elastic rule field) | in | 1fec8e78-bce4-4aaf-ab1b-5451cc387264 | 2 rules | elastic |
m365::ApplicationId (elastic rule field) | in | 22098786-6e16-43cc-a27d-191a01a1e3b5 | 2 rules | elastic |
m365::ApplicationId (elastic rule field) | in | 26a7ee05-5602-4d76-a7ba-eae8b7b67941 | 2 rules | elastic |
m365::ApplicationId (elastic rule field) | in | 27922004-5251-4030-b22d-91ecd9a37ea4 | 2 rules | elastic |
m365::ApplicationId (elastic rule field) | in | 2d7f3606-b07d-41d1-b9d2-0d0c9296a6e8 | 2 rules | elastic |
m365::ApplicationId (elastic rule field) | in | 4813382a-8fa7-425e-ab75-3b753aab3abb | 2 rules | elastic |
Detection Rules #
Full rule details for this event, including ATT&CK technique mappings and native queries →Sigma #
T1078Elastic #
T1078, T1078.004, T1528, T1550, T1550.001, T1566T1078, T1078.004T1078, T1078.004Splunk #
T1185T1078↳ also matches UserLoginFailed T1110↳ also matches UserLoginFailed YARA-L #
T1078, T1078.004T1078, T1078.004T1078, T1078.004
UserLoginFailed
#Description
A user sign-in attempt failed; first-party capture confirms it logs under AzureActiveDirectoryStsLogon (RecordType 15), not AzureActiveDirectory (RecordType 8).
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 #
Field/value combinations most frequently checked by detection rules targeting this event, derived from cross-vendor predicate analysis.
| Field | Kind | Value | Rules | Vendors |
|---|---|---|---|---|
ErrorNumber (splunk rule field) | eq | 50126 | 2 rules | splunk |
EventType (elastic rule field) | in | passwordlogoninitialauthusingpassword | 2 rules | elastic |
EventType (elastic rule field) | in | userloginfailed | 2 rules | elastic |
Provider_Name (elastic rule field) | in | azureactivedirectory | 2 rules | elastic |
Provider_Name (elastic rule field) | in | exchange | 2 rules | elastic |
failed_attempts (splunk rule field) | gt | 10 | 2 rules | splunk |
m365::Target.Type (elastic rule field) | in | 0 | 2 rules | elastic |
m365::Target.Type (elastic rule field) | in | 10 | 2 rules | elastic |
m365::Target.Type (elastic rule field) | in | 2 | 2 rules | elastic |
m365::Target.Type (elastic rule field) | in | 6 | 2 rules | elastic |
record_type (splunk rule field) | eq | azureactivedirectorystslogon | 2 rules | splunk |
Esql.event_count (elastic rule field) | ge | 10 | 1 rule | elastic |
ResultStatus (splunk rule field) | eq | success | 1 rule | splunk |
count (splunk rule field) | ge | 5 | 1 rule | splunk |
uniqueIPs (splunk rule field) | gt | 20 | 1 rule | splunk |
Detection Rules #
Full rule details for this event, including ATT&CK technique mappings and native queries →Elastic #
T1110, T1110.001, T1110.003, T1110.004↳ also matches PasswordLogonInitialAuthUsingPassword T1078, T1078.004, T1110, T1110.001, T1110.003, T1110.004↳ also matches PasswordLogonInitialAuthUsingPassword Splunk #
T1110, T1110.001o365_management_activity dataset, focusing on failed user login attempts with SSO errors. This activity…T1556T1110, T1110.001Panther #
T1110
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 theAuditDataJSON blob. Expand it withConvertFrom-Json. The wrapper columns are renamed too:CreationDatenotCreationTime,UserIdsnotUserId,OperationsnotOperation. - Sentinel's
OfficeActivitytable renames several fields and turns two integer enum columns into strings. The table below maps them.
| API JSON (event pages) | OfficeActivity column | Note |
|---|---|---|
Id | OfficeId | Renamed. |
Workload | OfficeWorkload | Renamed. |
ObjectId | OfficeObjectId | Renamed. |
CreationTime | TimeGenerated | Renamed. OfficeActivity has no CreationTime column. |
SiteUrl | Site_Url | Renamed (SharePoint family). |
RecordType | RecordType | Same name; the Int32 enum becomes its string enum name. |
UserType | UserType | Same name; the Int32 enum becomes a string. |
ClientIP | ClientIP, Client_IPAddress | Both 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, OrganizationId | same names | Unchanged. 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.