Dies ist ein bisschen eine theoretische Frage, aber ich werde versuchen, so detailliert wie möglich zu sein. Ich habe eine ganze Reihe von Dokumentationen über die Implementierung von och2/SSO gelesen (ich weiß, dass sie nicht gleich sind) - also muss ich über das handwellte System hinausgehen. Also hier ist, was ich denke, sollte eine Oauth2-Implementierung aussehen. Das Kerndesign beinhaltet eine Reihe von Mikro-Diensten (die ich app hier anrufe), die alle den gleichen Autorisierungsserver verwenden.OAuth2 Implementierung
Nach meinem Verständnis sind dies die Endpunkte, die ein Auth-Server bereitstellen soll.
Autorisierungsserver
- Endpunkt für eine App registrieren -> registriert Sobald die App eine Client-ID und Client-Schlüssel zur Verfügung gestellt wird (diese sind im Wesentlichen permanent und ändern sich nicht
- . Endpunkt für die Registrierung eines Benutzers -> Diese Anforderung sollte mit der Client-ID und dem geheimen Client geliefert werden, damit der Autorisierungsserver einen Benutzer mit einer App assoziieren kann
- Endpoint für die Anmeldung eines Benutzers -> Wenn der Benutzer ein autorisierter Benutzer ist benutzen Dann wird ihm/ihr ein Zugangstoken zur Verfügung gestellt.
- Endpunkt mit Benutzerdetails -> Wenn eine autorisierte Anwendung (korrekte Client-ID und geheimer Schlüssel) eine Anfrage an einen autorisierten Benutzer sendet (korrekter Zugriff Token), wird ein Benutzer-BLOB zurückgegeben.
Ressourcenserver (App)
Nun, da der Ressource-Server diese grundlegenden Benutzerdaten hat, kann es das JSON-Objekt in seine eigenen Benutzerklasse deserialisieren und hat dann eine Eins-zu-Eins-Abbildung, um Dinge wie user_address/user_location usw.
Dies ist mein Verständnis von Oauth2-SSO. Ich würde sehr schätzen einige Hilfe um die Ecken und Kanten. TIA !!!