Skip to main content

SAML 2.0

Status: Scaffold — content in progress

Security Assertion Markup Language 2.0 (SAML 2.0) is an XML-based federated identity protocol used for SSO between an Identity Provider (IdP) and Service Providers (SPs).

Roles

RoleDescriptionExample
Identity Provider (IdP)Authenticates the user and issues assertionsEntra ID, Okta, ADFS
Service Provider (SP)Trusts the IdP, grants access based on assertionSalesforce, AWS Console

SP-Initiated vs IdP-Initiated Flow

SP-Initiated (most common):

  1. User accesses SP → redirect to IdP → authenticate → assertion returned → access granted

IdP-Initiated:

  1. User starts at IdP → chooses SP → assertion sent directly → access granted IdP-initiated has weaker security (no SP-generated request ID to validate)

SAML Assertion

An assertion is an XML document signed by the IdP:

<saml:Assertion>
<saml:Issuer>https://idp.corp.com/</saml:Issuer>
<saml:Subject>
<saml:NameID>jsmith@corp.com</saml:NameID>
</saml:Subject>
<saml:AttributeStatement>
<saml:Attribute Name="Role">
<saml:AttributeValue>Admin</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>

Golden SAML

If an attacker obtains the IdP's SAML signing key, they can forge assertions for any user in any SP that trusts the IdP — without any authentication.

This is the cloud equivalent of a Golden Ticket.

Real-world example: The SolarWinds/SUNBURST campaign included Golden SAML to access Office 365 environments. [Assessed — reported by Microsoft, CrowdStrike, and Mandiant, corroborated across multiple reports]

TopicLink
Golden SAML Attackgolden-saml
Entra Overviewentra-overview