ComputerWeekly.com/de

https://www.computerweekly.com/de/definition/SAML-Security-Assertion-Markup-Language

SAML (Security Assertion Markup Language)

von Peter Loshin

Was ist SAML (Security Assertion Markup Language)?

SAML (Security Assertion Markup Language) ist ein offener Standard für den Austausch von Sicherheitsinformationen zu Identität, Authentifizierung und Autorisierung zwischen verschiedenen Systemen. Anstatt sich für jede Website ein anderes Passwort merken zu müssen, können Benutzer mit SAML über einen Single-Sign-On-Dienst (SSO) mit einem einzigen Satz von Anmeldedaten auf mehrere Anwendungen, Dienste oder Websites zugreifen. Identitäts- und Authentifizierungsstufen werden über verschiedene Systeme und Dienste hinweg mithilfe des SAML-Protokolls ausgetauscht, um diese Daten anzufordern, zu empfangen und zu formatieren.

SAML basiert auf dem XML-Standard (Extensible Markup Language) für den Datenaustausch. Es bietet ein Framework für die Implementierung von SSO und andere föderierte Identitätssysteme. Ein föderiertes Identitätssystem verknüpft eine einzelne Identität mit mehreren Identitätsdomänen. Dieser Ansatz ermöglicht SSO, das Ressourcen in Unternehmens-, vertrauenswürdigen Drittanbieter- und Kundennetzwerken umfasst.

Das SAML-Protokoll wird von der Organization for the Advancement of Structured Information Standards (OASIS) verwaltet. Die aktuelle Version, SAML 2.0, wurde 2005 als OASIS-Standard veröffentlicht.

Wofür wird SAML verwendet?

Unternehmen verwenden SAML sowohl für Business-to-Business- als auch für Business-to-Consumer-Anwendungen. Es wird verwendet, um Benutzeranmeldedaten über ein oder mehrere vernetzte Systeme hinweg auszutauschen. Das SAML-Framework wurde entwickelt, um zwei Ziele zu erreichen: Benutzerauthentifizierung und Benutzerberechtigung. Darüber hinaus erleichtert SAML die Interoperabilität zwischen verschiedenen Systemen und ermöglicht so eine effektive Kommunikation zwischen verschiedenen Identitätsanbietern und Dienstanbietern, selbst wenn diese unterschiedliche technische Spezifikationen haben.

SAML wird am häufigsten für SSO-Authentifizierungssysteme verwendet, mit denen sich Endanwender einmal in ihrem Netzwerk anmelden und dann auf mehrere Ressourcen in diesem Netzwerk zugreifen können. Beispielsweise kann SSO in Verbindung mit Microsoft Active Directory (AD) in SAML 2.0-Authentifizierungsanfragen integriert werden.

Bei der Authentifizierung wird festgestellt, ob eine Entität das ist, was sie vorgibt zu sein. Sie ist erforderlich vor der Autorisierung, bei der festgestellt wird, ob die authentifizierte Identität über die Berechtigung zur Nutzung einer Ressource verfügt.

Die SAML-Authentifizierung basiert auf der Überprüfung der Benutzeranmeldedaten, die mindestens die Benutzeridentität und das Passwort umfassen. SAML kann auch Multifaktor-Authentifizierung unterstützen.

Wie funktioniert SAML?

SSO-Anwendungen verwenden SAML, um Informationen über Benutzeridentitäten von einem Identitätsanbieter an einen Dienstanbieter zu übertragen. SAML authentifiziert Endbenutzer, die bei einem primären Dienstanbieter angemeldet sind, um auf die Ressourcen eines anderen Dienstanbieters zuzugreifen.

Beispielsweise können Unternehmensanwender, die bei ihrem primären SSO-Arbeitsnetzwerk angemeldet sind, über SAML bei einem Drittanbieter von Cloud-Anwendungen authentifiziert werden, anstatt sich separat bei der Cloud-Anwendung anmelden zu müssen.

Das primäre SSO-System fungiert als Identitätsanbieter und die Cloud-Anwendung als Dienstanbieter. Wenn ein Endbenutzer, der bereits beim Identitätsanbieter angemeldet ist, versucht, die Cloud-Anwendung zu öffnen, identifiziert die Cloud-Anwendung den Endbenutzer. Anschließend leitet sie den Benutzer – oder den Browser oder eine andere Client-Software des Benutzers – zur Authentifizierung zurück zum Identitätsanbieter.

Authentifizierungsanfragen und Antworten auf diese Anfragen müssen den SAML-Protokollen für den Informationsaustausch entsprechen, wobei SAML-Autorisierungsdaten als sogenannte Assertions formatiert sind.

Hier ist eine Übersicht über die Funktionsweise des SAML-Prozesses:

  1. Der Benutzer initiiert eine Anfrage. Ein Benutzer versucht, mit einer Identität oder einem SSO-Anbieter auf die Anwendung eines Dienstanbieters zuzugreifen, zum Beispiel eine Webanwendung oder eine Cloud-Anwendung.
  2. Der Benutzer wird zum Identitätsanbieter weitergeleitet. Wenn der Benutzer noch nicht authentifiziert ist, leitet der Dienstanbieter den Benutzer zur Authentifizierung an den Identitätsanbieter weiter. Diese Weiterleitung enthält eine Authentifizierungsanforderung.
  3. Der Benutzer wird authentifiziert. Der Identitätsanbieter fordert den Benutzer zur Anmeldung auf. Nach erfolgreicher Anmeldung generiert der Identitätsanbieter eine SAML-Assertion, bei der es sich um ein sicheres Token oder eine digital signierte SAML-Antwort handelt, die Informationen über die Identität und Attribute des Benutzers enthält. Die Antwort kann weitere Informationen enthalten, die angeben, dass der Benutzer authentifiziert und zum Zugriff auf eingeschränkte Ressourcen berechtigt ist oder nicht.
  4. Die SAML-Assertion wird übertragen. Der Identitätsanbieter sendet die SAML-Assertion zurück an den Dienstanbieter, in der Regel über den Browser des Benutzers. Diese Assertion bestätigt die Identität des Benutzers und kann zusätzliche Attribute wie Rollen oder Berechtigungen enthalten.
  5. Der Zugriff wird gewährt. Der Dienstanbieter empfängt die SAML-Assertion, validiert sie und gewährt dem Benutzer auf der Grundlage der in der Assertion enthaltenen Informationen Zugriff auf die Anwendung.

SAML-Entitäten

Eine SAML-Entität bezeichnet jede Systemkomponente, die an der SAML-Kommunikation beteiligt ist, insbesondere im Zusammenhang mit der Identitäts- und Dienstbereitstellung.

SAML definiert drei Kategorien von Entitäten:

  1. Endbenutzer. Ein Endbenutzer ist eine Person, die authentifiziert werden muss, bevor sie Zugriff auf eine Anwendung erhält.
  2. Dienstanbieter. Ein Dienstanbieter ist jedes System, das Dienste bereitstellt, in der Regel die Dienste, für die Benutzer eine Authentifizierung benötigen, einschließlich Web- oder Unternehmensanwendungen.
  3. Identitätsanbieter. Ein Identitätsanbieter ist eine spezielle Art von Dienstanbieter, der Identitätsinformationen verwaltet.

Der Hauptzweck von SAML besteht darin, die Auszeichnungssprache zu definieren, die zur Standardisierung der Kodierung von Authentifizierungsdaten für den Austausch zwischen Systemen verwendet wird. Es umfasst auch alle zugehörigen Protokolle und Bindungen (Bindings), die SAML-konforme Nachrichten zum Austausch von Sicherheitsaussagen zwischen Endbenutzern, Dienstanbietern und Identitätsanbietern verwenden.

Vorteile von SAML

SAML bietet sowohl Benutzern als auch Dienstanbietern viele Vorteile, insbesondere gegenüber anderen Standards im Bereich Identitäts- und Zugriffsmanagement.

Zu den allgemeinen Vorteilen und Anwendungsfällen von SAML gehören:

SAML-Komponenten

SAML besteht aus mehreren Schlüsselkomponenten, die zusammenarbeiten, um den sicheren Austausch von Identitäts-, Authentifizierungs- und Autorisierungsinformationen zwischen verschiedenen Entitäten zu ermöglichen.

Die vier verschiedenen Arten von SAML-Komponenten umfassen Assertions (Sicherstellung), Protokolle, Bindings (Bindungen) und Profile.

SAML-Assertions

SAML-Assertions sind Aussagen zu Identität, Authentifizierung und Autorisierung. Sie werden mithilfe von XML-basierten Tags formatiert, die in SAML festgelegt sind.

Gemäß der SAML-Spezifikation ist eine SAML-Assertion eine Informationseinheit, die null oder mehr Aussagen einer SAML-Autorität enthält. SAML-Autoritäten sind alle Systeme, die SAML-Authentifizierungs-Assertions generieren. Beispiele für solche Autoritäten sind SAML-Identitätsanbieter.

SAML unterscheidet drei Arten von Assertions:

  1. Authentifizierungs-Assertion. Diese Assertion gibt an, dass das Subjekt der Assertion authentifiziert wurde. Sie enthält den Zeitpunkt und die Methode der Authentifizierung sowie das authentifizierte Subjekt.
  2. Attribut-Assertion. Diese Assertion verknüpft das Subjekt der Assertion mit den angegebenen Attributen. Ein angegebenes SAML-Attribut ist ein Attribut, das auf eine definierte Information bezieht, die sich auf das Authentifizierungssubjekt bezieht.
  3. Assertion zur Autorisierungsentscheidung. Diese Assertion gibt an, ob die Anfrage eines Subjekts auf Zugriff auf eine Ressource genehmigt oder abgelehnt wurde.

SAML-Protokolle

SAML-Protokolle definieren, wie verschiedene Entitäten Anfragen nach Sicherheitsinformationen stellen und darauf reagieren. Ähnlich wie SAML-Assertions werden diese Protokolle mit in SAML festgelegten XML-Tags codiert.

SAML definiert eigene allgemeine Protokolle für die Anfrage-/Antwort-Interaktionen zwischen Systemen und den Entitäten, die authentifiziert werden können – entweder Prinzipale oder Subjekte. Zu den SAML 2.0-Protokollen gehören die folgenden:

Diese Anforderungs- und Antwortprotokolle sind als Teil von SAML definiert, damit Systeme Authentifizierungen anfordern, auf Authentifizierungsanforderungen antworten und SAML-Assertions austauschen können. Diese Protokolle sind unabhängig von den Netzwerkprotokollen, an die SAML-Nachrichten für den Netzwerktransport gebunden sind.

SAML-Bindings

SAML-Bindings sind die Formate, die für SAML-Protokollnachrichten festgelegt sind, damit diese eingebettet und über verschiedene Übertragungsmechanismen transportiert werden können.

SAML hängt von mehreren anderen Protokollen ab, die zum Formatieren und Austauschen von SAML-Anfragen und -Antworten verwendet werden. Dazu gehören die folgenden:

SAML-Bindings definieren, wie SAML-Protokollnachrichten übertragen werden. Sie verwenden die Transportprotokolle, die die Kommunikation zwischen SAML-Entitäten ermöglichen. SAML 2.0 definiert die folgenden Bindings:

SAML-Bindings ermöglichen es Authentifizierungssystemen, SAML-Assertions und -Anforderungen mithilfe weit verbreiteter Protokolle auszutauschen.

SAML-Profile

SAML-Profile legen fest, wie SAML-Assertions, -Protokolle und -Bindings zusammen verwendet werden, um die Interoperabilität in bestimmten Anwendungen zu gewährleisten.

Ein SAML-Profil besteht aus SAML-Assertions, Protokollen und Bindings. SAML-Profile werden zur Definition spezifischer Anwendungen verwendet.

Für SAML 2.0 sind folgende Profile definiert:

Diese Profile können konfiguriert werden, um eine SSO-Bereitstellung zu ermöglichen.

Was ist der Unterschied zwischen SAML und SSO?

SAML und SSO sind verwandte Konzepte im Bereich der Authentifizierung und Identitätsverwaltung, dienen jedoch unterschiedlichen Zwecken und weisen unterschiedliche Merkmale auf.

Die wichtigsten Merkmale, die SAML und SSO unterscheiden, sind folgende:

SAML versus OAuth versus OpenID

Neben SAML sind OAuth und OpenID zwei wichtige Spezifikationen, die SSO ermöglichen.

OAuth

Das OAuth 2.0 Authorization Framework schützt die Anmeldedaten von Benutzern, während diese Anmeldedaten für den Zugriff auf Anwendungen von Drittanbietern verwendet werden. Als Framework kann OAuth entweder mit SAML oder OpenID Connect verwendet werden, um SSO zu ermöglichen.

Im Folgenden sind einige Unterschiede zwischen SAML und OAuth aufgeführt:

OpenID

OpenID Connect wurde 2014 veröffentlicht und ist ein relativ neues Protokoll, das auf dem OAuth-Framework aufbaut und es Benutzern erlaubt, sich mit einem einzigen bestehenden Konto bei mehreren Websites anzumelden. Es wurde speziell für Web- und mobile Anwendungen entwickelt.

OpenID Connect definiert Identitäten mithilfe des OAuth 2.0-Protokolls. Es verwendet branchenübliche JSON-Web-Tokens und basiert auf einer sicheren HTTPS-Kommunikation, was es zu einer flexiblen und benutzerfreundlichen Option für die Authentifizierung und Autorisierung macht. Verschiedene Anbieter, darunter Meta, Google und Microsoft, verwenden es, um den Zugriff auf Websites von Drittanbietern mit den Anmeldedaten der Anbieter zu ermöglichen.

Geschichte von SAML

Als zu Beginn der 2000er-Jahre die Welt begann, Geschäfte über das Internet abzuwickeln, wuchs der Bedarf an domänenübergreifender Authentifizierung und Autorisierung. Zu dieser Zeit wurde das Kerberos-Authentifizierungsprotokoll für die Verwendung in Unternehmensnetzwerken eingeführt, das jedoch für die domänenübergreifende Authentifizierung nicht ausreichte. Microsoft veröffentlichte AD zusammen mit Windows 2000 Server Edition, aber das reichte nicht aus. Es war klar, dass ein offener Standard benötigt wurde.

SAML 1.0 wurde 2002 veröffentlicht und bot ein grundlegendes Framework für die Authentifizierung und Autorisierung. SAML 1.1, das 2003 veröffentlicht wurde, behob einige Einschränkungen, hatte aber immer noch nur begrenzte Funktionen. Im Jahr 2005 wurde SAML 2.0, die bis heute aktuelle Version, mit wesentlichen Verbesserungen eingeführt, darunter die Unterstützung von Metadaten, eine verbesserte Single-Sign-On-Funktion und ein besserer Attributaustausch. Seitdem hat sich SAML 2.0 als Authentifizierungsstandard weit verbreitet.

Hier ist ein kurzer historischer Überblick über SAML:

Seit 2005 ist die Geschichte von SAML weitgehend von der Einführung und Unterstützung durch SSO-Anbieter geprägt.

06 Mai 2025

Alle Rechte vorbehalten, Copyright 2013 - 2026, TechTarget | Lesen Sie unsere Datenschutzerklärung