2017-12-18 29 views
0

Ich habe mehrere Dienste in verschiedenen Domänen mit jeweils eigenen Benutzertabellen.Einfacher zentraler Authentifizierungsdienst - Navigieren zwischen den Diensten

Ich arbeite an der Implementierung eines einfachen einheitlichen Authentifizierungssystems und Single Sign-On.

Bisher habe ich den Workflow ausgearbeitet, damit die Benutzer sich auf der CAS-Seite registrieren/anmelden und sie zusammen mit einem Autorisierungscode an ihren ausgewählten Dienst weiterleiten.

Der Dienst dann den Code für einen access_token auszutauschen und bekommt Details Benutzer und erstellt/updates Benutzer und protokolliert sie in.

Ich möchte Benutzer zwischen den Diensten navigieren lassen, sobald sie auf einen der Dienste authentifiziert .

Ziel ist eine nahtlose Navigation zwischen mehreren Diensten.

Wenn ein Benutzer zu einem anderen Dienst navigiert, muss dieser Dienst natürlich seine eigene Autorisierungstransaktion mit dem CAS-Server durchführen, nicht sicher, wie die Art dieser Transaktion aussehen würde.

Wie erstelle ich eine cross-service-gleiche Navigation zwischen Diensten, wenn alle Dienste einen zentralen Authentifizierungsdienst und SSO verwenden.

+0

Sie sollten in oauth Rahmenwerk schauen. –

+0

@HyderB. Vielen Dank für den Kommentar - Ich habe mir OAuth-Workflows angeschaut. Ich konnte nicht herausfinden, wie dies einem Benutzer ermöglichen würde, zwischen mehreren Diensten zu navigieren – ImpendingDoom

Antwort

0

Wenn Ihre Dienste alle in CAS integriert sind, muss sich jeder Dienst an CAS wenden, um eine Art Token/Ticket zu erhalten, und dann CAS bitten, sie zu bestätigen, um das Benutzerprofil zu erhalten. Der eigentliche Authentifizierungsvorgang wird nur einmal durchgeführt, damit CAS eine SSO-Sitzung einrichten kann. Die Aufgabe, die Tickets zu erhalten und zu validieren, wird jedoch normalerweise pro Anwendung ausgeführt, wenn die App den Benutzer authentifiziert (weil die Sitzung abläuft usw.).

Das gleiche Konzept funktioniert mehr oder weniger gleich, unabhängig vom Authentifizierungsprotokoll. (OAuth, CAS usw.). Dies setzt mehr oder weniger voraus, dass Ihre Dienste webbasiert sind, wo der Browser beteiligt ist. Wenn Sie Dienste verwenden, die andere Back-End-Dienste als Proxy verwenden, wäre die gleiche Lösung etwas komplizierter.

Verwandte Themen