SAML – Security Assertion Markup Language

SAML, alles was man darüber Wissen sollte

SAML wird in erster Linie für die webbasierte einmalige Anmeldung (Single Sign-On, SSO) verwendet und ermöglicht es Benutzern, sich an einem Standort zu authentifizieren und dann auf mehrere andere Standorte zuzugreifen, ohne dass sie ihre Anmeldedaten erneut eingeben müssen. Alles basiert bei SAML auf dem Austausch von digital signierten XML-Dokumenten, um Authentifizierungsinformationen zwischen dem Identitätsanbieter (IdP) und dem Dienstanbieter (SP) zu übermitteln.

Es basiert auf dem Austausch von digital signierten XML-Nachrichten zwischen dem Identitätsanbieter (IdP) und dem Dienstanbieter (SP). Wenn der Benutzer den Prozess startet versucht er, auf eine Ressource des SP zuzugreifen. Der SP sendet dann eine Authentifizierungsanfrage an den IdP in Form einer SAML AuthnRequest. Danach authentifiziert der IdP den Benutzer und erstellt eine digital signierte SAML-Assertion, die die Authentifizierungsinformationen des Benutzers enthält, z. B. seinen Benutzernamen und seine Attribute. Der IdP sendet die Assertion dann an den SP, der die Signatur prüft und dem Benutzer den Zugriff auf die Ressource gewährt.

Kann SAML im Hintergrund laufen?

SAML wird hauptsächlich für das webbasierte Single Sign-On (SSO) verwendet, bei dem sich ein Benutzer an einer Website authentifiziert und dann auf mehrere andere Websites zugreifen kann, ohne seine Anmeldedaten erneut eingeben zu müssen. Der SAML-Nachrichtenaustausch findet im Kontext der Interaktion des Benutzers mit der Webanwendung statt.

SAML im Detail

Es ist ein XML-basierter Standard für den Austausch von Authentifizierungs- und Autorisierungsdaten zwischen Parteien, in der Regel zwischen einem Identitätsanbieter (IdP) und einem Dienstanbieter (SP). Der IdP ist für die Authentifizierung des Benutzers und die Erstellung einer digital signierten Behauptung verantwortlich, die die Authentifizierungsinformationen des Benutzers enthält, z. B. seinen Benutzernamen und seine Attribute. Der SP erhält dann diese Bestätigung und verwendet sie, um dem Benutzer Zugang zu seinen Ressourcen zu gewähren.

SAML bietet mehrere Vorteile gegenüber der herkömmlichen Authentifizierung mit Benutzername und Kennwort:

  • Single Sign-On (SSO): Mit SAML kann sich ein Benutzer an einem Standort authentifizieren und dann auf mehrere andere Standorte zugreifen, ohne seine Anmeldedaten erneut eingeben zu müssen.
  • Föderierte Identität: Ausserdem ermöglicht es verschiedenen Organisationen, die Identitätsinformationen eines Benutzers gemeinsam zu nutzen, was die Benutzerverwaltung vereinfachen und die Anzahl der separaten Anmeldedaten, die sich ein Benutzer merken muss, reduzieren kann.
  • Starke Authentifizierung: Es ermöglicht die Verwendung verschiedener Authentifizierungsmethoden wie Smartcards, Biometrie und Multi-Faktor-Authentifizierung (MFA).
  • Domänenübergreifende Kompatibilität: SAML ist plattformunabhängig und kann verwendet werden, um SSO und föderierte Identität über verschiedene Domänen und verschiedene Arten von Anwendungen hinweg zu ermöglichen.

 

Weitere wichtige Informationen 

Es definiert zwei Hauptnachrichtentypen: die AuthnRequest und die SAML Response. Die AuthnRequest wird vom Dienstanbieter an den Identitätsanbieter gesendet, um die Authentifizierung anzufordern. Der Identitätsanbieter authentifiziert den Benutzer und sendet eine SAML-Antwort an den Dienstanbieter zurück. Die SAML-Antwort enthält die Assertion, die die Authentifizierungsinformationen des Benutzers enthält. Der Dienstanbieter verwendet die Informationen in der Assertion, um dem Benutzer Zugriff auf seine Ressourcen zu gewähren.

SAML-Assertion ist ein Paket von Informationen, das eine oder mehrere Aussagen eines Identitätsanbieters enthält. Die häufigste Aussage ist die Authentifizierungsaussage, die angibt, dass der Benutzer vom Identitätsanbieter authentifiziert wurde und zu welchem Zeitpunkt. Andere Aussagen können Attributaussagen sein, die zusätzliche Informationen über den Benutzer enthalten, wie z. B. seinen Namen, seine E-Mail-Adresse und seine Rolle.

Es ist wichtig zu beachten, dass SAML zwar weit verbreitet ist, aber auf XML basiert, was bei großen Nutzdaten zu Problemen führen kann, und da es auf Redirect und Post-Binding basiert, ist es möglicherweise nicht mit allen Arten von Clients kompatibel.

Welche Vorteile biete SAML?

  • Einmalige Anmeldung (SSO): SAML ermöglicht es Benutzern, sich an einem Standort zu authentifizieren und dann auf mehrere andere Standorte zuzugreifen, ohne ihre Anmeldedaten erneut eingeben zu müssen, was für die Benutzer bequem ist und die Anzahl der separaten Anmeldedaten, die sie sich merken müssen, verringert.
  • Starke Authentifizierung: SAML ermöglicht die Verwendung verschiedener Authentifizierungsmethoden wie Smartcards, Biometrie und Multi-Faktor-Authentifizierung (MFA), was es sicherer macht als andere Protokolle.
  • Etablierter Standard: SAML gibt es schon seit langem und wird von einer Vielzahl unterschiedlicher Plattformen und Anwendungen unterstützt, was die Integration in bestehende Systeme erleichtern kann.
  • Größere Flexibilität: SAML ermöglicht verschiedene Arten von Assertions mit unterschiedlichem Informationsgehalt, einschließlich der Attributangaben, die von den Dienstanbietern angefordert werden können, und des Sitzungsindexes, der für Single Logout verwendet werden kann.

Gibt es Nachteile von SAML

  • XML-basiert: Es basiert auf XML, was die Effizienz bei der Übermittlung großer Nutzdaten über das Netz beeinträchtigen und das Parsen und Verarbeiten der Daten erschweren kann.
  • Komplex: Die Implementierung von SAML kann komplex sein, insbesondere für Entwickler, die mit dem Protokoll und den damit verbundenen Technologien nicht vertraut sind.
  • Schwergewichtig: Da das Protokoll auf dem Austausch von XML-Nachrichten basiert, kann es etwas langatmig und schwerfällig sein.
    Browser-zentriert: SAML ist in erster Linie für webbasierte Szenarien gedacht, bei denen ein Benutzer mit einer Webanwendung in einem Browser interagiert, und eignet sich möglicherweise nicht für andere Arten von Clients.

Vielleicht interessiert sie dieses Thema, einfach klicken

SAML vs. OAuth2.0 vs. OIDC