SAML (Security Assertion Markup Language) ermöglicht einen sicheren, nahtlosen Zugriff auf mehrere Anwendungen, indem Authentifizierungsdaten zwischen einem Identity Provider (IdP) und einem Service Provider (SP) ausgetauscht werden.
Dies ermöglicht es Benutzern, sich einmal anzumelden und auf verschiedene Dienste zuzugreifen, ohne Anmeldeinformationen erneut eingeben zu müssen, was die Sicherheit und Benutzererfahrung in Unternehmensumgebungen verbessert. In diesem Beitrag werden wir untersuchen, wie SAML funktioniert und welche Vorteile es bietet.
Was ist Security Assertion Markup Language (SAML)?
Die SAML (Security Assertion Markup Language) Authentifizierung ermöglicht einen sicheren Zugriff auf Dienste, indem Authentifizierungs- und Autorisierungsdaten zwischen einem Identity Provider (IdP) und einem Service Provider (SP) ausgetauscht werden. Dieses Protokoll wird häufig in Unternehmensumgebungen verwendet, um Benutzern einen nahtlosen Zugriff auf mehrere Anwendungen mit einem einzigen Satz von Anmeldeinformationen zu ermöglichen.
SAML-Komponenten
Hier sind die wichtigsten Komponenten und Konzepte von SAML:
- Identity Provider (IdP): Dies ist die Entität, die einen Benutzer authentifiziert und dem Service Provider eine Assertion bereitstellt. Die Assertion enthält Informationen über die Identität und die Attribute des Benutzers.
- Service Provider (SP): Dies ist die Entität, die die SAML-Assertion empfängt und darauf basierend Zugriffssteuerungsentscheidungen trifft. Der Service Provider vertraut dem Identity Provider, Benutzer zu authentifizieren.
- SAML-Assertion: Dies ist das XML-Dokument, das der Identity Provider an den Service Provider sendet. Es enthält Authentifizierungsinformationen, Attributinformationen und Autorisierungsentscheidungen.
- Single Sign-On (SSO): SAML wird häufig verwendet, um SSO zu implementieren, sodass sich Benutzer einmal bei einem Identity Provider authentifizieren und Zugriff auf mehrere Service Provider erhalten können, ohne sich erneut authentifizieren zu müssen.
- Bindings: SAML unterstützt mehrere Bindings für den Nachrichtentransport, einschließlich HTTP Redirect, HTTP POST und SOAP.
- XML-basiertes Protokoll: SAML verwendet XML, um die Nachrichten zu codieren, die zwischen dem Identity Provider und dem Service Provider ausgetauscht werden.
SAML 2.0
Basierend auf dem Konzept von SAML, wollen wir uns mit SAML 2.0 befassen, der am weitesten verbreiteten Version des Standards. SAML 2.0 führte mehrere Erweiterungen und Funktionen gegenüber seinem Vorgänger, SAML 1.1, ein:
- Erweitertes Single Sign-On (SSO): SAML 2.0 verbesserte die SSO-Funktionen, wodurch die Implementierung einfacher und robuster in Bezug auf Sicherheit und Benutzererfahrung wurde.
- Identity Federation: Es ermöglicht eine nahtlosere Identity Federation zwischen verschiedenen Domänen, wodurch Benutzer mit einem einzigen Authentifizierungsprozess auf Ressourcen in verschiedenen Organisationen zugreifen können.
- Unterstützung für mehrere Authentifizierungskontexte: SAML 2.0 kann mit verschiedenen Ebenen der Authentifizierungszusicherung umgehen und die Verwendung stärkerer Authentifizierungsmethoden bei Bedarf ermöglichen.
- Metadatenaustausch: Diese Version unterstützt den Austausch von Metadaten zwischen Identity Providern und Service Providern, was dazu beiträgt, die Konfiguration und den Aufbau von Vertrauensbeziehungen zu automatisieren.
- Verbesserte Protokollbindungen: SAML 2.0 enthält eine bessere Unterstützung für verschiedene Transportprotokolle, wie z. B. HTTP Redirect, HTTP POST und Artifact Binding, wodurch die Flexibilität und Kompatibilität verbessert werden.
- Attributabfrage und Zustimmung: SAML 2.0 ermöglicht die effizientere Abfrage von Benutzerattributen und die Verwaltung der Benutzerzustimmung, wodurch die Benutzerkontrolle über persönliche Daten verbessert wird.
Wie funktioniert die SAML-Authentifizierung?
Authentifizierungsprozess
Die SAML-Authentifizierung beginnt, wenn ein Benutzer den Anmeldevorgang initiiert, indem er seine Anmeldeinformationen beim IdP eingibt. Der IdP überprüft die Identität des Benutzers und erstellt eine SAML-Assertion, die Benutzerattribute und Authentifizierungsinformationen enthält.
Diese Assertion enthält Details wie die Identität des Benutzers, die Authentifizierungszeit und die Bedingungen, unter denen die Assertion gültig ist. Um die Integrität und Authentizität der Informationen sicherzustellen, wird die Assertion vom IdP digital signiert.
Servicezugriff
Nach der Authentifizierung versucht der Benutzer, auf einen vom SP bereitgestellten Dienst zuzugreifen. Der SP, der die Identität des Benutzers überprüfen muss, leitet den Benutzer mit einer Authentifizierungsanforderung an den IdP weiter. Der IdP antwortet, indem er die SAML-Assertion an den SP sendet, typischerweise über den Browser des Benutzers unter Verwendung von HTTP POST oder HTTP Redirect.
Der SP validiert dann die SAML-Assertion, indem er die digitale Signatur und die Bedingungen der Assertion überprüft. Wenn die Assertion gültig ist, gewährt der SP dem Benutzer Zugriff auf den angeforderten Dienst. Dieser Vorgang ist für den Benutzer nahtlos, der sich nur einmal anmelden muss, um Zugriff auf mehrere Dienste zu erhalten.
Beispielszenario
Betrachten Sie ein typisches Unternehmensszenario. Zu Beginn des Arbeitstages meldet sich John mit seinen Unternehmensanmeldeinformationen bei seinem Identity and Access Management (IAM)-System des Unternehmens an, das als IdP dient.
Der IdP überprüft Johns Anmeldeinformationen und erstellt eine SAML-Assertion, die Informationen wie Johns Benutzernamen, den Authentifizungszeitstempel und rollenbasierte Zugriffsattribute enthält. John versucht dann, auf den gehosteten E-Mail-Dienst des Unternehmens, einen SP, zuzugreifen.
Der E-Mail-Dienst leitet John mit einer Authentifizierungsanforderung an den IdP weiter. Der IdP sendet die SAML-Assertion über Johns Browser an den E-Mail-Dienst zurück. Der E-Mail-Dienst validiert die Assertion, indem er die digitale Signatur überprüft und sicherstellt, dass alle Bedingungen erfüllt sind, z. B. dass die Assertion für den E-Mail-Dienst bestimmt ist und nicht abgelaufen ist.
Nach der Validierung erhält John Zugriff auf den E-Mail-Dienst, ohne seine Anmeldeinformationen erneut eingeben zu müssen, sodass er den Dienst nahtlos nutzen kann.
Vorteile der SAML-Authentifizierung
Durch die Integration der SAML-Authentifizierung können Unternehmen die Benutzerzugriffsverwaltung rationalisieren, die Sicherheit erhöhen, indem das Risiko von Passwortmüdigkeit und -wiederverwendung verringert wird, und Benutzern einen nahtlosen Zugriff auf mehrere Anwendungen ermöglichen. Diese Integration verbessert letztendlich sowohl die betriebliche Effizienz als auch die Sicherheitslage.
Was ist eine SAML-Assertion?
Eine SAML-Assertion ist ein XML-Dokument, das von einem SAML Identity Provider (IdP) ausgestellt und von einem Service Provider (SP) verwendet wird. Es enthält Aussagen über einen Benutzer, denen beide Parteien vertrauen können.
Der Hauptzweck der SAML-Assertion besteht darin, Sicherheitsinformationen auf sichere und standardisierte Weise zwischen dem IdP und dem SP zu übermitteln. Hier sind die wichtigsten Komponenten und Arten von Aussagen, die in einer SAML-Assertion gefunden werden:
Hauptkomponenten
- Aussteller: Die Entität, die die Assertion ausgestellt hat, typischerweise der IdP.
- Subjekt: Der Benutzer oder die Entität, auf die sich die Assertion bezieht. Dies beinhaltet in der Regel eine eindeutige Kennung für den Benutzer.
- Bedingungen: Einschränkungen und Regeln, unter denen die Assertion gültig ist, einschließlich zeitlicher Einschränkungen und Einschränkungen für die Zielgruppe.
- Authentifizierungsaussage: Informationen über die Authentifizierung des Benutzers beim IdP, wie z. B. die Authentifizierungsmethode und der Zeitstempel.
- Attributaussage: Eine Sammlung von Attributen über den Benutzer, wie z. B. Name, E-Mail-Adresse, Rollen usw.
- Autorisierungsentscheidungsaussage: Informationen über die Zugriffsrechte des Benutzers auf bestimmte Ressourcen.
Arten von Aussagen
- Authentifizierungsaussage: Beschreibt den Authentifizierungsvorgang beim IdP, einschließlich der verwendeten Methode und des Zeitpunkts der Authentifizierung.
- Attributaussage: Enthält Attribute, die dem Subjekt zugeordnet sind. Zum Beispiel die E-Mail-Adresse, Rollen oder andere relevante Informationen eines Benutzers.
- Autorisierungsentscheidungsaussage: Bietet Informationen darüber, ob ein Benutzer berechtigt ist, auf eine bestimmte Ressource zuzugreifen. Dies beinhaltet die Entscheidung (Zulassen oder Ablehnen) und die betreffende Ressource.
Wie funktioniert die SAML-Assertion?
- Benutzer fordert Zugriff an: Der Benutzer versucht, auf eine Ressource beim SP zuzugreifen.
- SP fordert Authentifizierung an: Der SP leitet den Benutzer zur Authentifizierung an den IdP weiter.
- Benutzer authentifiziert sich: Der Benutzer gibt dem IdP Anmeldeinformationen an.
- IdP stellt Assertion aus: Nach erfolgreicher Authentifizierung generiert der IdP eine SAML-Assertion und sendet sie an den SP, typischerweise über den Browser des Benutzers.
- SP validiert Assertion: Der SP validiert die Assertion und überprüft ihre Integrität, die Gültigkeit des Ausstellers und die Bedingungen.
- Zugriff gewährt: Wenn die Assertion gültig ist, erhält der Benutzer Zugriff auf die Ressource.
Sicherheitsüberlegungen
- Verschlüsselung: SAML-Assertions können verschlüsselt werden, um die Vertraulichkeit zu gewährleisten.
- Signierung: Assertions werden häufig signiert, um ihre Integrität und Authentizität zu gewährleisten.
- Ablauf: Assertions enthalten Bedingungen, wie z. B. zeitliche Beschränkungen, um das Risiko von Replay-Angriffen zu mindern.