Security Assertion Markup Language
Die Security Assertion Markup Language (SAML) ist ein XML-Framework zum Austausch von Authentifizierungs- und Autorisierungsinformationen. Sie stellt Funktionen bereit, um sicherheitsbezogene Informationen zu beschreiben und zu übertragen.
SAML wurde ab 2001 von dem OASIS-Konsortium entwickelt. Zu diesem Konsortium gehören Unternehmen wie Sun Microsystems (übernommen von Oracle), IBM, Nokia und SAP. Bei der Entwicklung hatte man die folgenden Anwendungsfälle im Blick:
- Single Sign-on
- ein Benutzer ist nach der Anmeldung an einer Webanwendung automatisch auch zur Benutzung weiterer Anwendungen authentifiziert.
- Verteilte Transaktionen
- mehrere Benutzer arbeiten gemeinsam an einer Transaktion und teilen sich die Sicherheitsinformationen.
- Autorisierungsdienste
- die Kommunikation mit einem Dienst läuft über eine Zwischenstation, die die Berechtigung überprüft.
Diese Dienste sollen vor allem für Webservices angeboten werden.
SAML besteht aus SAML-Assertions, aus dem SAML-Protokoll, aus SAML-Bindings und Profilen.
Aufbau von SAML
SAML Assertions
Eine SAML assertion enthält Aussagen der Form:
<saml:Assertion ...> ... </saml:Assertion>
Diese Aussagen beschreiben Fakten, die sich auf ein Subjekt beziehen:
Assertion A wurde zur Zeit t von Prüfer R bezüglich Subjekt S unter der Bedingung C geprüft.
SAML assertions werden vom Identity Provider zum Service Provider übertragen. Assertions sind Aussagen (statements), die ein Service Provider nutzt, um über das Zulassen eines Zugriffs zu entscheiden. Drei Typen von statements werden von SAML genutzt:
- Authentication statements
- Zusicherung einer Authentifizierung für Subjekt S zur Zeit T mittels M (für Single Sign-On)
- Attribute statements
- Zusicherung, dass ein Subjekt S über Attribut A verfügt mit dem Wert a (für verteilte Transaktion/Autorisierung)
- Authorization decision statements
- Autorisierung bestimmter Ressourcen
Siehe auch
- Shibboleth
- Liberty Alliance Project
- JSR-155: Durch JSR-155 werden APIs spezifiziert, die den Austausch als Assertions nach SAML unterstützen (am 18. Februar 2010 wurde der JSR jedoch zurückgezogen; Status: Withdrawn).