Single Sign-On (SSO)

Studien zufolge sind fast 80 Prozent der deutschen Unternehmen in sozialen Medien aktiv. Ebenso nutzen ca. 50 Prozent die Vorzüge der Cloud-Dienste. Weiterhin hat die Vielfalt an Endgeräten enorm zugenommen. Längst sind mobile Endgeräte wie Smartphones und Tablets ein fester Bestandteil im Arbeitsalltag. Dieser ganze Zoo an möglichen Zugriffen bedeutet natürlich eine ganze Menge an Passwörtern die sich jeder User merken muss und das zusätzlich zu seinen privaten E-Mail und Social-Media-Accounts. Kein Wunder das der normale Internetuser im schlimmsten Fall an einer sogenannten „Passwortmüdigkeit“ leidet. Dies bedeutet er setzt Passwörter wie z.B. „12345“ oder „abcde“. Noch schlimmer ist es wenn er wichtige Passwörter auf Post-it Zetteln am Bildschirm notiert. Dies hat nicht nur einen Mangel an Produktivität zur Folge sondern auch einen sehr großen Mangel an Datensicherheit. Ein Heilmittel ist hier Single Sign-On (SSO). Doch was bedeutet nun diser Begriff genau und wie sicher ist dieses Authentifizierungsverfahren wirklich?

Was bedeutet nun Single-Sign-On?

Single Sign-On könnte man direkt auch im Deutschen als „Einmalanmeldung“ übersetzen. Dies ist ein Authentifizierungsverfahren, welches immer auf die gleiche Art und Weise abläuft:

  • Einmalige Anmeldung eines Benutzers an seinem Arbeitsplatz.
  • Solange der Benutzer am selben Arbeitsplatz arbeitet, erhält er Zugriff auf alle für ihn autorisierten Rechner inkl. deren Dienste (auch auf Cloud-Services)
  • Meldet sich der Benutzer an seinem Arbeitsplatz ab, werden ihm alle Zugriffsrechte wieder entzogen. Dies erfolgt nach einem festgelegten Zeitraum oder wenn der Beutzer einen „Single Sign-Out“ initiert hat.

Single Sign-On (SSO) ist somit ein Authentifizierungsverfahren für multifunktionale miteinander assozierte, aber vollkommen unabhängige Applikationen für die sich ein User nur einmal anmelden muss ohne sich bei jeder Applikation einzeln mit Login und Passwort anmelden zu müssen. Aufgrund dieser Nutzerfreundlichkeit kommen Single Sign-On Lösungen nicht nur in Unternehmen sondern auch immer mehr im privaten Bereich zum Einsatz.

Wie funktioniert nun Single-Sign-On?

Nutzt ein Internetuser während er bei seinem Betriebssystem eingeloggt ist mehrere Dienste und Applikationen, muss er im Regelfall für jeden Dienst und Applikation seine Logindaten eingeben. Ist er hingegen bei einer Single Sign-On Lösung registriert, übernimmt eine vorgelagerte Software diese Aufgaben dieser vielen Logins. Diese Software hat alle Zugangsdaten des Users und authentifiziert sich vollautomatisch und ohne das Zutun des User gegenüber den Diensten und Applikationen. Hierbei wird eine einzelne übergreifende Identität des Users verwendet, die allen Diensten und Applikationen bekannt ist und über den SSO-Service als vertrauenswürdig anerkannt wird.

Notiz am Rande:

Bei den IT-Begriffen „Authentifizierung“ und „Autorisierung“ besteht aufgrund ihrer geringen Unterschiede oft einen Gefahr der Verwechselung oder sie werden fälschlicherweise synonym gebraucht. Eine Authentifizierung bedeutet, wenn ein Dienst einen User mittels seiner Zugangsdaten identifiziert. Während bei einer Autorisierung der User einem Dienst die Berechtigung gibt, bestimmte Daten, Dateien oder Funktionen seines Zugangs zu nutzen.

Um eine solche Single Sign-On Lösung nahtlos in ein Unternehme integrieren zu können, kommen verschiedene Authentifizierungs- und Autorisierungsverfahren zum Einsatz:

OpenID

OpenID ist eine offenes, dezentrales Authentifizierungs-system für webbasierte Dienste wie z.B. Google oder PayPal. Die aktuelle Version dieses Systems nennt sich OpenID Connect (OIDC) und ist eine Kombination aus OpenID und OAuth2. OpenID gestattet es einem User, wenn er sich einmal bei einem OpenID-Provider (z.B. Google) mit Username und Passwort angemeldet hat, also einen OpenID-Account erstellt hat, mithilfe seiner OpenID (einer URL oder auch Identifier) sich ohne Username und Passwort bei anderen Webseiten die das OpenID System unterstützen anzumelden, somit wendet das System das Single Sign-On Prinzip an. In diesem Fall übeträgt der vertrauenswürdige OpenID-Provider einen „Token“ als Beweis der Identität des Users an die entsprechende Webseite.

Unterstützen Webseiten OpenID als Anmeldeverfahren kann hierzu ergänzend das klassische Anmeldeverfahren (also mit Username und Passwort) noch angeboten werden. Wird allerdings auf das klassische Anmeldeverfahren verzichtet, hat dies auch Vorteile, wie das z.B. keine Funktionen wie „Passwort vergessen“ implementiert werden müssen. Zudem entfällt beim Webseitenbetreiber das speichern der Usernamen und Passwörter. Somit wird der notwendige Sicherheitsaufwand zum OpenID-Provider verlagert.

Im übertragenen Sinne könnte man sich SSO via OpenID wie eine Urlaubsreise vorstellen. Bei der Einreise in das Urlaubsland benutzt der Reisende (der User) seinen Reisepass, den er von seiner Heimatbehörde (dem Identity-Provider) ausgestellt bekommen hat, dem das Urlaubsland (die Webseite) vertraut. Der Reisepass verifiziert somit die Identität des Reisenden. Ein weiteres gutes Beispiel passend hierzu ist der „Mit Facebook anmelden“ Button, welcher auf vielen Webseiten zu finden ist.

Weiter lesen…

OAuth2

OAuth2 ist im Gegensatz zu OpenID eher ein Autorisierungs- als Authentifizierungsverfahren. Der hauptsächliche Unterschied ist hierbei, das sich bei OAuth2 ein Client mittels eines Token von einem Identity-Provider an einer Webseite anmeldet, anstatt sich selbst bei der Webseite zu authentifizieren. Der große Vorteil ist hier das der User nicht wie bei OpenID seine kompletten Daten an die Webseite übermitteln muss. Ein Beispiel wäre wenn man als Haus- oder Wohnungsbesitzer (als User) seinem Freund (dem Client) den Haustürschlüssel (den Token) gibt um nach dem rechten im Haus (der Webseite) zu sehen. OAuth2 kommt z.B. zum Einsatz wenn man bei Facebook seine Freunde in einen anderen Dienst importieren möchte, ohne direkt seine Facebook-Daten an diesen Dienst weiter geben zu müssen. 

Abstrakter OAuth-2.0-Protokollfluss

  1. Anforderung der Autorisierung vom Client an den Resource Owner. Autorisierungsanforderung könnte direkt erfolgen, wird aber in den meisten Fällen indirekt über den Authorization Server durchgeführt.
  2. Resource Owner stellt Autorisierungsgenehmigung dem Client aus. Autorisierung könnte über einen der vier Autorisierungsgenehmigungen (authorisation grant types: authorization code, implicit, resource owner password credentials, client credentials) erfolgen ansonsten wird ein erweiterter Genehmigungsprozess angestoßen.
  3. Client fordert ein Access Token mittels der Autorisierungsgenehmigung vom Resource Owner vom Authorization Server an. 
  4. Authorization Server authentisiert den Client durch Prüfung der  Autorisierungsgenehmigung des Resource Owners. Ist die Prüfung erfolgreich, wird der Access Token ausgestellt.
  5. Client frägt mittels des Access Token die geschützten Daten beim Resource Server an.
  6. Resource Server prüft das Access Token des Clients und übermittelt, wenn die Gültigkeit des Access Tokens bestätigt wurde, die gewünschten Daten.
Weiter lesen…

SAML

SAML ist ein offener Standard sowohl für die Authentifizierung als auch für die Autorisierung bei SSO-Lösungen und ist auch das älteste der 3 genannten Verfahren. Auch hierbei werden 3 Bereiche unterschieden: der User, die Webseite (Service Provider) und der Identity-Provider, welcher die Verifizierung durchführt. Die Vorgehensweise ähnelt sehr stark der von OpenID, weshalb man auch das Reisepass-Beispiel aus dem OpenID-Abschnitt hier heranziehen könnte.

Allerdings stellt bei SAML die Webseite selbst nochmals eine Identifizierungsanfrage in Form einer XML-Nachricht an den Identity-Provider um notwendige Informationen abzugleichen. Die Antwort des Identity-Provider nennt man auch „assertion“. Diese enthält alle notwendigen Authentifizierungs- und Autorisierungsinformationen sowie spezifische Attribute wie Mail-Adresse und Telefonnummer etc. des Users.

Assertions

Die SAML-Assertion enthält eine oder mehrere Informationen über die Eigenschaften (Identität, Attribute etc.) und die expliziten Berechtigungen eines Users. Der jeweilige Identity-Provider erstellt diese in einem XML Format. In jeder Assertion ist zudem noch eine digitale Signatur gespeicherter, welche vom zugreifenden Service-Provider (also die jeweilige Anwendung) geprüft wird. Somit ist die Integrität und Authentizität der Assertion sichergestellt, wobei diese signierte Form auch SAML-Token genannt wird. Nach erfolgreicher Verifizierung des SAML-Token wird vom Service-Provider der Inhalt geprüft und entschieden welchen Zugriff der User erhält.

Es gibt folgende 3 Typen von Informationen in Assertions, welche im SAML-2.0-Standard spezifiziert sind:

  • Authentication Statements: Mit diesen Statements informiert der Identity-Provider den Service-Provider (die Anwendung) darüber das der User authentifiziert ist. Ebenso ist hier die Info enthalten wann und mit welcher Methode diese Authentifizierung stattgefunden hat.
  • Attribute Statements: Bei diesen Statements handelt es sich um weitere Attribute die mit dem User verbunden sind und so zusätzlich der Anwendung mitgeteilt werden können.
  • Authorization Decision Statements: Diese Statements sagen aus, das der entsprechende User zusätzlichen Zugriff auf spezifische Ressourcen erhalten hat oder ihm diese entzogen wurden.

Weiter lesen…

Lösungsansätze für Single-Sign-On

In der heutigen IT-Welt kommen drei Lösungsansätzen für die Realisierung von SSO-Verfahren zu Einsatz:

Portallösung

Wie der Name hier schon verrät meldet sich der User bei dieser SSO-Lösung in einem Portal an. In diesem Portal sind dann alle entsprechenden Anwendungen, Prozesse und Services integriert. Nach der erfolgreichen Authentifizierung des Users wird dieser mit einem Indentifier (z.B. einem Cookie) versehen, womit er auf alle für ihn berechtigten Anwendungen etc. Zugriff hat. Ein treffendes Beispiel wäre hier z.B. der Google-Account. Ist der User hier einmal registriert und angemeldet, hat er Zugriff auf alle seine Dienste wie Play-Store oder Google-Mail.

Ticketing-System

Auch hier verrät der Name schon die Funktionsweise dieser SSO-Lösung. Bei dieser SSO-Lösung handelt es sich um ein „Netzwerk aus miteinander verbundenen Diensten“. Hat der User sich bei einem dieser Deinste angemeldet, bekommt er ein virtuelles Ticket, mit welchem er sich anderen Diensten aus dem Netzwerk gegenüber identifiziert. Ein Beispiel hierfür ist der Authentifizierungsdienst Kerberos und das sogenannte Liberty Alliance Project.

Lokale Lösung

Bei dieser SSO-Lösung wird auf dem regelmäßig genutzten Arbeitsplatzrechner ein SSO-Client installiert. Der SSO-Client hat hier die Zugangsdaten für alle notwendigen Dienste und Anwendungen in einer verschlüsselten Datei auf der lokalen Festplatte oder auf einem Server bzw. Datenbank im lokalen Netzwerk gespeichert. Beim Zugriff auf die Anwendungen trägt der Client die Anmeldedaten direkt in die geöffnete Anmeldemaske ein. Hierzu zählen auch die Passwortdienste der aktuellen Browser wie Chrome oder Firefox. Als besonders sicher zählen bei einem solchen Verfahren physische Token als Speicher der Zugangsdaten. Dies kann ein USB-Stick oder auch eine Smartcard sein. 

Vor- und Nachteile von Single-Sign-On

Single-Sign-On ermöglicht es sich auf mehreren Diensten und Anwendungen mit nur einer Anmeldung anzumelden.

Vorteile von SSO

Die Anwender müssen sich durch den Einsatz einer SSO-Lösung nicht mehr Dutzende von Passwörtern merken. Oft werden SSO-Lösungen auch als Alternative zu sogenannten Passwort-Managern eingesetzt, welche die Aufgabe der Passwort-Verwaltung haben. SSO-Lösungen die bei Unternehmen im Einsatz sind führen zu enormen Zeitersparnissen und mehr Produktivität bei den Mitarbeitern. Als Beispiel kann man hier anführen das es in einem Help-Desk weniger Anfragen zu vergessenen Passwörtern gibt, somit eine enorme Kostenersparnis erzielt wird. Ebenso erhöhen SSO-Lösungen die unternehmensinterne Datensicherheit durch die komplexere Passwortauswahl. Ebenso wird die Angriffsfläche für Phishing und Man-in-the-Middle Attacken verkleinert, da die Zugangsdaten nur an einer einzigen Schnittstelle einzugeben sind. Eine SSO-Lösung vereinfacht auch den Einsatz weiterer Sicherheitsvorkehrungen wie z.B. den Einsatz von SSL-Zertifikaten, da auch diese nur an einem einzelnen Punkt zu implementieren sind.

Nachteile von SSO

Als Nachteil könnte man einen nicht zu vernachlässigenden Implementierungsaufwand sehen, sowie einige bekannte Schwächen der jeweiligen SSO-Lösung. Es können z.B. nur diejenigen Dienste und Applikationen angebunden werden, die das jeweilige SSO-System unterstützt. Oder wenn das SSO-System versagt, ist auch kein Zugriff auf die jeweiligen Applikationen und Dienste möglich. Das ganze wird zudem verschärft wenn Social-Media-Accounts mit eingebunden werden, die in gewissen Bereichen wie z.B. an bestimmten Arbeitsplätzen, Bibliotheken oder Bildungseinrichtungen etc. aus Sicherheitsgründen blockiert werden. 

Ebenso kann es zu Sicherheitsproblemen kommen wenn ein User seinen Arbeitsplatz verlässt bevor der automatische Single-Sign-Out erfolgt ist. In dieser Zeit hat ein Angreifer Zugriff auf alle seine Applikationen und Dienste. Gefährlich kann es auch werden wenn das „Master-Passwort“ der SSO-Lösung eines Users durch diverse Phishing-Attacken in falsche Hände gerät. 

Aufgrund dieser offensichtlichen Risiken sollten sichere SSO-Lösungen immer mit einer 2-Faktor-Authentifizierung zusätzlich abgesichert werden. Dies können Smartcards, Tokens oder Biometrische Methoden sein. 

Ihre Anforderungen, unser KnowHow

Die SYSM ist Ihr kompetenter Ansprechpartner wenn es um Single-Sign-On Lösungen geht. Wir bieten Ihnen umfassende Dienstleistungen und Produkte für die Planung, Umsetzung und Betreuung rund um die Themen einer kompletten Single-Sign-On Lösung an. Unser höchstes Ziel ist es den maximalen Mehrwert für Sie zu erzielen und somit gemeinsam Ihre Projekte zum Erfolg zu führen. Dafür stehen wir Ihnen mit unseren SSO Experten zur Verfügung.

Testen Sie unser KnowHow im Bereich Single-Sign-On (SSO). Wir stellen Ihnen unsere SSO Experten gerne zur Verfügung.

Michael Schwab Geschäftsführer