Praxisbewährte Lösungsansätze für Single Sign On im B2B eCommerce

Voraussetzungen für Single Sign On

In der Unternehmens IT ist Single Sign On (SSO) nahezu selbstverständlich geworden und fast alle größeren Unternehmen betreiben heute einen Verzeichnisdienst, wie z.B. Active Directory oder LDAP, und setzen Technologien, wie z.B. Kerberos, ein.

Eine einmalige Anmeldung reicht hier aus, um auf verschiedene Datenbanken, Netzwerkverzeichnisse, Applikationen und Webprojekte zuzugreifen.

Sofern eine eCommerce Lösung nicht nur auf einem einzigen System, wie z.B. einem Webshop, basiert, sondern eine Vielzahl von Systemen, wie z.B. Content Management Systeme, Foren, Ticketsysteme und Dokumentenmanagementsysteme umfasst, gelten aber andere Voraussetzungen, die gemeistert werden müssen.

So handelt es sich i.d.R. um externe Benutzer die es bei B2B eCommerce Lösungen einzubinden gilt, die wiederum weltweit verteilt mit unterschiedlichsten Infrastrukturen, Betriebssystemen und Browser agieren.

Darüber hinaus sind die Benutzerdaten zwischen den einzelnen Systemen häufig nicht konsolidiert. Dies ist natürlich für Single Sign On eine unabdingbare Voraussetzung. Dies gilt natürlich auch für den automatisierten Benutzerabgleich, der z.B. dafür sorgt, dass neue Benutzer in allen Systemen bekannt gemacht werden und Benutzersperren sich auch in allen Systemen auswirken. Ohne das diese Voraussetzungen geschaffen sind, ist eine Single Sign On Lösung unserer Erfahrung nach nicht sinnvoll.

Sofern diese Basisvoraussetzungen gegeben sind, ist es aber i.d.R. noch ein erheblicher Weg bis zur SSO Lösung.

 

Funktionsweise von Single Sign On

Um zu verstehen, wie Single Sign On genau funktioniert, können Sie sich eine Hotelsituation vorstellen.

Single Sign On

Single Sign On auf der Basis eines Hotels erklärt

Zunächst checkt der Gast ein. Dabei zeigt er üblicherweise seinen Ausweis. In unserem Beispiel gibt er den Schlüssel seines Autos am Empfang ab. Nach dem erfolgreichen Checkin erhält der Gast vom Empfang einen Schlüssel. Mit diesem Schlüssel kann der Gast sein Hotelzimmer öffnen, sich Zugang zum Hotelpool verschaffen und an der Rezeption, das Vorfahren seines Autos veranlassen und, das fehlt in dem obigen Bild noch, kann er sich für das Frühstücksbuffet authentifizieren.

In unserem Beispiel reicht es aus, dass der Hotelgast nur einmal beim Checkin identifizieren muss. Anschließend hat er auf verschiedene Services Zugriff indem er seinen Schlüssel verwendet.

Ein Single Sign On Verfahren funktioniert so ähnlich. Der Hotelgast ist ein User. Die Rezeption ein SSO Server. Das Hotelzimmer und der Swimmingpool wird jeweils eine Webapplikation und die das Holen des Auto aus der Parkgarage ein API Aufruf.

Beim Anmelden verwendet der User seine Emailadresse und sein Passwort. Der SSO Server validiert diese Daten und prüft ob die Anmeldung gültig ist. Ist das der Fall erzeugt der SSO Server einen Cookie, nennen wir ihn cookie1, der es ermöglicht, das der User beim SSO Server angemeldet bleibt. Wenn der User dann auf die Webapplikation „Hotelzimmer“ zugreifen möchte, prüft „Hotelzimmer“ nochmal beim SSO Server ob der User zugriffsberechtigt ist. Der SSO Server nutzt dafür den cookie1 Cookie. Der SSO Server gibt die Raumnummer, auf die der User Zugriff hat, zurück an die Webapplikation „Hotelzimmer“. Anschließend erstellt die Webapplikation „Hotelzimmer“ einen neuen Cookie, nennen wir ihn cookie2, und hinterlegt dort den eben genannten „Raum“.

Wenn der User auf die Webapplikation „Hotelpool“ zugreift, fragt die Webapplikation auch den SSO Server, der wiederum den cookie1 prüft, allerdings gibt der SSO Server nur ein OK zurück, da alle „Hotelgäste“ in den Hotelpool dürfen. Die Zimmernummer ist dafür nicht relevant.

Wenn sich der User abmeldet, oder „Auscheckt“, werden die Cookies cookie1 und cookie2 gelöscht.

Da ist auch schon alles.

 

Lösungsmöglichkeiten für Single Sign On

Einfach gesagt geht es bei SSO darum, dass eine einmal erfolgte Benutzerauthentifizierung für alle Applikationen gelten soll. Doch so „einfach“ ist es i.d.R. dann doch nicht.

So soll z.B. eine Benutzerabmeldung natürlich sofort für alle Systeme gelten, egal in welchem System sie erfolgt ist. Weiterhin muss auch das Abmelden und Neuanmelden mit einem anderen Benutzerkonto sicher funktionieren. Ergänzend gibt es häufig kein zentrales System, an dem sich der Benutzer anmeldet, sondern er soll sich überall an jedem System anmelden können und anschließend an allen anderen Systemen angemeldet sein.

Hier kann man sich sicherlich etwas „bauen“ oder „bauen lassen“ und z.B. jedes System mit jedem anderen System individuell integrieren. Sessions, Cookies, Verschlüsselungstechnologien, Zertifikate etc. bieten hier Möglichkeiten und entsprechende Erfahrung vorausgesetzt, funktioniert das auch. Die Vielzahl der Testfälle, das benötigte Knowhow und die Komplexität sind aber nicht zu unterschätzen.

Wir empfehlen deshalb, alleine schon aus Sicherheitsüberlegungen, auf Standards und Standardtechnologie zu setzen.

Standard bedeutet für uns, dass eine zentrale, sogenannte Identify Management Lösung, für die Verwaltung der Logindaten zum Einsatz kommt und alle in der eCommerce Lösung zu integrierenden Applikationen mit Standardtechnologie nur einmal mit dieser Identify Management Lösung integriert werden. Sollten weitere Systeme zu integrieren sein, so entfällt bei diesem Ansatz die Integration mit allen bisherigen Systemen.

Für den Austausch von Authentifizierungs- und Autorisierungsinformationen zwischen den Applikationen bietet sich der Standard SAML (Security Assertion Markup Language) an. Alle Applikationen, die bereits SAML fähig sind, lassen sich natürlich sehr einfach in die solche SSO Lösung integrieren. Für Applikationen, die noch nicht SAML fähig sind, stehen geeignete Open Source Libraries und Toolkits für die verschiedensten Programmiersprachen, wie z.B. ASP.NET, Java, PHP, Python und Ruby, zur Verfügung, die eine schnelle Implementierung in jede moderne Applikation ermöglichen.

Single Sign On

Public Domain, https://en.wikipedia.org/w/index.php?curid=10107100

 

Fazit

Da der Identity Management Lösung eine besondere Bedeutung in puncto Betrieb und Sicherheit (Sicherheitsprüfungen und Updates – Ist das nötig?) zukommt, empfehlen wir, sofern keine geeigneten Lösungen im Projekt vorhanden sind, Cloudlösungen einzusetzen, die, je nach Benutzerzahl, z.T. schon für wenige Cent pro Benutzer und Jahr angeboten werden, gleichzeitig aber einen professionellen Betrieb sicherstellen.

Gerne helfen wir Ihnen auch bei Ihren Single Sign On Anforderungen.

Ähnliche Beiträge