2017-12-17 3 views
0

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

  1. 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
  2. . 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
  3. 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.
  4. 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 !!!

Antwort

1

Ich habe nicht selbst Oath2 implementiert, aber das System, an dem ich arbeite, benutzt es, was Sie beschreiben, scheint das gleiche zu sein wie das, was wir benutzen;

Wir initialisieren den Client mit einem Endpunkt und dem geheimen Schlüssel und der ID des Clients und verwenden dann die Anmeldeinformationen des Benutzers, um ein Token abzurufen (oder eine Fehlermeldung, wenn die Benutzer-/Client-Anmeldeinformationen ungültig sind). Von dort aus verwenden wir die Endpunkte der App, um unsere Anwendungen aufzurufen. Von dem, was ich sehen kann, scheinen unsere Oauth2-Methoden zu tun, was Sie in Ihrer Frage beschreiben, sollte es richtig sein.

Verwandte Themen