Security Assertion Markup Language kurz SAML ist ein XML-basierter, offener Authentifizierungsstandard. Er ermöglicht den sicheren Austausch von Authentifizierungs- und Autorisierungsdaten zwischen verschiedenen, vertrauenswürdigen Parteien. Das ist in der Regel ein Identitätsanbieter (Identity Provider - IdP) wie z. B. Engity und eine Anwendung, die auch als Dienstanbieter (Service Provider - SP) bezeichnet wird. Der SAML-Standard erlaubt Nutzern mit einer Authentifizierung bzw. Anmeldung (Single Sign-On (SSO)) Zugriff auf mehrere Anwendungen zu erhalten. Erreicht wird dies durch die Verwendung von XML-basierten Datenbankpaketen (auch Assertions genannt), die Authentifizierungs- und Autorisierungsinformationen zwischen den Entitäten übertragen.
Durch die Zentralisierung der Identitätsverwaltung und Reduzierung der benötigten Anzahl an Passwörtern vereinfacht SAML den Benutzerzugriff auf Unternehmensanwendungen und Cloud-Dienste. Dies verbessert neben der Sicherheit auch die Benutzerfreundlichkeit.
Entwickelt wurde SAML ab 2001 von dem OASIS-Konsortium. OASIS steht für Organization for the Advancement of Structured Information Standards und ist eine internationale, nicht-gewinnorientierte Organisation. Sie beschäftigt sich mit der Weiterentwicklung von E-Business- und Webservice-Standards, wie OpenDocument und DocBook und pflegt sicherheitsrelevante Standards wie SAML.
Insgesamt gibt es mittlerweile drei Hauptversionen von SAML: SAML 1.0, SAML 1.1 und die aktuelle, weit verbreitete Version SAML 2.0. Diese ersetzte ab 2005 die Vorgänger und bietet verbesserte Funktionen wie Single Logout (SLO) oder Namens-ID-Management und robustere Sicherheit wie die Verschlüsselung der Kommunikation zwischen Identity Provider und Service Provider. Der aktuelle Standard ist SAML 2.0, auch wenn viele Systeme aus Kompatibilitätsgründen frühere Versionen wie SAML 1.1 unterstützen.
So funktioniert SAML: Ein technischer Überblick
Der SAML-Prozess beginnt damit, dass ein Benutzer versucht, auf eine vom Service Provider bereitgestellte, geschützte Ressource zuzugreifen. Der Service Provider erkennt, dass der Benutzer nicht authentifiziert ist, generiert eine Authentifizierungsanfrage und leitet den Benutzer zum Identity Provider weiter. Der Identity Provider fordert den Benutzer auf sich anzumelden, z. B. per E-Mail-Adresse und Passwort und generiert nach erfolgreicher Authentifizierung eine SAML-Assertion - ein signiertes XML-Dokument (eine weitergehende Erklärung folgt im nächsten Kapitel). Diese Assertion enthält Informationen über die Identität des Benutzers und alle relevanten Attribute (z. B. Rollen), die dann über den Browser an den Service Provider zurückgesendet werden. Der Service Provider validiert die Assertion, indem er die Signatur und ggf. weiterer Sicherheitsaspekte wie die Gültigkeitsdauer überprüft. Daraufhin gewährt er dem Benutzer Zugriff auf die angeforderte Ressource.
Wichtige SAML-Komponenten: Assertions, Protokolle, Bindungen und Profile
SAML basiert auf mehreren Schlüsselkomponenten um einen sicheren Zugang mittels Single Sign-On (SSO)-Prozess zu ermöglichen. Diese Komponenten legen fest, wie Nachrichten erstellt, übertragen und verarbeitet werden und gewährleisten eine sichere und effiziente Kommunikation zwischen Identity Provider und Service Provider. Sie umfassen vier verschiedene Arten: Assertions, Protokolle, Bindungen und Profile.
SAML-Assertions
Den Grundstein des SAML-Frameworks bilden die SAML-Assertions (XML-Dokumente mit Nutzerdaten). Diese werden vom IdP erstellt und enthalten Aussagen über einen Benutzer zu Identität, Authentifizierung und Autorisierung. Es wird zwischen drei Arten von SAML-Assertions unterschieden, die digital signiert sind, um ihre Integrität und Authentizität zu gewährleisten.
- Authentifizierungs-Assertion: Diese Assertion bestätigen, dass ein Benutzer vom Identity Provider authentifiziert wurde, und enthalten die Methode und den Zeitpunkt der Authentifizierung.
- Attribut-Assertion: Diese Assertion enthält spezifische Informationen über den authentifizierten Benutzer. In Form von Attributen wie Name, Rolle, Berechtigungen, werden diese Informationen in eine beglaubigte Aussage verpackt, um Identität, Authentifizierung oder Autorisierung zu bestätigen und zu übertragen.
- Autorisierungs-Entscheidungs-Assertion: Diese Assertion geben an, ob der authentifizierte Benutzer Zugriff auf eine bestimmte Ressource bekommt oder nicht.
SAML-Protokolle
Protokolle in SAML definieren die Regeln für die Anforderung und den Austausch von Assertions zwischen den jeweiligen Entitäten und erfüllen jeweils eine bestimmte Funktion im SAML-Workflow. Diese Protokolle werden ähnlich wie SAML-Assertions mit festgelegten XML-Tags codiert. Nachfolgend werden die wichtigsten Kernprotokolle beschrieben, die sicher stellen, dass Authentifizierungs- und Autorisierungsprozesse sicher und effizient durchgeführt werden.
- Authentication Request Protocol: Dieses Protokoll definiert, wie ein Service Provider einen Authentifizierung-Request an den Identity Provider sendet und diesen auffordert, die Identität des Benutzers zu überprüfen.
- Artifact Resolution Protocol: Dieses Protokoll wird für den Transport von SAML-Nachrichten zwischen dem IdP und SP verwendet. Dabei werden kleine Artefakte angefordert und übertragen, was den Austausch spezifischer Protokollnachrichten vereinfacht.
- Single Logout Protocol: Dieses Protokoll verwaltet den Prozess der gleichzeitigen Abmeldung eines Benutzers aus mehreren Anwendungen und ermöglicht es, alle aktiven Sitzungen gleichzeitig zu beenden.
- Name Identifier Management Protocol: Dieses Protokoll ermöglicht die Verwaltung oder Änderung von Benutzeridentitäten (Name Identifier) wie z. B. Änderung des Benutzernamens während des föderierten Single Sign-Ons. Es ermöglicht auch das Entfernen von Verbindungen zwischen einem SP und einem IdP für einen bestimmten Benutzer.
- Assertion Query and Request Protocol: Dieses Protokoll definiert, wie bestehende oder neue Authentifizierungs-Assertions angefordert werden können.
SAML-Bindungen
SAML-Bindungen (Bindings) definieren wie SAML-Nachrichten zwischen einem Identity Provider (IdP) und einem Service Provider (SP) über verschiedene Transportprotokolle wie HTTP, SOAP oder andere transportiert werden. Dabei hat jede Bindung ihre eigenen Anwendungsfälle und Vorteile. Zu den wichtigsten gehören HTTP Redirect Binding, HTTP POST Binding, SOAP Binding und HTTP Artifact Binding.
- HTTP Redirect Binding: Wird für die Übertragung von SAML-Nachrichten in URL-Parameter mittels HTTP-Weiterleitung verwendet; oft für Anfragen vom SP zum IdP.
- HTTP POST Binding: Transportiert SAML-Nachrichten in einem HTML-Formular. Wird vom Browser des Benutzers an den SP gesendet.
- HTTP Artifact Binding: Der IdP sendet ein kleines “Artifact” (eine Referenz) über den Browser an den SP, der dann die Assertion vom IdP anfordert. Das Besondere ist, dass die eigentliche Kommunikation zwischen IdP und SP über eine direkte Server-zu-Server-Abfrage (Back Channel) erfolgt. Dies verringert die Angriffsfläche für Angreifer.
- SOAP Binding: Die SOAP-Bindungen nutzen das Simple Object Access Protocol (SOAP) für den Austausch von SAML-Nachrichten. Diese werden in SOAP-Umschläge (digitale Briefumschläge) gekapselt und über HTTP oder HTTPS versandt.
SAML-Profile
SAML-Profile sind die „Baupläne“, die festlegen, wie Assertions, Protokolle und Bindungen zusammen verwendet werden, damit SAML in der Praxis funktioniert. Denn während zum Beispiel Assertions die Daten liefern, liefern Profile die Regeln und den Ablauf, um die föderierte Identitätsverwaltung und das Single Sign-On zu realisieren. Nachfolgend finden sich einige Beispiele für wichtige SAML-Profile:
- Web Browser SSO Profile: Ermöglicht SSO über Webbrowser, sodass Benutzer sich einmal anmelden, um nahtlos auf mehrere Dienste zugreifen zu können.
- Name Identifier Management Profile: Verwaltet Benutzer-Aliase und ermöglicht Benachrichtigungen bei Änderungen. Verlässt zum Beispiel ein Mitarbeiter ein Unternehmen, kann mithilfe des Profils der Zugriff in der gesamten föderierten Umgebung deaktiviert werden.
- Single Logout Profile: Definiert, wie die Abmeldung bei allen verbundenen Diensten gleichzeitig abgewickelt wird, die derzeit für einen angegebenen Benutzer aktiv sind.
- Attribute Query Profile: Beschreibt wie ein Service Provider nach der ersten Authentifizierung zusätzliche Benutzerattribute vom Identity Provider anfordern kann.
Vorteile der Implementierung von SAML für das Identitätsmanagement
Einer der Hauptvorteile der Implementierung von SAML ist die Verbesserung der Sicherheit durch Single Sign-On (SSO). Mit SSO müssen sich Benutzer nur einmal authentifizieren, um Zugriff auf mehrere Anwendungen zu erhalten, wodurch das Risiko von Passwortmüdigkeit und die Wahrscheinlichkeit schwacher Passwörter verringert wird. Dieser optimierte Authentifizierungsprozess verbessert nicht nur die Sicherheit, sondern auch die Benutzererfahrung, da keine mehrfachen Anmeldungen mehr erforderlich sind.
Darüber hinaus verlagert SAML die Verantwortung für die Verwaltung und Speicherung der Benutzeranmeldedaten auf einen Identity Provider. So ist sichergestellt, dass die Authentifizierungsdaten nicht an Service Provider weitergegeben oder in einzelnen Anwendungen gespeichert werden, wodurch das Risiko des Diebstahls von Anmeldedaten weiter verringert wird. Und Unternehmen können durch die Zentralisierung der Authentifizierung robuste Passwortrichtlinien, granulare Zugriffskontrollen und strengere Sicherheitsmaßnahmen wie die Multi-Faktor-Authentifizierung durchsetzen und so eine widerstandsfähigere und sicherere Umgebung schaffen. Zudem spart SAML Kosten und Zeit, da Aufgaben im Zusammenhang mit der Verwaltung mehrerer Konten und Passwörter reduziert werden. Dies führt zu weniger Helpdesk-Anfragen und Passwortzurücksetzungen.
Ein weiterer Vorteil von SAML ist die Unterstützung der föderierten Identitätsverwaltung (Federated Identity Management kurz FIM). Die föderierte Identität (Federated Identity) ermöglicht es Benutzern, mit einem einzigen Satz von Anmeldedaten auf Ressourcen in verschiedenen Organisationen und Domänen zuzugreifen. Durch die Aktivierung der föderierten Identität ermöglicht SAML eine nahtlose Zusammenarbeit und gemeinsame Nutzung von Ressourcen bei gleichzeitiger Aufrechterhaltung robuster Sicherheitskontrollen. Besonders vorteilhaft ist dies für Unternehmen, die in einem komplexen, vernetzten Ökosystem bzw. in einer Umgebung mit mehreren Domänen tätig sind oder mit externen Partnern zusammenarbeiten und deshalb eine Integration mit Diensten von Drittanbietern benötigen.
Zudem bietet SAML Skalierbarkeit und Flexibilität, wodurch es für Unternehmen jeder Größe geeignet ist. Und dank seines offenen Standards kann es in unterschiedlichen Umgebungen und auf einer Vielzahl von Plattformen implementiert werden, wodurch die Kompatibilität mit bestehenden Systemen und zukünftigen Technologien gewährleistet ist.
SAML im Vergleich zu anderen Identitätsmanagement-Protokollen
SAML ist zwar ein weit verbreiteter Standard für das Identitätsmanagement, ist aber nicht das einzige verfügbare Protokoll und wird heutzutage im Vergleich zu anderen Protokollen immer weniger eingesetzt. Das hat damit zu tun, dass andere Protokolle wie OAuth 2.0, OpenID Connect (OIDC) und Kerberos eine wichtige Rolle spielen. Dabei hat jedes Protokoll seine eigenen Stärken und Anwendungsfälle, und das Verständnis der Unterschiede zwischen ihnen kann dabei helfen, die für die jeweiligen Anforderungen am besten geeignete Lösung auszuwählen.
SAML vs. OAuth 2.0
OAuth 2.0 (Open Authorization) ist ein weit verbreiteter offener Standard für die Zugriffsdelegierung. Er wird häufig verwendet, um Drittanbieteranwendungen eingeschränkten Zugriff auf Benutzerressourcen zu gewähren, ohne Anmeldedaten preiszugeben. Im Gegensatz zu SAML, das sich auf die Authentifizierung und Autorisierung konzentriert, befasst sich OAuth in erster Linie mit der Autorisierung und kann entweder mit OpenID Connect oder SAML verwendet werden um Single Sing-On zu ermöglichen. Bei OAuth 2.0 und SAML handelt es sich also nicht um Alternativen, sondern um sich ergänzende Technologien.
SAML vs. OpenID Connect (OIDC)
OpenID Connect (OIDC) und SAML sind beides Protokolle zur Benutzer Authentifizierung und bieten föderierte Identitäten sowie Single Sign-On-Funktionalitäten an. Historisch bedingt ist SAML vor allem noch im Unternehmensumfeld weit verbreitet, da viele bestehende Enterprise-Anwendungen dieses Protokoll unterstützen. OIDC verfolgt hingegen einen moderneren und zugleich einfacheren Ansatz für die Authentifizierung. Neben dem klassischen Unternehmenseinsatz, ist OIDC daher insbesondere bei Web- und Mobilanwendungen sehr beliebt. Es gilt als leichter integrierbar, findet eine zunehmend breitere Akzeptanz und hat sich in modernen Architekturen als bevorzugter Standard etabliert. Konsequenterweise verdrängt OIDC SAML immer weiter und führt dazu, dass in modernen Umgebungen heute vermehrt OIDC-Infrastrukturen anstatt des SAML-Protokolls eingebaut werden.
SAML vs. Kerberos
Kerberos ist ein weiteres Authentifizierungsprotokoll. Es ist älter als SAML und in vielen Unternehmensnetzwerken, insbesondere in Windows-Domänen, weit verbreitet. Es stützt sich auf einen vertrauenswürdigen Drittanbieter-Dienst, dem sogenannten Key Distribution Center (KDC), um die Identität von Benutzern und Diensten zu authentifizieren. Dazu stellt Kerberos kryptografische Tickets für den Zugriff auf Ressourcen zur Verfügung, ohne Passwörter über das Netzwerk zu senden. Insbesondere für die interne Netzwerkauthentifizierung ist Kerberos sehr sicher und effizient. Im Vergleich zu SAML, eignet es sich aber weniger für webbasierte und föderierte Identitätsszenarien.
Häufige Anwendungsfälle für SAML in Unternehmen
SAML wurde in Unternehmensumgebungen häufig eingesetzt, um Single Sign-On (SSO) für mehrere Anwendungen und Dienste zu ermöglichen, wird aber heutzutage bei neuen Projekten regelmäßig durch OpenID Connect (OIDC) ersetzt. Gerade in bestehenden Infrastrukturen, in denen OIDC noch nicht vollständig etabliert ist, stellt SAML weiterhin eine stabile und erprobte Lösung dar.
Besonders Bildungseinrichtungen, wie Schulen und Universitäten, haben SAML häufig verwendet, um ihren Schülern, Studenten und Lehrkräften Zugang zu einer Vielzahl von Online-Ressourcen wie Bibliotheksdatenbanken und Tools für die Zusammenarbeit bieten zu können. Durch SAML konnte ein nahtloser Zugang zu diesen Ressourcen geboten werden, was die Benutzererfahrung verbesserte, und den Verwaltungsaufwand reduzierte, der bei der Verwaltung mehrerer Konten automatisch entsteht. Darüber hinaus ermöglichte die Unterstützung von SAML für die föderierte Identitätsverwaltung Bildungseinrichtungen die Zusammenarbeit mit anderen Organisationen und die sichere gemeinsame Nutzung von Ressourcen.
Auch Organisationen und Behörden des öffentlichen Sektors nutzen noch die Funktionen von SAML. Diese Einrichtungen müssen häufig Bürgern, Mitarbeitern und Auftragnehmern einen sicheren Zugriff auf sensible Informationen und Dienste ermöglichen. Die Unterstützung für föderierte Identitäten und die robusten Sicherheitsfunktionen machten SAML seinerzeit zu einer idealen Lösung für diese Umgebungen. Behörden konnten so sicherstellen, dass nur autorisierte Personen Zugriff auf kritische Ressourcen haben, gleichzeitig aber eine sichere Zusammenarbeit mit externen Partnern und anderen Behörden ermöglichen. Dies erhöhte sowohl die Sicherheit als auch die betriebliche Effizienz und machte SAML zu einem wertvollen Werkzeug für den öffentlichen Sektor.
Bewährte Verfahren für die sichere Implementierung von SAML
Bevor man sich für die Einführung von SAML entscheidet, sollte abgewogen werden, ob es nicht sinnvoller ist auf das modernere und leistungsstärkere OpenID Connect Protokoll zu setzen.
Sollte nach reiflicher Prüfung dennoch die Entscheidung für die Implementierung von SAML fallen, ist es unerlässlich, bewährte Verfahren zu befolgen, um die Sicherheit und Integrität des Identitätsmanagementsystems zu gewährleisten. Einer der wichtigsten Aspekte ist die Sicherstellung, dass alle SAML-Assertions signiert und verschlüsselt sind. Dadurch werden Manipulationen und unbefugter Zugriff auf sensible Informationen verhindert. Die Verwendung starker kryptografischer Algorithmen und die regelmäßige Aktualisierung von Verschlüsselungsschlüsseln sind ebenfalls wichtige Maßnahmen zur Aufrechterhaltung der Sicherheit von SAML-Nachrichten. Darüber hinaus sollten Unternehmen SAML-Assertions validieren, um sicherzustellen, dass sie von vertrauenswürdigen Identity Providern stammen.
Eine weitere bewährte Vorgehensweise ist die Implementierung robuster Zugriffskontrollen und -richtlinien. Dazu gehört die Definition klarer Rollen und Berechtigungen für Benutzer und die Sicherstellung, dass der Zugriff nach dem Prinzip der geringsten Rechte/Berechtigungen gewährt wird. Die regelmäßige Überprüfung und Aktualisierung der Zugriffskontrollen sind entscheidend, um unbefugten Zugriff zu verhindern und sicherzustellen, dass nur auf die Ressourcen zugegriffen werden kann, die die Benutzer benötigen. Die Implementierung einer Multi-Faktor-Authentifizierung (MFA) kann die Sicherheit weiter erhöhen, indem sie eine zusätzliche Verifizierungsebene für Benutzer hinzufügt, die auf sensible Ressourcen zugreifen.
Überwachung und Audits sind ebenfalls wesentliche Bestandteile einer sicheren SAML-Implementierung. Unternehmen sollten Protokollierungs- und Überwachungsmechanismen implementieren, um SAML-Transaktionen zu verfolgen und verdächtige Aktivitäten zu erkennen. Regelmäßige Audits der SAML-Infrastruktur können dabei helfen, potenzielle Schwachstellen zu identifizieren und zu beheben und die Einhaltung von Sicherheitsrichtlinien und Vorschriften sicherzustellen. Durch die Befolgung dieser bewährten Verfahren können Unternehmen das volle Potenzial von SAML ausschöpfen und gleichzeitig ein sicheres und robustes Identitätsmanagementsystem aufrechterhalten.
Fehlerbehebung bei häufigen SAML-Problemen
Auch mit SAML können Unternehmen bei der Implementierung und dem Betrieb auf häufige Probleme stoßen. Ein häufiges Problem ist eine Fehlkonfiguration, die zu Authentifizierungsfehlern und Zugriffsproblemen führen kann. Dies kann auftreten, wenn der Identity Provider und der Service Provider nicht korrekt für die Kommunikation miteinander konfiguriert sind. Durch die Sicherstellung, dass Metadaten, Zertifikate und Endpunkt-URLs korrekt konfiguriert sind, können solche Probleme vermieden werden. Durch regelmäßige Tests der SAML-Einrichtung und gründliche Konfigurationsüberprüfungen können potenzielle Probleme ebenfalls identifiziert und behoben werden, bevor sich diese auf die beteiligten Benutzer auswirken.
Ein weiteres häufiges Problem ist die Zeitabweichung auf den jeweiligen Servern von Identity Provider und Service Provider. Hierbei ist SAML auf sehr genaue Zeitstempel angewiesen, um die Gültigkeit von Assertions sicherzustellen. Wenn die Uhren auf den Servern nicht synchronisiert sind, kann dies zu Authentifizierungsfehlern führen. Die Implementierung des Network Time Protocol (NTP) auf allen Servern, die am SAML-Prozess beteiligt sind, hilft eine genaue Zeitsynchronisation aufrechtzuerhalten und Probleme mit Zeitabweichungen zu vermeiden. Darüber hinaus kann die Konfiguration geeigneter Zeitabweichungstoleranzen eine gewisse Flexibilität beim Umgang mit geringfügigen Zeitunterschieden bieten.
Die Zuordnung von Benutzerattributen ist ein weiterer Bereich, in dem Probleme auftreten können. Wenn sich IdP und der SP nicht über das Format und die Namen der Benutzerattribute einigen können, kann dies zu Problemen bei der Benutzerbereitstellung und Zugriffskontrolle führen. Eine klare Definition und Zuordnung der Benutzerattribute zwischen dem Identity Provider und dem Service Provider ist unerlässlich, um sicherzustellen, dass die richtigen Informationen ausgetauscht und für die Authentifizierung und Autorisierung verwendet werden. Eine regelmäßige Überprüfung und Aktualisierung der Attributzuordnungen können dazu beitragen, Probleme zu vermeiden und eine reibungslose SAML-Implementierung zu gewährleisten.