Dies ist eher eine Designfrage.Wie kann SSO am besten implementiert werden?
Wir haben Webapplikation "webapp" geschrieben in Java & Frühling, der von Leuten innerhalb unserer Organisation sowie von Leuten draußen benutzt wird. Wenn der Benutzer versucht, sich bei der Anwendung anzumelden, versucht er, den Benutzer in der lokalen Datenbank zu finden. Wenn es ein Passwort (verschlüsselt) gab, wird es sich dagegen authentifizieren, wenn die Passwortspalte leer war, wird es mit LDAP kommunizieren und den Benutzer authentifizieren. Jetzt haben wir eine neue mobile App "mobileapp", die eine Verbindung zur "webapp" hat. Wir denken über die Implementierung von SSO hier nach, damit sich der Benutzer der mobilen App nicht erneut anmelden muss, wenn er auf diesen Link klickt. Wir denken auch, dass es in Zukunft nur noch wenige weitere Dienste und Anwendungen geben wird, die eng mit derselben Authentifizierungs-/Autorisierungsplattform zusammenarbeiten müssen. Ein paar Dinge, die wir dachten, dass wir tun können -
- entfernen Authentifizierungs- und Autorisierungscode von „Webapp“ und machen, dass eine separate Service -AA Service
- Let AA Service OAuth-Token erzeugen und lassen jede Client-Anwendung einschließlich Webapp Nutzung Klicken Sie auf "Login with AA Service", um sich anzumelden.
Hört sich das nach einer guten Lösung an? Gibt es einen besseren Weg, um mit diesem Problem umzugehen? Sind solche Lösungen bereits in Java/Spring/OAuth/OpenID connect/JWT etc. eingebaut?