In der heutigen Welt ist die Vereinfachung der Passwortverwaltung unerlässlich. Mit der fortschreitenden Digitalisierung der Unternehmen nutzen die Mitarbeiter mehr denn je Tools für die Zusammenarbeit, den Nachrichtenaustausch und die Datenspeicherung.
Dies stellt die Entwickler vor eine Herausforderung: Wie können Sie Ihren Mitarbeitern einen sicheren Zugriff auf interne Anwendungen und in der Cloud gespeicherte Daten ermöglichen? Für viele lautet die Antwort: SAML-Authentifizierung!
Was ist SAML?
Security Assertion Markup Language oder SAML ist ein offener Standard, der die Authentifizierungsprozesse vereinfacht. Er basiert auf XML (Extensible Markup Language), das die Kommunikation zwischen den zu authentifizierenden Entitäten und dem Webservice oder der Anwendung standardisiert. Mit anderen Worten: SAML macht es möglich, sich mit einem einzigen Login bei mehreren verschiedenen Anwendungen anzumelden.
Einerseits benötigt ein Dienstanbieter die Authentifizierung des Identitätsanbieters (IdP), um dem Benutzer eine Autorisierung zu erteilen. Salesforce ist zum Beispiel ein Service Provider, der sich für die Benutzerauthentifizierung auf einen Identitätsanbieter verlässt.
Auf der anderen Seite authentifiziert ein Identitätsanbieter, dass der Endbenutzer derjenige ist, für den er sich ausgibt, und sendet diese Daten zusammen mit den Zugriffsrechten des Benutzers auf den Dienst an den Serviceanbieter. Ein Beispiel dafür ist AuthO, einer der führenden Anbieter von Identitätslösungen.
Was ist mit SAML Single Sign-On?
Eine der Hauptaufgaben von SAML ist es, SSO zu ermöglichen. Vor SAML war SSO zwar möglich, aber abhängig von Cookies und nur in der gleichen Domäne durchführbar.
SAML ermöglicht Single Sign-On (SSO), indem es Benutzern den Zugriff auf mehrere Anwendungen mit einer einzigen Anmeldung und einem Satz von Anmeldedaten ermöglicht. SAML ist zwar nicht neu, aber es gibt es schon seit 2002 und viele neue Anwendungen und SaaS-Unternehmen nutzen SAML für SSO. Die neueste Version, SAML 2.0, ermöglicht webbasiertes domänenübergreifendes SSO und ist der Standard für die Autorisierung von Ressourcen.
Was sind die Vorteile der SAML-Authentifizierung?
SAML bietet viele Vorteile für die Sicherheit, die Benutzer und andere Dienstanbieter (SPs).
Einfachheit: Benutzer melden sich nur einmal beim IdP an und genießen dann einen nahtlosen und sichereren Zugang zu allen Anwendungen.
Erhöhte Sicherheit: Viele SPs haben nicht die Zeit oder die Ressourcen, um eine sichere Benutzerauthentifizierung bei der Anmeldung zu implementieren und durchzusetzen. Im Allgemeinen sind IdPs besser für die Authentifizierung von Benutzeridentitäten gerüstet. Indem SAML die Authentifizierung an den IdP zurückgibt, ermöglicht es eine sichere Authentifizierung, die mehrere Sicherheitsebenen, wie z.B. MFA, anwenden kann.
Verbesserte Benutzerfreundlichkeit: Mit SAML können sich Ihre Benutzer von den Kopfschmerzen verabschieden, die das Merken mehrerer Benutzernamen und Passwörter verursacht
Geringerer Verwaltungsaufwand: Service Provider können die Sicherheit ihrer Plattform verbessern, ohne Passwörter zu speichern. Sie müssen sich nicht mehr um vergessene Passwörter kümmern. Der Helpdesk senkt die Kosten und setzt technische Teams frei, die sich um andere dringende Anfragen kümmern können.
Was ist Auth0 und wie ist es mit der SAML-Authentifizierung verbunden?
Auth0 ist eine Plattform, die Dienste zur Benutzerauthentifizierung und Autorisierung anbietet. Sie kann sowohl als IdP als auch als SP fungieren. Auth0 bietet eine universelle Anmeldung, die mit SAML integriert werden kann. Entwickler verwenden Auth0 oft mit SAML, um das Risiko durch mehrere IdPs zu diversifizieren.
Auth0 kann mit fast allen wichtigen Sprachen und APIs verwendet werden. Es kann auch mit sozialen Anbietern, Datenbanken und LDAP-Verzeichnissen integriert werden.
SAML SSO-Ablauf
Eine der Hauptaufgaben von SAML ist es, Single Sign-On (SSO) zu ermöglichen. Vor SAML war SSO zwar möglich, aber von Cookies abhängig und nur in derselben Domäne durchführbar.
SAML ermöglicht SSO, indem es Benutzern den Zugriff auf mehrere Anwendungen mit einer einzigen Anmeldung und Anmeldedaten ermöglicht. SAML ist nicht neu, es gibt es bereits seit 2002, und viele neue Anwendungen und SaaS-Unternehmen nutzen SAML für SSO. Die neueste Version, SAML 2.0, ermöglicht webbasiertes domänenübergreifendes SSO und ist der Standard für die Autorisierung von Ressourcen.
Konkret bedeutet dies, dass der Benutzer nur einmal zur Authentifizierung aufgefordert wird, wenn er verschiedene Anwendungen nutzt. Denken Sie zum Beispiel an die Google-Authentifizierung, die von den verschiedenen Diensten Gmail, Youtube, Google Apps usw. gemeinsam genutzt wird.
In dieser Betriebsart ist Google der Identitätsanbieter (IdP) für seine Dienste. Diese Dienste werden als “Service Provider” (SP) bezeichnet.
Authentifizierung
Wenn Sie sich mit der externen Anwendung verbinden, wird der unbekannte Benutzer an den IdP des Unternehmens weitergeleitet. Dieser IdP ist ein Webservice, der über HTTPS zugänglich ist. Er kann intern oder extern gehostet werden.
Interne Authentifizierung
Der Benutzer weist dann seine Identität gegenüber dem IdP nach. Diese Phase kann durch explizite Authentifizierung (Login/Passwort) oder durch die Weitergabe eines bereits vorhandenen Tokens erfolgen.
Generierung der Behauptung
Der IdP generiert dann einen “Token”, eine Art Benutzerausweis, der nur für den angeforderten Dienst und für eine bestimmte Zeit gültig ist. In diesem Token finden wir insbesondere:
- Die Identität des Benutzers: Login, E-Mail oder andere Felder
- Optionale zusätzliche Attribute: Nachname, Vorname, Sprache, usw.
- Eine Gültigkeitsdauer des Tokens
- Eine Signatur des Tokens durch den IdP
Übermittlung vom IdP zum SP
In der praktischsten Variante wird die Assertion nicht direkt vom IdP an den SP übermittelt, sondern durch den Benutzer selbst. Über einen HTTP-Bounce-Mechanismus stellt der IdP dem Client-Browser das Token zur Übermittlung an den Dienstanbieter zur Verfügung. Es kann mit dem Personalausweis verglichen werden, der von der Präfektur zur Vorlage bei einer Behörde bereitgestellt wird.
Abruf des Tokens durch den SP
Der Dienstanbieter erhält das Token vom Benutzer. Der SP hat sich entschieden, diesem IdP zu vertrauen. Er prüft auch die Signatur und die Integrität des Tokens sowie die Gültigkeitsdauer. Wenn die Tests schlüssig sind, eröffnet der SP eine Sitzung für den Benutzer.
SAML-Authentifizierung vs. Benutzerautorisierung
Oft wird die SAML-Authentifizierung mit der Autorisierung verwechselt. Um Klarheit zu schaffen, ist es wichtig, die Konzepte der Authentifizierung und Autorisierung zu unterscheiden.
Authentifizierung: Es handelt sich um die Validierung der Identität des Benutzers; im Grunde wird überprüft, ob er derjenige ist, der er vorgibt zu sein. Ein Beispiel ist die Verwendung von E-Mail und Passwort für den Zugriff auf ein System – eine einzige Sitzung oder ein Login für andere Plattformen.
Autorisierung: Dies sind die Berechtigungen, die der Benutzer einem Drittanbieter-Tool für den Zugriff auf Ressourcen in seinem Konto erteilt. Mit der Zustimmung des Benutzers tauscht das Autorisierungsprotokoll Token aus, ohne auf seine Anmeldedaten zuzugreifen. Normalerweise tun Sie dies, wenn Sie einer Plattform (wie Facebook) den Zugriff auf bestimmte Informationen in Ihrem Google-Konto erlauben.
Unverzichtbare Begriffe von SAML
SAML-Behauptung
SAML-Assertions werden in der Regel von Identitätsanbietern an Dienstanbieter weitergegeben. Assertions enthalten Erklärungen, die von Dienstanbietern verwendet werden, um Entscheidungen zur Zugriffskontrolle zu treffen. SAML stellt drei Arten von Erklärungen zur Verfügung:
- Authentifizierungserklärungen versichern, dass der Dienstanbieter tatsächlich zu einem bestimmten Zeitpunkt mit einer Authentifizierungsmethode beim Identitätsanbieter authentifiziert wurde.
- Eine Attributdeklaration besagt, dass ein Subjekt mit bestimmten Attributen verbunden ist. Ein Attribut ist einfach ein Paar aus Name und Wert. Relying Parties verwenden die Attribute, um Entscheidungen über die Zugriffskontrolle zu treffen.
- Eine Autorisierungsentscheidung besagt, dass ein Subjekt die Erlaubnis hat, auf eine Ressource zuzugreifen, indem es einen Nachweis dafür vorlegt. Die Ausdruckskraft von Autorisierungsentscheidungen in SAML ist absichtlich begrenzt.
Assertion-Verbraucherdienst
Der Assertion Consumer Service oder ACS ist der Punkt, an den der Identitätsanbieter nach der Antwort auf die Benutzerauthentifizierung weiterleitet. Der Punkt, an den der Identitätsanbieter weiterleitet, ist ein HTTPS-Endpunkt, der persönliche Daten überträgt.
Standard-Relay-Status
Dies ist die Standard-URL, an die der Benutzer nach der Authentifizierung der SAML-Nachricht weitergeleitet wird. Der Standard-Relay-Status wird verwendet, um Nachrichten zwischen IdPs und SPs zu koordinieren.
Beste Online SAML-Tools
SAML ist ein weit verbreitetes Protokoll, und oft muss man SAML-Assertions entschlüsseln. Im Folgenden finden Sie einige der besten SAML-Tools für die Kodierung, Dekodierung und Formatierung von SAML-Nachrichten und -Assertions:
#1. SAMLtool
SAMltool von OneDesign ist eine Sammlung von Online-SAML-Tools und Toolkits. Dazu gehören verschiedene Tools zum Kodieren und Dekodieren von SAML-Nachrichten, zum Ver- und Entschlüsseln von Assertions und zum Signieren und Validieren von SAML-Nachrichten und Assertions. SAMLtool bietet außerdem verschiedene Plugins zur Integration dieser Tools in verschiedene CMS.
#2. Samtool.io
Das von Auth0 angebotene samltool.i o ist ein Online-Tool, mit dem Sie SAML-Nachrichten und -Assertions entschlüsseln, prüfen und verifizieren können, indem Sie einfach rohes XML oder URLs mit Anfragen einfügen.
#3. SAM Decoder
SAM decoder ist ein einfaches Online-Tool zur Dekodierung von SAML, das von PingIdentity angeboten wird. SAM decoder kann zum Dekodieren, Aufblasen und Formatieren von SAML-Nachrichten, Assertions und Metadaten verwendet werden.
Abschließende Worte
Der SAML-Standard ist sehr nützlich für die Implementierung einer zentralen Authentifizierungsinstanz auf der Grundlage der Auszeichnungssprache. Einer seiner wesentlichen Vorteile ist, dass er hohe Effizienz und einen hohen Sicherheitsstandard bietet.
Insbesondere wird die Anzahl möglicher Sicherheitslecks minimiert, da die einzelnen Anwendungen keine Benutzerdaten speichern oder synchronisieren müssen. Auf diese Weise wird eines der Hauptziele erreicht, nämlich ein hohes Maß an Sicherheit mit einem möglichst hohen Maß an Benutzerfreundlichkeit in Einklang zu bringen.