Single Sign-On in der Microservice-Architektur

Ich versuche, ein Projekt auf der grünen Wiese zu entwerfen, das mehrere Dienste (Daten bereitstellen) und Webanwendungen (HTML bereitstellen) enthält. Ich habe über Microservices gelesen und sie sehen gut aus.

Das Problem, das ich noch habe, ist, wie man SSO einführt. Ich möchte, dass sich der Benutzer einmal authentifiziert und Zugriff auf alle verschiedenen Dienste und Anwendungen hat.

Ich kann mir verschiedene Ansätze vorstellen:

Add Identity Service und Anwendung. Jeder Dienst, der Ressourcen geschützt hat, kommuniziert mit dem Identitätsdienst, um sicherzustellen, dass die darin enthaltenen Anmeldeinformationen gültig sind. Ist dies nicht der Fall, wird der Benutzer zur Authentifizierung umgeleitet.

Verwenden Sie einen Webstandard wie OpenID und lassen Sie jeden Dienst seine eigenen Identitäten verwalten. Dies bedeutet, dass der Benutzer jeden Dienst / jede Anwendung einzeln autorisieren muss, danach jedoch SSO.

Ich freue mich über weitere Ideen. Wenn ein bestimmtes PaaS (wie Heroku) über eine proprietäre Lösung verfügt, ist dies ebenfalls akzeptabel.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage