Security Assertion Markup Language
# 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:
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