Sicherheit bei Web Services

SAML

Aus der Not geboren, für bestimmte Szenarien der Web Service Nutzung keine geeigneten Sicherheitsmechanismen zur Verfügung zu haben, entwickelte eine Gruppe der OASIS (www.oasis-open.org) den SAML Standard (gesprochen „Semmel“ oder „Samuel“). Das Akronym steht für „Security Assertion Markup Language“ („Auszeichnungsspreache für Sicherheitsbestätigungen“) und beschreibt ein XML-basierendes Framework zum Austausch von Sicherheitsinformationen zwischen Geschäftspartnern über das Internet. SAML wurde 2002 von der OASIS standardisiert.

Mit SAML können insbesondere Single-Sign-On-Systeme realisiert werden, bei denen der Nutzer nach einmaliger Anmeldung ohne zusätzliche Registrierung auf weitere, damit verbundene Dienste zugreifen kann. Grundsätzlich liefert es einen Rahmen für die Definition von Benutzerauthentifizierungen, Autorisierungen, Berechtigungen und Profilinformationen in XML-Dokumenten. Dies geschieht in Form von „Security Assertions“, die Nutzern, Anwendungen oder einem Web Service zugewiesen und in LDAP-Verzeichnissen verwaltet werden.

SAML: Funktionsweise im Überblick. (Quelle: FH Fulda, FB Informatik)
SAML: Funktionsweise im Überblick. (Quelle: FH Fulda, FB Informatik)

Es können drei allgemeine Arten von Assertion-Anweisungen verwendet werden, die von getrennten Instanzen ausgestellt und überprüft werden: Authentifizierung, Autorisierung und Attribut. Diese drei Anweisungen werden an verschiedenen Stellen in der Anwendung benutzt, um festzustellen, wer die Anfrage stellt, was angefordert wird und ob die Anfrage genehmigt wurde oder nicht.

Eine der Stärken von SAML ist dabei seine Fähigkeit mit beliebigen Sicherheitssystemen interoperieren zu können. SAML unterstützt beinahe alles, beginnend mit Passwörtern über Hardware-Tokens bis hinzu Public Keys und Zertifikaten. SAML hat auch die Unterstützung für XML Signatures eingebaut, womit es nicht nur für Authentifizierung und Autorisierung, sondern auch für Gewährleistung der Integrität und Non-Repudiation von Nachrichten verwendet werden kann.