Was ist Security Assertion Markup Language (SAML)?
- IAM-Glossar
- Was ist Security Assertion Markup Language (SAML)?
Security Assertion Markup Language (SAML) ist ein offener, XML-basierter Standard, mit dem ein Identitätsanbieter (IdP) die Authentifizierungs- und Autorisierungsdaten eines Benutzers sicher an einen Dienstanbieter (Service Provider, SP) übermitteln kann. Einfach ausgedrückt ist SAML eine der wichtigsten Technologien, mit der sich Benutzer einmal anmelden und auf mehrere Anwendungen zugreifen können, ohne ihre Zugangsdaten erneut eingeben zu müssen.
Wofür wird SAML verwendet?
SAML kommt in der Regel überall dort zum Einsatz, wo Benutzer einen sicheren, reibungslosen Zugriff auf mehrere Anwendungen benötigen. Zu den häufigsten Anwendungsfällen gehören:
- Single Sign-On (SSO): Mit einer einzigen Anmeldung erhalten Sie Zugriff auf mehrere Anwendungen, sodass Sie Ihre Zugangsdaten nicht für jeden Dienst erneut eingeben müssen.
- Föderierte Identität: Mit SAML kann ein Unternehmen Identitäten vertrauen, die von einem Partner oder einem Mutterunternehmen ausgestellt wurden, sodass Benutzer aus einer vertrauenswürdigen Domäne Zugriff erhalten, ohne dass separate Konten erforderlich sind.
- Zugriffsmanagement im Unternehmen: IT-Teams erhalten eine zentrale Kontrolle darüber, wer auf welche Anwendungen zugreifen darf, indem sie Anmeldungen über einen einzigen Identitätsanbieter (IdP) leiten. So können sie einheitliche Richtlinien wie Multi-Faktor-Authentifizierung (MFA) überall gleichzeitig durchsetzen.
In jedem Anwendungsfall stellt der IdP eine signierte XML-Assertion aus, die über den Browser des Benutzers an den SP übermittelt wird. Auf diese Weise werden die Authentifizierungsdaten sicher übertragen, ohne dass sich der Benutzer erneut anmelden muss.
Wichtige Komponenten von SAML
SAML-Austausche umfassen in der Regel das Zusammenspiel mehrerer Komponenten. Hier sind einige Schlüsselbegriffe, die den Authentifizierungsprozess wesentlich verständlicher machen:
- Principal (Subjekt): Der zu authentifizierende Benutzer, in der Regel eine Person, die auf eine bestimmte Anwendung zugreifen möchte.
- Identitätsanbieter (IdP): Das System, das den Benutzer verifiziert und die Assertion ausstellt, wie beispielsweise Microsoft Entra ID oder Okta, um die eigentliche Anmeldung zu ermöglichen.
- Dienstanbieter (SP): Die Anwendung oder Website, die der Benutzer aufrufen möchte und die sich bei der Bestätigung der Identität des Benutzers auf den IdP verlässt, anstatt Zugangsdaten zu verwalten.
- SAML-Assertion: Das signierte XML-Statement, das der IdP an den SP sendet und die Identitäts- und Autorisierungsdaten des Benutzers enthält (mehr dazu weiter unten).
- Metadaten: Die Konfigurationsdaten, die beide Seiten im Vorfeld austauschen, z. B. Endpunkte, Zertifikate usw., dienen zum Nachweis der gegenseitigen Vertrauenswürdigkeit und der Kommunikationsfähigkeit zwischen IdP und SP.
- Signaturzertifikat: Das digitale Zertifikat, das den öffentlichen Schlüssel enthält, den der SP zur Überprüfung der Signatur der Assertion verwendet, wodurch Vertrauen zwischen dem SP und dem IdP hergestellt wird, um sicherzugehen, dass die Assertion während der Übertragung nicht verändert wurde.
Wie funktioniert die SAML-Authentifizierung?
Die SAML-Authentifizierung funktioniert, indem eine signierte Assertion vom IdP an den SP übermittelt wird, die bestätigt, dass der Benutzer die Person ist, für die er sich ausgibt. Der SP-initiierte Ablauf ist die gängigste Variante der SAML-Authentifizierung und beginnt, wenn der Benutzer zu der Website oder Anwendung navigiert, die er verwenden möchte. Wenn die Anwendung für die Anmeldung auf einen externen IdP zurückgreift, leitet sie den Browser des Benutzers mit einer SAML-Authentifizierungsanfrage an den IdP weiter. Der IdP überprüft anschließend die Zugangsdaten des Benutzers, um ihn zu authentifizieren. Verfügt der Benutzer bereits über eine aktive Sitzung, wird dieser Schritt übersprungen. Sobald der IdP die Anforderungen erfüllt hat, generiert er eine signierte Assertion und sendet diese über den Browser an den SP zurück. Schließlich überprüft der SP die Signatur der Assertion, vertraut ihr und gewährt dem Benutzer Zugriff, ohne dass eine separate Anmeldung erforderlich ist. Zwar ist die SP-initiierte Authentifizierung bei SAML am weitesten verbreitet, doch gibt es auch einen IdP-initiierten Ablauf, bei dem der Benutzer stattdessen beim IdP beginnt, beispielsweise durch Anklicken einer Anwendungskachel auf einem Unternehmens-Dashboard.
Was ist eine SAML-Assertion?
Eine SAML-Assertion ist das signierte XML-Dokument, das der IdP an den SP sendet, um für einen Benutzer zu bürgen. Jede Assertion kann eine oder mehrere Aussagen enthalten, bei denen es sich um die eigentlichen Informationen handelt, Jede Assertion kann eine oder mehrere Aussagen enthalten, bei denen es sich um die eigentlichen Informationen handelt, mit denen der SP entscheidet, ob dem Benutzer Zugriff gewährt werden soll. Es gibt drei Arten von Statements:
- Authentifizierungs-Statements bestätigen, wer der Benutzer ist, wann und auf welche Weise (d. h., ob eine MFA verwendet wurde) er sich angemeldet hat.
- Attribut-Statements enthalten zusätzliche Informationen über den Benutzer, wie beispielsweise dessen Rolle oder Abteilung. Der SP kann diese Attribute verwenden, um zu entscheiden, was der Benutzer sehen kann oder tun darf.
- Autorisierungsentscheidungs-Statements geben an, ob dem Benutzer Zugriff auf eine bestimmte Ressource gewährt wird oder nicht. Diese Art von Statement wird selten verwendet, da komplexere Autorisierungen in der Regel über eXtensible Access Control Markup Language (XACML) erfolgen.
SAML vs. andere Authentifizierungsstandards
SAML wird häufig mit anderen Identitäts- und Zugriffsprotokollen in Verbindung gebracht, die zwar verwandte, aber unterschiedliche Aufgaben erfüllen. Der Hauptzweck von SAML ist die Durchführung der Authentifizierung, d. h. der Nachweis, wer ein Benutzer ist und ob er Zugriff auf eine Website oder Anwendung erhält oder nicht. Die Authentifizierung ist das Unterscheidungsmerkmal zu OAuth, einem Autorisierungsprotokoll, das einer Anwendung die Berechtigung zum Zugriff auf bestimmte Ressourcen erteilt. SAML und OAuth ergänzen sich eher, anstatt miteinander zu konkurrieren: SAML dient der Identitätsbestätigung, während OAuth den Zugriff gewährt.
OpenID Connect (OIDC) ähnelt eher SAML, da beide Protokolle Benutzer authentifizieren und SSO ermöglichen. OIDC ist jedoch eine auf OAuth aufbauende Authentifizierungsebene, die JSON Web Tokens (JWTs) verwendet, die für moderne Web- und Mobilanwendungen geeignet sind, während der XML-basierte Ansatz von SAML nach wie vor häufig für SSO in Unternehmens-Webanwendungen genutzt wird, auch wenn OIDC bei neuen Anwendungen zunehmend zum Standard wird. Im Vergleich dazu ist das Lightweight Directory Access Protocol (LDAP) ein älteres Verzeichnisprotokoll, das bereits vor dem Aufkommen der Cloud entwickelt wurde und für lokale Umgebungen konzipiert ist. Anstatt mit SAML zu konkurrieren, fungiert LDAP häufig hinter einem SAML-IdP als Quelle für Benutzerzugangsdaten.
| SAML | OAuth | OIDC | LDAP | |
|---|---|---|---|---|
| Funktion | Authentifizierung und SSO | Autorisierung | Authentifizierung (über OAuth) | Verzeichniszugriff |
| Format | Signierte XML-Assertion | Zugriffstoken | JWT | Verzeichnisabfragen |
| Am besten geeignet für | SSO für Unternehmens-Webanwendungen | Delegierter API-Zugriff | Mobile und Cloud-native Anwendungen | Lokale Verzeichnisse |
SAML
OAuth
OIDC
LDAP
Vor- und Nachteile von SAML
SAML bietet gleichzeitig viele Vorteile und Kompromisse, die es vor der Einführung zu verstehen gilt.
Vorteile von SAML
Der größte Vorteil von SAML ist die Reduzierung der Anzahl der Passwörter, die Benutzer verwalten müssen. Mit einer einzigen Anmeldung, die den Zugriff auf mehrere Anwendungen ermöglicht, müssen sich die Benutzer weniger Zugangsdaten merken, wodurch die Angriffsoberfläche minimiert und das Risiko eines Zugangsdatendiebstahls verringert wird. Da die Authentifizierung über einen einzigen IdP erfolgt, profitieren Unternehmen zudem von einer zentralisierten Richtlinienverwaltung. Sicherheitsteams können MFA von einem einzigen Standort aus einheitlich für alle verbundenen Anwendungen durchsetzen. Diese Zentralisierung zahlt sich durch die Senkung der Helpdesk-Kosten aus, da dadurch die Anzahl der Anfragen zur Passwortzurücksetzung sinkt, die den IT-Support in der Regel überlasten.
Nachteile von SAML
Die Vorteile von SAML zeigen sich nur, wenn die Auszeichnungssprache korrekt konfiguriert ist. Zur Gewährleistung der Nachrichtenintegrität und des Datenschutzes nutzt der Standard XML-Signaturen und XML-Verschlüsselung sowie TLS für die Transportsicherheit. Eine der häufigsten SAML-Schwachstellen hängt mit Fehlkonfigurationen, beispielsweise einer fehlerhaften Validierung von Signaturen, zusammen. Das XML-basierte Modell ist weniger flexibel als moderne Token-Formate, sodass die Implementierung von SAML für Mobil- und Single-Page-Anwendungen eine Herausforderung darstellt.