SAML und Federation
Single Sign-On für Unternehmen
SAML und Federation ist eine kostenlose Cyber Security Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cyber Security Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cyber Security Academy-Kurs umfasst insgesamt 4 Lektionen.
Was SAML ist
SAML (Security Assertion Markup Language) ist ein XML-basierter Standard zum Austausch von Authentifizierungs- und Autorisierungsdaten, der im Bereich Enterprise-SSO vorherrschend ist.
- Damit kann ein unternehmensweiter Identity Provider gegenüber vielen Anwendungen die Identität eines Benutzers bestätigen.
- SAML 2.0 ist älter als OIDC und in B2B- und Workforce-Identity-Umgebungen weiterhin fest etabliert.
Das Verständnis von SAML ist für den Schutz der Unternehmensföderation unverzichtbar, denn ein einziger Vertrauensfehler kann jede verbundene App offenlegen.
Rollen von IdP und SP
Eine SAML-Föderation hat zwei zentrale Parteien.
- Identity Provider (IdP) authentifiziert den Benutzer und stellt Assertions aus (Okta, Entra ID, Ping).
- Service Provider (SP) ist die Anwendung, die dem IdP vertraut und Zugriff gewährt.
Das Vertrauen wird außerhalb des Protokolls durch den Austausch von Metadaten hergestellt, darunter Signaturzertifikate und Endpunkt-URLs.
IdP -> authenticates user, signs assertion
SP -> consumes assertion, grants access
Metadata exchange establishes trust (certs, ACS URLs)Die SAML-Assertion
Das zentrale Artefakt ist die Assertion, ein XML-Dokument, das besagt, dass der IdP ein Subjekt authentifiziert hat.
- Subject identifiziert den Benutzer (NameID).
- Conditions legen den Gültigkeitszeitraum und die vorgesehene Audience fest.
- AuthnStatement dokumentiert, wie und wann die Authentifizierung erfolgt ist.
- AttributeStatement übermittelt Rollen, E-Mail-Adressen und Gruppen-Claims.
<saml:Assertion>
<saml:Subject><saml:NameID>user@corp</saml:NameID></saml:Subject>
<saml:Conditions NotOnOrAfter="2026-06-04T10:05:00Z"
AudienceRestriction="https://sp.example"/>
<saml:AuthnStatement .../>
</saml:Assertion>Vom SP initiierter SSO-Flow
Das häufigste Muster ist der SP-initiierte SSO-Flow.
- Der Benutzer ruft den SP auf. Dieser erzeugt eine
AuthnRequestund leitet den Benutzer zum IdP weiter. - Der IdP authentifiziert den Benutzer und sendet per POST eine signierte
Responsean den Assertion Consumer Service (ACS) des SP zurück. - Der SP validiert die Assertion und erstellt eine lokale Sitzung.
1. SP -> AuthnRequest -> IdP (redirect)
2. user authenticates at IdP
3. IdP -> signed SAMLResponse -> SP ACS (HTTP POST)
4. SP validates -> sessionXML-Signaturen verankern das Vertrauen
Die Sicherheit von SAML beruht auf digitalen XML-Signaturen. Der IdP signiert die Assertion und/oder die Response mit seinem privaten Schlüssel. Der SP prüft die Signatur mit dem vertrauenswürdigen Zertifikat.
- Signieren Sie die Assertion selbst und nicht nur die äußere Response.
- Prüfen Sie die Signatur anhand eines gepinnten IdP-Zertifikats aus den Metadaten, nicht anhand eines in der Nachricht eingebetteten Zertifikats.
Die meisten SAML-Angriffe zielen auf die Logik der Signaturvalidierung.
XML Signature Wrapping (XSW)
XML Signature Wrapping ist die Angriffsklasse für SAML-Signaturen. Der Angreifer lässt ein gültig signiertes Element bestehen, fügt aber eine zweite, gefälschte Assertion hinzu, die die Anwendungslogik tatsächlich liest.
- Die Signatur wird weiterhin anhand des ursprünglichen Fragments erfolgreich geprüft.
- Die Geschäftslogik verarbeitet jedoch die eingeschleuste, unsignierte Assertion.
Abhilfe: Verwenden Sie eine gehärtete SAML-Bibliothek, validieren Sie, dass das signierte Element tatsächlich verarbeitet wird, und lehnen Sie Dokumente mit mehreren oder mehrdeutigen Assertions ab.
Document after XSW:
<Response>
<Assertion id="evil">attacker claims</Assertion> // read by app
<Assertion id="orig" SIGNED>real user</Assertion> // sig valid here
</Response>Einschränkungen für Audience und Empfänger
Eine Assertion muss an den vorgesehenen SP gebunden sein. SAML stellt dafür ausdrückliche Einschränkungen bereit.
- AudienceRestriction benennt die Entity-ID des SP, für den die Assertion gültig ist.
- Recipient in SubjectConfirmation muss mit der ACS-URL übereinstimmen.
Der SP muss diese Einschränkungen erzwingen. Wird die Audience nicht geprüft, kann eine für eine App ausgestellte Assertion bei einer anderen erneut verwendet werden.
Replay- und Timing-Schutz
Assertions sind kurzlebige, nur einmal verwendbare Zugangsdaten. SPs müssen dies erzwingen.
- Berücksichtigen Sie
NotBeforeundNotOnOrAftermit einer engen Toleranz für Uhrabweichungen. - Verfolgen Sie die
IDder Assertion und lehnen Sie jede Wiederverwendung innerhalb des Gültigkeitszeitraums ab. - Setzen Sie TLS für den ACS-Endpunkt voraus.
Ohne Replay-Verfolgung kann eine abgefangene Assertion vor ihrem Ablauf erneut eingereicht werden.
SP checks:
now in [NotBefore, NotOnOrAfter] (+- small skew)
assertion.ID not seen before -> store + reject reuseFöderation und Vertrauensketten
Föderation skaliert SSO über Organisationsgrenzen hinweg, teilweise über Hubs oder Broker, die zwischen Protokollen übersetzen.
- Jede Vertrauensbeziehung ist eine potenzielle Schwachstelle: Ein kompromittierter IdP kann sich als jeder Benutzer ausgeben.
- Identity Broker können SAML und OIDC miteinander verbinden, was ein sorgfältiges Claim-Mapping erfordert.
Wenden Sie auf das Attribut-Mapping das Prinzip der geringsten Rechte an und überwachen Sie unerwartete neue SP-Registrierungen.
Häufige SAML-Schwachstellen
Wiederkehrende SAML-Fehlerzustände, die Sie überprüfen sollten:
- Signatur nicht verifiziert oder Response signiert, Assertion jedoch nicht.
- Anfällig für XML Signature Wrapping.
- Prüfungen von Audience und Recipient fehlen.
- Kein Replay-Schutz oder übermäßig lange Gültigkeitszeiträume.
- Parsing von XML External Entities (XXE) auf dem SP.
- Das in der Nachricht eingebettete Zertifikat wird anstelle festgelegter Metadaten als vertrauenswürdig eingestuft.
Disable external entities in the XML parser:
parser.setFeature(
"http://apache.org/xml/features/disallow-doctype-decl", true)SAML vs. OIDC
Beide ermöglichen SSO, unterscheiden sich jedoch in ihrem Aufbau.
- SAML verwendet XML sowie Browser-POST- und Redirect-Bindings und ist im Enterprise- und Workforce-Umfeld weit verbreitet; außerdem gibt es ausgereifte Tools.
- OIDC verwendet JSON/JWT, ist REST-freundlich und eignet sich besser für mobile Anwendungen und SPAs.
Viele Organisationen setzen beide Protokolle ein. Sicherheitsteams sollten die Regeln zur Validierung von Assertions für das jeweils verwendete Protokoll kennen, da sich die Angriffsfläche unterscheidet.
Schnelltest: XSW abwehren
Wählen Sie die beste Abwehrmaßnahme gegen den beschriebenen Angriff.
Zusammenfassung: SAML und Föderation
Die wichtigsten Erkenntnisse:
- SAML ist ein XML-basiertes Enterprise-SSO zwischen einem IdP und einem SP, bei dem signierte Assertions verwendet werden.
- Die Sicherheit hängt von der korrekten Validierung der XML-Signatur anhand eines festgelegten Zertifikats ab.
- Schützen Sie sich gegen XML Signature Wrapping, Replay-Angriffe und XXE.
- Erzwingen Sie immer Einschränkungen für Audience und Recipient sowie Gültigkeitszeiträume.
- Föderation skaliert Vertrauen, vergrößert aber auch den Schadensradius eines kompromittierten IdP.
Häufig gestellte Fragen
Ist die Lektion „SAML und Federation“ kostenlos?
Ja — der vollständige Text von „SAML und Federation“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cyber Security Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cyber Security Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „SAML und Federation“?
Single Sign-On für Unternehmen Du übst Cyber Security Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Cyber Security Academy zu starten?
Keine Vorkenntnisse erforderlich. Cyber Security Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „SAML und Federation“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Cyber Security Academy-Lektion Code schreiben und ausführen?
Ja. Jede Cyber Security Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- OAuth-2.0-Flows
- OpenID Connect (OIDC)
- SAML und Federation
- Token-Angriffe und Härtung