GOLDEN SAML
AD FS
TOKEN SIGNING
DKM KEY
DetectionBlue TeamSOCOctober 12, 2026•9 min read

Detecting Golden SAML and Federation Token Forgery

Golden SAML forges the proof of authentication itself. If the token-signing key leaves AD FS, the cloud will trust anything the attacker signs.

Scroll

In a Golden SAML attack, an adversary with administrative access to AD FS steals the token-signing certificate and its private key, then mints SAML assertions for any user, including ones that bypass MFA. The cloud tenant sees a validly signed token and issues access. The forged sign-in has no matching issuance on AD FS, and that gap, along with the key theft that precedes it, is where you detect it.

Signals at a Glance

SignalWhereATT&CK
Read of the AD FS DKM container or token-signing certificate private keyAD object access, process telemetryT1552.004
Non-AD FS process connecting to the AD FS WID database pipeSysmon pipe eventsT1555
Certificate export tooling run on an AD FS serverProcess creationT1649
Federated cloud sign-in with no matching AD FS token issuanceSigninLogs plus AD FS auditT1606.002
AD FS configuration change or new relying party or signing certAD FS Admin log, Entra auditT1484.002

Detecting Key Theft

The attacker needs the token-signing private key, which AD FS protects with the distributed key manager (DKM) key stored in Active Directory. Tools that extract it read the DKM container or query the Windows Internal Database over a named pipe. Alert on the latter first, since it is easy to baseline:

title: AD FS Database Named Pipe Connection From Unexpected Process
logsource:
  product: windows
  category: pipe_created
detection:
  selection:
    PipeName: '\MICROSOFT##WID\tsql\query'
  filter_adfs:
    Image|endswith: '\Microsoft.IdentityServer.ServiceHost.exe'
  condition: selection and not filter_adfs
level: high
# tune/validate: confirm the pipe event source in your Sysmon config (17/18) and allowlist backup or monitoring agents

Finding Sign-ins With No Issuance

A forged assertion never passes through AD FS, so it produces a cloud sign-in with no corresponding token issuance event on the federation servers. Correlate the two logs for federated users:

// Microsoft Sentinel (KQL) - federated sign-ins without a nearby AD FS issuance event
// validate: AD FS audit field layout varies by version; adjust the extract() pattern to your events
let adfs = SecurityEvent
    | where TimeGenerated > ago(1d)
    | where EventSourceName == "AD FS Auditing" and EventID in (1200, 1202)
    | extend AdfsUser = tolower(extract(@"<UserId>([^<]+)</UserId>", 1, tostring(EventData)))
    | where isnotempty(AdfsUser)
    | project AdfsTime = TimeGenerated, AdfsUser;
SigninLogs
| where TimeGenerated > ago(1d) and ResultType == 0
| where UserPrincipalName endswith "@contoso.com"   // replace with your federated domain(s)
| extend AdfsUser = tolower(UserPrincipalName)
| join kind=leftouter adfs on AdfsUser
| where isempty(AdfsTime) or abs(datetime_diff('minute', TimeGenerated, AdfsTime)) > 10
| summarize Unmatched = count(), IPs = make_set(IPAddress, 5) by UserPrincipalName
| order by Unmatched desc
Vetted sources

Use Microsoft’s guidance on AD FS hardening and detecting Golden SAML, the CISA and Mandiant write-ups on SolarWinds-era SAML forgery, and the SigmaHQ rule set for AD FS database access. Baseline your own environment before alerting on issuance gaps, and confirm audit log field names on your AD FS version.

Build Detections That Fire

Mjolnir Security helps blue teams turn threat intelligence into high-fidelity detections across endpoint, network, identity and cloud telemetry.

Detection EngineeringManaged Detection & ResponseThreat HuntingIncident ResponsePurple Teaming
  • Detection Engineering We build and tune detections mapped to ATT&CK from your own telemetry.
  • Threat Hunting as a Service Hypothesis-driven hunts for the behaviours on this page.
  • 24/7 Incident Response Containment when a detection fires. Call +1 833 403 5875.
Written by: Mjolnir Threat Research (MTAC)  |  Published: October 12, 2026  |  Last reviewed: October 12, 2026