© Lotus_studio/Shutterstock.com
Single Sign-on für Microservices und verteilte Anwendungen

Einmal und nie wieder


Anwender sicher zu authentifizieren und zu autorisieren, ist gerade in Microservices-Architekturen oder verteilten Anwendungen keine leichte Aufgabe. Vor allem, weil hier ein Securityknackpunkt liegt. Das Konzept Single Sign-on soll möglichst viel Sicherheit mit möglichst viel Bequemlichkeit für die Anwender verbinden. Verschiedene Technologien versuchen, das unter einen Hut zu bekommen.

Durch den anhaltenden Trend zu mehr verteilten Systemen und die in vielen Bereichen etablierten Microservices-Architekturen steigt mittlerweile – zum Glück – wieder das Interesse an Sicherheit in diesen Umgebungen. Anwendungssicherheit ist ein weites Feld mit unterschiedlichen Teilgebieten, am bekanntesten sind sicherlich die OWASP-Top-10-Angriffsszenarien [1]. Um alle möglichen Angriffe auf eine Applikation abzuwehren, sind unterschiedliche Mechanismen und Vorgehensweisen notwendig, die teils dezentral in allen Anwendungen oder Microservices selbst implementiert oder gelöst werden müssen, teils aber auch zentral abgebildet werden können oder sogar müssen. Das Teilgebiet der Sicherheit hinsichtlich Authentifizierung und Autorisierung ist meines Erachtens ein Thema, das nur zentral gelöst werden kann. Denn auf der einen Seite möchte man nicht in jeden Microservice oder in jede Anwendung im Unternehmensumfeld den gleichen Mechanismus einbauen und schlimmstenfalls per Copy and Paste Fehler weiterverbreiten, und andererseits reduziert man durch eine zentrale Lösung mögliche Angriffs- oder Datenabgriffspunkte. Schnell sind wir so also bei einer Single-Sign-on-(SSO-)Lösung, bei der ein Anwender seine Credentials nur an einer zentralen Stelle eingeben muss. SSO bedeutet nämlich nicht unbedingt, dass der User sich nur ein einziges Mal authentifizieren muss, um mit allen Anwendungen und Services zu arbeiten – präziser heißt SSO, dass der User sich nur an einer einzigen Stelle authentifizieren darf. Dabei muss natürlich sichergestellt werden, dass Mechanismen zur Verteilung und Weitergabe der Identität und weitere so genannte Assertions oder Claims an die beteiligten Anwendungen existieren. Diese Vorgaben und Mechanismen sind identisch sowohl für verteilte Microservices als auch für mehrere monolithische Anwendungen im Unternehmensumfeld.

Authentifizieren oder autorisieren?

Ein Exkurs in die Begriffserklärung, da die jeweilige Bedeutung vielen immer noch nicht klar ist:

Authentifizierung: Der Anwender muss sich identifizieren, um sicherzustellen, dass er derjenige ist, für den er...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang