Ein Entwicklerleitfaden zur SAML-Authentifizierung [3 Online Tools]

In der heutigen Welt ist die Vereinfachung der Passwortverwaltung unerlässlich. Während Unternehmen die Digitalisierung vorantreiben, nutzen Mitarbeiter mehr denn je Collaboration-, Messaging- und Speichertools.

Das stellt Entwickler vor eine Herausforderung: Wie ermöglicht man Mitarbeitern einen sicheren Zugriff auf interne Anwendungen und Daten, die in der Cloud gespeichert sind? Für viele lautet die Antwort SAML-Authentifizierung!

Was ist SAML?

Security Assertion Markup Language oder SAML ist ein offener Standard, der Authentifizierungsprozesse vereinfacht. Es basiert auf XML (Extensible Markup Language), das die Kommunikation zwischen den zu authentifizierenden Entitäten und dem Webdienst oder der Anwendung standardisiert. Mit anderen Worten, SAML ermöglicht es, sich mit einem einzigen Login bei mehreren verschiedenen Anwendungen anzumelden.

Einerseits benötigt ein Dienstanbieter eine Identity Provider (IdP)-Authentifizierung, um dem Benutzer eine Autorisierung zu erteilen. Beispielsweise ist Salesforce ein Dienstanbieter, der sich für die Benutzerauthentifizierung auf einen Identitätsanbieter verlässt.

Andererseits 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 Dienstanbieter. Ein Beispiel ist AuthO, einer der führenden Anbieter von Identitätslösungen.

Was ist mit SAML Single Sign-On?

Eine der Hauptaufgaben von SAML ist die Aktivierung von SSO. Vor SAML war SSO möglich, aber von Cookies abhängig und nur auf derselben Domäne realisierbar.

SAML ermöglicht Single Sign-On (SSO), indem Benutzern der Zugriff auf mehrere Anwendungen mit einer einzigen Anmeldung und einem Satz von Anmeldeinformationen ermöglicht wird. Obwohl SAML nicht neu ist, gibt es es seit 2002, und viele neue Anwendungen und SaaS-Unternehmen verwenden SAML für SSO. Die neueste Version, SAML 2.0, ermöglicht webbasiertes, domänenübergreifendes SSO und ist der Standard für die Ressourcenautorisierung.

Was sind die Vorteile der SAML-Authentifizierung?

SAML bringt viele Vorteile für Sicherheit, Benutzer und andere Dienstanbieter (SPs).

Einfachheit: Benutzer melden sich nur einmal beim IdP an und genießen dann einen nahtlosen und sichereren Zugriff auf alle 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 ausgestattet, um Benutzeridentitäten zu authentifizieren. Durch die Rückgabe der Authentifizierung an den IdP ermöglicht SAML eine sichere Authentifizierung, die mehrere Sicherheitsebenen anwenden kann, wie z. B. MFA.

  Die 14 besten WooCommerce-Plugins zum Aufladen von E-Commerce-Websites

Verbesserte Benutzererfahrung: Mit SAML können sich Ihre Benutzer von den Kopfschmerzen verabschieden, wenn sie versuchen, sich mehrere Benutzernamen und Kennwörter zu merken

Reduzierter Verwaltungsaufwand: Dienstanbieter können ihre Plattformsicherheit verbessern, ohne Passwörter zu speichern. Sie müssen sich nicht mit vergessenen Passwörtern befassen. Der Helpdesk reduziert Kosten und entlastet technische Teams, um andere dringende Anfragen zu bearbeiten.

Was ist Auth0 und wie ist es mit der SAML-Authentifizierung verbunden?

Auth0 ist eine Plattform, die Benutzerauthentifizierungs- und Autorisierungsdienste bereitstellt. Es kann sowohl als IdP als auch als SP fungieren. Auth0 bietet ein universelles Login, das mit SAML integriert werden kann. Entwickler verwenden häufig Auth0 mit SAML, um das Risiko zu diversifizieren, indem sie mehrere IdP haben.

Auth0 kann mit fast allen wichtigen Sprachen und APIs verwendet werden. Es kann auch in soziale Anbieter, Datenbanken und LDAP-Verzeichnisse integriert werden.

SAML-SSO-Flow

Eine der Hauptaufgaben von SAML besteht darin, Single Sign-On (SSO) zu ermöglichen. Vor SAML war SSO möglich, aber von Cookies abhängig und nur in derselben Domäne durchführbar.

SAML ermöglicht SSO, indem Benutzern der Zugriff auf mehrere Anwendungen mit einem einzigen Login und Anmeldeinformationen ermöglicht wird. SAML ist nicht neu, es gibt es seit 2002, und viele neue Anwendungen und SaaS-Unternehmen verwenden SAML für SSO. Die neueste Version, SAML 2.0, ermöglicht webbasiertes, domänenübergreifendes SSO und ist der Standard für die Ressourcenautorisierung.

Konkret bedeutet dies, den Benutzer nur einmal zur Authentifizierung aufzufordern, wenn dieser unterschiedliche Anwendungen nutzt. Wir können zum Beispiel an die Google-Authentifizierung denken, die von den verschiedenen Diensten Gmail, Youtube, Google Apps usw. gemeinsam genutzt wird.

In diesem Betriebsmodus ist Google der Identitätsanbieter (IdP) für seine Dienste. Diese Dienste werden „Dienstanbieter“ (SP) genannt.

Authentifizierung

Beim Herstellen einer Verbindung mit der externen Anwendung wird der unbekannte Benutzer an den IdP des Unternehmens gesendet. Dieser IdP ist ein Webdienst, auf den über HTTPS zugegriffen werden kann. Es 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.

  Was können Sie von einem lernen?

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 Zusatzattribute: Nachname, Vorname, Sprache etc.
  • Eine Gültigkeitsdauer des Tokens
  • Eine Signatur des Tokens durch den IdP

Übertragung vom IdP zum SP

Im praktischsten Modus wird die Assertion nicht direkt vom IdP an den SP weitergegeben, sondern durch den Benutzer selbst. Über einen HTTP-Bounce-Mechanismus stellt der IdP dem Client-Browser das Token zur Übertragung an den Dienstanbieter bereit. Es kann mit dem von der Präfektur ausgestellten Personalausweis verglichen werden, der jeder Behörde vorgelegt werden muss.

Verbrauch des Tokens durch den SP

Der Dienstanbieter erhält das Token vom Benutzer. Der SP hat sich entschieden, diesem IdP zu vertrauen. Es validiert auch die Signatur und die Integrität des Tokens sowie die Gültigkeitsdauer. Wenn die Tests schlüssig sind, öffnet der SP eine Sitzung für den Benutzer.

Quelle: Wikipedia

SAML-Authentifizierung vs. Benutzerberechtigung

Häufig wird SAML-Authentifizierung mit Autorisierung verwechselt. Zur Verdeutlichung ist es wichtig, die Konzepte Authentifizierung und Autorisierung zu unterscheiden.

Authentifizierung: Es ist die Validierung der Identität des Benutzers; Im Grunde wird überprüft, ob sie die sind, für die sie sich ausgeben. Ein Beispiel ist die Verwendung von E-Mail und Passwort für den Zugriff auf ein System – eine einzelne Sitzung oder ein Login für andere Plattformen.

Autorisierung: Dies sind die Berechtigungen, die der Benutzer einem Drittanbietertool erteilt, um auf Ressourcen in seinem Konto zuzugreifen. Mit Zustimmung des Benutzers tauscht das Autorisierungsprotokoll Token aus, ohne auf seine Anmeldeinformationen zuzugreifen. Normalerweise tun Sie dies, wenn Sie einer Plattform (wie Facebook) erlauben, auf bestimmte Informationen aus Ihrem Google-Konto zuzugreifen.

Muss-Know-Terminologien von SAML

SAML-Assertion

SAML-Zusicherungen werden in der Regel von Identitätsanbietern an Dienstanbieter weitergegeben. Zusicherungen enthalten Aussagen, die Dienstanbieter verwenden, um Entscheidungen zur Zugriffskontrolle zu treffen. Drei Arten von Deklarationen werden von SAML bereitgestellt:

  • Authentifizierungsaussagen bestätigen, dass der Dienstanbieter tatsächlich zu einem bestimmten Zeitpunkt mit einem Authentifizierungsverfahren beim Identitätsanbieter authentifiziert wurde.
  • Eine Attributdeklaration bestätigt, dass ein Subjekt bestimmten Attributen zugeordnet ist. Ein Attribut ist einfach ein Name-Wert-Paar. Vertrauende Parteien verwenden die Attribute, um Zugriffssteuerungsentscheidungen zu treffen.
  • Eine autorisierte Entscheidungserklärung behauptet, dass es einem Subjekt erlaubt ist, auf eine Ressource einzuwirken, indem es Beweise dafür vorlegt. Die Aussagekraft von Autorisierungsentscheidungszuständen in SAML wird bewusst eingeschränkt.
  So richten Sie ein Spotify Kids-Konto ein

Behauptung Verbraucherdienst

Der Assertion Consumer Service oder ACS ist der Punkt, an dem der Identitätsanbieter nach der Benutzerauthentifizierungsantwort umleitet. Der Punkt, zu dem der Identitätsanbieter umleitet, ist ein HTTPS-Endpunkt, der persönliche Informationen überträgt.

Standard-Relaisstatus

Dies ist die Standard-URL, zu der der Benutzer umgeleitet wird, nachdem die SAML-Nachricht authentifiziert wurde. Der Standard-Relay-Status wird verwendet, um Nachrichten zwischen IdPs und SPs zu koordinieren.

SAML ist ein weit verbreitetes Protokoll, und häufig müssen SAML-Assertionen decodiert werden. Im Folgenden sind einige der besten SAML-Tools zum Codieren, Decodieren und Formatieren von SAML-Nachrichten und -Assertionen aufgeführt:

#1. SAMLtool

SAMLtool von OneDesign ist eine Sammlung von Online-SAML-Tools und -Toolkits. Dazu gehören verschiedene Tools zum Codieren und Decodieren von SAML-Nachrichten, zum Verschlüsseln und Entschlüsseln von Assertions sowie zum Signieren und Validieren von SAML-Nachrichten und -Assertionen. SAMLtool bietet auch mehrere verschiedene Plugins, um diese Tools mit mehreren CMS zu integrieren.

#2. Samtool.io

Angeboten von Auth0, samltool.io ist ein Online-Tool, mit dem Sie auch SAML-Nachrichten und -Assertionen decodieren, untersuchen und verifizieren können, indem Sie einfach rohes XML oder URLs mit Anforderungen einfügen.

#3. SAM-Decoder

SAM-Decoder ist ein einfaches Online-Tool zum Decodieren von SAML, das von PingIdentity angeboten wird. Der SAM-Decoder kann zum Decodieren, Aufblähen und Formatieren von SAML-Nachrichten, Assertionen und Metadaten verwendet werden.

Letzte Worte

Der SAML-Standard ist sehr nützlich, um eine zentrale Authentifizierungsinstanz basierend auf der Auszeichnungssprache zu implementieren. Einer der wesentlichen Vorteile ist, dass es eine hohe Effizienz und einen hohen Sicherheitsstandard bietet.

Insbesondere wird die Anzahl möglicher Sicherheitslücken minimiert, da einzelne Anwendungen keine Benutzerdaten speichern oder synchronisieren müssen. Damit wird eines der vorrangigen Ziele erreicht, nämlich ein hohes Maß an Sicherheit mit bestmöglichem Bedienkomfort in Einklang zu bringen.

Sie können sich auch einige der besten Benutzerauthentifizierungsplattformen ansehen.