Einführung in SAML

Mit SAML, der Security Assertion Markup Languague, wird von der OASIS [1] ein XML-basiertes Rahmenwerk für den standardisierten Austausch von Informationen für die Authentifizierung und Autorisierung bereitgestellt. Außerdem können auch beliebige weitere Attribute zu Personen oder anderen Dingen übermittelt werden. Die nachfolgende Abbildung stellt den Aufbau des Rahmenwerks dar.
SAML Rahmenwerk
SAML Rahmenwerk [2]

Den Kern des Rahmenswerks bilden Assertions, die zwischen sich gegenseitig vertrauenden Teilnehmern ausgetauscht werden (circle of trust). Eine Assertion stellt dabei eine Behauptung dar, die von einem behauptenden Teilnehmer (engl. asserting party) an einen der Behauptung trauenden Teilnehmer (engl. relying party) übermittelt wird. Jede Assertion bezieht sich auf ein Subjekt oder allgemeiner auf eine Identität. Die OASIS definiert drei Arten von Assertions:

  • Authentication Assertion
    Der Teilnehmer, gegenüber dem sich ein Subjekt erfolgreich authentisiert hat, stellt eine Authentication Assertion für den Teilnehmer aus, dessen Ressourcen das Subjekt in Anspruch nehmen möchte.

  • Attribute Assertion
    Attribute Assertions enthalten spezifische Informationen zu einer Identität. Dies kann beispielsweise der Name zu einer Person oder Statusinformationen eines Benutzerkontos sein.

  • Authorization Decision Assertion
    Mit einer Authorization Decision Assertion wird festgelegt, ob ein Subjekt Zugriff auf eine angefragte Ressource erhält. Das bedeutet, dass die Autorisierungsentscheidung nicht von der Ressource selbst, sondern von einer vertrauenswürdigen Instanz getroffen wird.

Jede Assertion enthält Informationen über die ausstellende Instanz und das Subjekt, auf die sich die Assertion bezieht. Darüber hinaus kann eine Vielzahl unterschiedlicher Bedingungen angegeben werden. So ist beispielsweise die Angabe einer Gültigkeitsdauer der Behauptung möglich. Mit der SAML-Version 2.0 kann zu Authentication Assertions ein Authentication Context mit angegeben werden. Der Authentication Context gibt an, welche Prozesse, Prozeduren, Mechanismen etc. seitens der Authentifizierungsinstanz zum Einsatz kommen, um ein Subjekt zu authentifizieren. Dabei geht es nicht nur um technische Aspekte, sondern auch um Aspekte, die die organisatorischen Maßnahmen und rechtlichen Vorschriften innerhalb einer Organisation betreffen. Das folgende Beispiel soll dies verdeutlichen.

Beispiel:
Die Studierenden einer Hochschule erhalten nur gegen Vorlage ihres Personalausweises eine Zugangskennung (organisatorischer Prozess). Die Zugangskennung kann ausschließlich für Anwendungen verwendet werden, die mit der zentralen Authentifizierungsinstanz über eine mit SSL 3.0 oder TLS 1.0 verschlüsselte Verbindung kommunizieren (organisatorischer Prozess und Verschlüsselungsmechanismen).

Mit Protocols werden die Interaktionsmöglichkeiten zwischen den Teilnehmern festgelegt. Die Protokolle folgen dem Request-Response-Paradigma. Es werden also Nachrichten (engl. messages) ausgetauscht. Der SAML Requester sendet eine Anfrage (SAML Request) an einen SAML Responder. Die Anfrage enthält eine oder mehrere Assertions. Der Empfänger der Anfrage verarbeitet die enthaltenen Assertions und gibt in einer Antwort (SAML Response) den Erfolg der Verarbeitung an. Der empfangende Teilnehmer übernimmt die Rolle des SAML Responder.

Mit Bindings wird festgelegt, über welche Standardprotokolle die SAML-Nachrichten abgebildet werden. Zu den Standardprotokollen gehören SOAP und HTTP. Je nach SAML-Version sind verschiedene Binding-Varianten pro Standardprotokoll möglich. So werden beispielsweise in der SAML-Version 2.0 ein SOAP Binding und ein Reverse SOAP (PAOS) Binding spezifiziert.

In Profiles wird für ausgewählte Anwendungsfälle beschrieben, wie SAML Assertions und SAML Protocols einzusetzen sind. Zu den Profiles gehört beispielsweise das Web Browser SSO Profile, das angibt, wie Authentication Assertions zwischen einem Identity Provider und mehreren Service Providern ausgetauscht werden müssen, um ein Single Sign-On über mehrere Webanwendungen zu realisieren.