Security Assertion Markup Language

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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

[Bearbeiten | Quelltext bearbeiten]

SAML Assertions

[Bearbeiten | Quelltext bearbeiten]

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