Temporary Access Pass created for user account
Description
Identifies Temporary Access Pass creations in Entra ID. A TAP allows passwordless authentication and bypasses existing credential requirements. Creation outside a managed onboarding process may indicate an attacker registering a TAP for account takeover.
Query · kql
let timeframe = 1d;
AuditLogs
| where TimeGenerated >= ago(timeframe)
| where Category =~ "UserManagement"
| where OperationName in~ (
"Admin registered security info",
"Create Temporary Access Pass method for user",
"Update user"
)
| where Result =~ "success"
| mv-expand ModProp = TargetResources[0].modifiedProperties
| where tostring(ModProp.newValue) has "TemporaryAccessPass"
or tostring(ModProp.displayName) has "TemporaryAccessPass"
| extend TargetUpn = tostring(TargetResources[0].userPrincipalName)
| extend TargetId = tostring(TargetResources[0].id)
| extend ActorUpn = tostring(InitiatedBy.user.userPrincipalName)
| extend ActorApp = tostring(InitiatedBy.app.displayName)
| extend Actor = iff(isnotempty(ActorUpn), ActorUpn, ActorApp)
| extend ActorIp = iff(
isnotempty(tostring(InitiatedBy.user.ipAddress)),
tostring(InitiatedBy.user.ipAddress),
tostring(InitiatedBy.app.ipAddress))
| extend AccountName = iff(TargetUpn has "@", tostring(split(TargetUpn, "@")[0]), TargetUpn)
| extend AccountUPNSuffix = iff(TargetUpn has "@", tostring(split(TargetUpn, "@")[1]), "")
| project
TimeGenerated,
TargetUpn,
AccountName,
AccountUPNSuffix,
TargetId,
Actor,
ActorIp,
OperationName,
CorrelationId
| sort by TimeGenerated desc