Security Assertion Markup Language (SAML) ist ein XML-basierter Standard für föderierte Authentifizierung und Single Sign-On (SSO), insbesondere in Enterprise- und Behörden-Umgebungen. Im Mittelpunkt stehen drei Rollen: der Identity Provider (IdP), der die Authentifizierung des Nutzers durchführt, der Service Provider (SP), der eine geschützte Anwendung bereitstellt, und der Nutzer selbst. Der IdP stellt nach erfolgreicher Authentifizierung eine signierte SAML-Assertion aus, die der SP validiert und zur Anmeldung des Nutzers nutzt.
Eingesetzt wird SAML insbesondere für Enterprise-SSO zwischen On-Premises-Identity-Providern (Microsoft AD FS, Shibboleth, PingFederate) und SaaS-Anwendungen (Salesforce, ServiceNow, Workday, Atlassian) sowie zwischen Behörden- und Universitäts-Identitätsverbünden (DFN-AAI, eduGAIN). Der typische SAML-2.0-Profile-Stack nutzt HTTP-Redirect oder HTTP-POST-Bindings für den Austausch der Assertions; Metadaten-Dokumente beschreiben Endpunkte, Schlüssel und unterstützte Profile.
Vor SAML waren Domain-übergreifende SSO-Lösungen oft proprietär oder erforderten gemeinsame Verzeichnisse. SAML ermöglicht es, dass ein Nutzer sich nur einmal beim IdP seiner Organisation anmeldet und anschließend ohne weitere Anmeldung auf eine Vielzahl externer Anwendungen zugreifen kann — wichtig für Großunternehmen, Behörden und Bildungseinrichtungen mit langfristig gewachsenen IT-Landschaften.
Historisch wurde SAML 1.0 2002 von OASIS standardisiert, SAML 2.0 — die heute fast ausschließlich verwendete Version — im März 2005. Trotz seiner XML-Schwergewichtigkeit hat sich SAML 2.0 in Enterprise-SSO-Szenarien stabil gehalten, weil die Investitionen in IdPs und SP-Integrationen erheblich sind. Mit dem Aufstieg moderner Web- und Mobile-Apps hat OpenID Connect viele Neu-Implementierungen übernommen; SAML bleibt aber dominant in vielen Bestandssystemen und ist Bestandteil von Frameworks wie Microsoft Entra ID, Okta, Ping und Keycloak.
SAML-Integration ist berüchtigt für ihre Detail-Tücken — ungültige Zeitstempel, falsch konfigurierte Audience Restrictions, abgelaufene Signaturschlüssel und Probleme mit XML Canonicalization sind klassische Fehlerquellen. In Security-Communities kursiert daher das Bonmot "SAML works perfectly, until it doesn't, and then it really doesn't".