Security Assertion Markup Language (oder SAML) ist ein Protokoll, das eine Möglichkeit zur Authentifizierung von Benutzern bietet. SAML bietet eine Möglichkeit, Benutzer bei Webanwendungen von Drittanbietern zu authentifizieren, indem der Browser des Benutzers auf eine Anmeldeseite des Unternehmens umgeleitet wird und dann nach erfolgreicher Authentifizierung auf dieser Anmeldeseite der Browser des Benutzers zurück zu dieser Webanwendung des Drittanbieters umgeleitet wird, auf die er Zugriff erhalten hat.
Der wichtigste Anwendungsfall, den SAML adressiert, ist Webbrowser Single Sign-On (SSO). SSO ist innerhalb einer Sicherheitsdomäne relativ einfach zu bewerkstelligen (z. B. mithilfe von Cookies), aber die Ausweitung von SSO über Sicherheitsdomänen hinweg ist schwieriger und führte zur Verbreitung von nicht interoperablen proprietären Technologien.
Diese komplexe SSO-Implementierung ermöglicht eine nahtlose Authentifizierung zwischen Firmen und Unternehmen. SAML ermöglicht es diesen föderierten Apps und Organisationen, miteinander zu kommunizieren und den Benutzern der anderen zu vertrauen.
Was ist SAML?
Die SAML-Spezifikation definiert drei Rollen:
- Der Principal
- Der Identitätsanbieter
- Der Dienstanbieter
In erster Linie fordert der Principal einen Dienst beim Service Provider an. Der Service-Provider fordert vom Identity-Provider eine Authentifizierungs-Assertion an und erhält diese. Auf Basis dieser Assertion kann der Service-Provider eine Entscheidung zur Zugriffskontrolle treffen, d. h. er kann entscheiden, ob er den Dienst für den angeschlossenen Principal ausführt.
Der Identitätspartner kann einige Informationen vom Prinzipal anfordern, wie z. B. einen Benutzernamen und ein Passwort, um ihn zu authentifizieren. SAML spezifiziert den Inhalt der Assertion, die vom Identitätspartner an den Dienstanbieter weitergegeben wird.
SAML ist meist das zugrundeliegende Protokoll, das webbasiertes SSO möglich macht. Ein Unternehmen unterhält eine einzige Anmeldeseite – dahinter befinden sich ein Identitätsspeicher und verschiedene Authentifizierungsregeln – und kann jede Web-App, die SAML unterstützt, einfach konfigurieren, so dass sich die Benutzer von derselben Anmeldeseite aus mit einem einzigen Passwort bei allen Web-Apps anmelden können. Dies hat auch den Sicherheitsvorteil, dass die Benutzer weder gezwungen sind, Passwörter für jede Web-App, auf die sie Zugriff benötigen, zu pflegen (und möglicherweise wiederzuverwenden), noch Passwörter für diese Web-Apps offenzulegen.
Single Sign-On (SSO)
Single Sign-On ist eine Eigenschaft der Zugriffskontrolle, ein Authentifizierungsverfahren, das einem Benutzer den Zugriff auf mehrere Anwendungen mit einem Satz von Anmeldeinformationen ermöglicht.
Bei diesem Verfahren meldet sich ein Benutzer mit einer einzigen ID und einem einzigen Kennwort an, um Zugriff auf ein verbundenes System zu erhalten. Häufig wird es unter Verwendung des Lightweight Directory Access Protocol (LDAP) und (Verzeichnis-)Servern durchgeführt.
Mit SSO meldet sich ein Benutzer einmal an und erhält Zugriff auf verschiedene Anwendungen, ohne dass er die Anmeldedaten bei jeder Anwendung erneut eingeben muss. Mit einem Sicherheits-Token (einem Paar aus Benutzername und Passwort) können Sie den Benutzerzugriff auf mehrere Systeme, Plattformen, Anwendungen und andere Ressourcen aktivieren und deaktivieren und so das Risiko verlorener, vergessener oder schwacher Passwörter reduzieren.
Richtig implementiert, kann SSO für die Produktivität, die IT-Überwachung und -Verwaltung sowie die Sicherheitskontrolle von großem Nutzen sein. Wenn es darum geht, ein möglichst einfaches und sicheres Erlebnis über alle Kanäle hinweg zu bieten, trägt Single Sign-On wesentlich dazu bei, Frustration zu reduzieren und gleichzeitig die Wahrscheinlichkeit einer Sicherheitsverletzung zu verringern.
Der größte Vorteil von SSO ist wohl die Skalierbarkeit, die es bietet. Die automatisierte Verwaltung von Anmeldedaten bedeutet, dass der Systemadministrator sich nicht mehr manuell um den Zugriff aller Mitarbeiter auf die gewünschten Dienste kümmern muss. Dies wiederum reduziert den menschlichen Fehlerfaktor und gibt der IT Zeit, sich auf wichtigere Aufgaben zu konzentrieren.
Zwei-Faktor-Authentifizierung (2FA)
Zwei-Faktor-Authentifizierung (2fa) ist eine Methode zur Bestätigung der behaupteten Identität eines Benutzers durch die Verwendung von etwas, das er weiß (Passwort) und einem zweiten Faktor, der nicht etwas ist, was er hat oder was er ist. Der Zugriff wird nur gewährt, nachdem zwei oder mehr Beweise (oder Faktoren) erfolgreich einem Authentifizierungsmechanismus vorgelegt wurden: Wissen, Besitz und Inhärenz.
Ein gutes Beispiel für 2FA ist das Abheben von Geld an einem Geldautomaten; nur die korrekte Kombination aus Bankkarte (Besitz) und PIN (Wissen) erlaubt die Durchführung der Transaktion.
In der Praxis sind das häufig die Ergänzung eines benutzergesteuerten Passworts durch ein Einmalpasswort (OTP) oder einen Code, der von einem Gerät (z. B. einem Sicherheits-Token oder Smartphone) erzeugt oder empfangen wird, das nur der Benutzer besitzt. Heute werden dafür vermehrt Smartphone-Apps verwendet, die den Code (also den zweiten Faktor) generieren.
Vorteile von SAML
- Plattform-Neutralität: SAML abstrahiert das Sicherheitsframework von Plattformarchitekturen und bestimmten Herstellerimplementierungen. Die Unabhängigkeit der Sicherheit von der Anwendungslogik ist ein wichtiger Grundsatz der Service-orientierten Architektur.
- Lose Kopplung von Verzeichnissen: SAML erfordert nicht, dass Benutzerinformationen zwischen verschiedenen Verzeichnissen synchronisiert werden.
- Verbesserte Online-Erfahrung für Endanwender: SAML ermöglicht SSO, indem Benutzer sich bei einem Identity Provider authentifizieren und dann ohne zusätzliche Authentifizierung auf verschiedene Services zugreifen können. Darüber hinaus ermöglicht die Identitätsföderation (Verknüpfung mehrerer Identitäten) mit SAML eine besser angepasste Benutzererfahrung bei jedem Dienst und fördert gleichzeitig den Datenschutz.
- Geringere Verwaltungskosten für Dienstanbieter: Die Verwendung von SAML zur „Wiederverwendung“ eines einzelnen Authentifizierungsvorgangs (z. B. Anmeldung mit einem Benutzernamen und Kennwort) über mehrere Dienste hinweg kann die Kosten für die Pflege von Kontoinformationen reduzieren. Diese Last wird auf den Identitätsanbieter übertragen.
Vorteile von SSO
- Risikominderung für den Zugriff auf Websites von Drittanbietern (Benutzerpasswörter werden nicht extern gespeichert oder verwaltet)
- Verringerung der Passwort-Müdigkeit durch wechselnde Kombinationen von Benutzernamen und Passwort. Benutzer müssen sich Passwörter nicht notieren, da sie sich nur eines merken müssen.
- Reduziert den Zeitaufwand für die erneute Eingabe von Passwörtern für dieselbe Identität
- Reduktion der IT-Kosten durch geringere Anzahl von Anrufen beim IT-Helpdesk wegen Passwörtern
- SSO nutzt zentralisierte Authentifizierungsserver, die von allen anderen Anwendungen und Systemen für die Authentifizierung verwendet werden, und kombiniert dies mit Techniken, die sicherstellen, dass Benutzer ihre Anmeldedaten nicht mehr aktiv eingeben müssen.