SAML - Security Assertion Markup Language


SAML ist die Abkürzung für Security Assertion Markup Language und ist ein XML-basierter OASIS-Standard zum Austausch von Authentifizierungs- und Autorisierungsinformationen.

SAML Protagonisten

Bevor wir zu den einzelnen Bestandteilen von SAML kommen, nachfolgend eine kurze Auflistung der drei beteiligten Parteien:
  • Subject (Principal): Das Subjekt, das Zugriff auf geschützte Ressourcen erhalten will
  • Identity Provider – IdP (Asserting Party): Bietet die Authentifizierung des Subjects an
  • Service Provice – SP (Relying Party): Bietet den Zugriff auf die geschützte Ressourcen, wie beispielsweise Services an. Benötigt dafür identitätsbezogene Informationen für die Autorisierungsentscheidung

SAML Bestandteile

SAML besteht aus den folgenden drei Bestandteilen:
  • SAML-Assertions
  • SAML-Protokoll
  • SAML-Bindings
  • Profiles

SAML-Assertions

SAML Assertions sind Aussagen (Statements), die ein Service Provider nutzt, um damit über das Zulassen oder das Verweigern eines Zugriffs zu entscheiden. Sie beinhalten Authentisierungsinformation, Attribute und Autorisierungsmerkmale. Es wird zwischen folgenden Statements unterschieden:
  • Authentication Statements: Zusicherung, dass sich ein Subject erfolgreich beim Identity Provider authentifiziert hat.
  • Attribute Statements: Zusicherung, dass ein Subject ein Attribut mit einem bestimmten Wert besitzt .
  • Authorization Statements: Zusicherung, dass ein bestimmtes Subject eine bestimmte Berechtigung besitzt.

SAML-Protocols

SAML Protocols sind Anfrage- und Antwort-Protokolle zum Austausch von Assertions. Nachfolgend eine kurze Auflistung von ein paar Protokollen:
  • Assertion Query and Request Protocol: Dient zum Abruf von existierende Assertions vom IdP (Request) oder für SP zur Anforderung von Assertions (Query)
  • Authenticaten Request Protocol: Dient für Subject zur Anforderung von Assertions vom IdP
  • Single Logout Protocol: Dient zur Abmeldung beim Identity Provider

SAML-Bindings

Durch SAML Bindungs werden SAML Protokolle auf Nachrichten- und Kommunikationsprotokolle (z.B. SOAP oder http) abgebildet. Nachfolgend eine Auflistung von möglichen Bindings (nicht abschließend):
  • HTTP Redirect Binding
  • HTTP POST Binding
  • SAML SOAP Binding
  • Reverse SOAP (PAOS) Binding
  • HTTP Artifact Binding
  • SAML URI Binding

SAML-Profiles

SAML Profiles umfassen Kombinationen aus Assertions, Protocols und Bindings für bestimmte Anwendungsfälle („Use Case“). Mögliche SAML-Profiles sind beispielsweise:
  • Web Browser SSO Profile
  • Enhanced Client or Proxy (ECP) Profile
  • Single Logout Profile
  • Assertion Query/Request Profile
Nachfolgend soll das SAML-Profile WebSSO näher vorgestellt werden.

WebSSO

Das SAML-Profile WebSSO dient als Single-Sign-On für browserbasierte Webapplikationen. Dabei kommt folgende Kombination für dieses Profil zum Einsatz:
  • Assertion: Authentication Statement, Attribute Statement
  • Protocol: Authentication Request Protocol
  • Binding: HTTP Redirect, HTTP POST
Der Ablauf von WebSSO geschieht dabei folgendermaßen:
  1. Optional: Weiterleitung zu einem Discovery Service und Wahl des Identity Providers
  2. Weiterleitung zum Identity Provider
  3. Authentifikation durch den Identity Provider, es werden dabei die eine Assertion mit dem Authentification Statement und Attribute Statements übergeben
  4. Anschließend folgt die Weiterleitung zum Service Provider und die Übergabe der Assertion

SAML in der Praxis

Unter anderem wird SAML in folgenden Frameworks in der Praxis eingesetzt:
  • Shibboleth 2.0
  • Google SSO Framework
  • WSO2

Quellen und Verweise



Artikel vom 13.03.2017

Kommentare zum Artikel

comments powered by Disqus