Unser Projekt besteht aus Java Backend (Spring Web Application) und iOS und Android Client-Anwendungen. Jetzt müssen wir dem Java-Backend eine Authentifizierung für Client-Anwendungen hinzufügen. Die Idee besteht darin, den Benutzer zum ersten Mal über einen externen Webservice zu registrieren. Bei diesem Schritt stellt der Benutzer die vollständigen Zugangsdaten (Login und "großes" Passwort) zur Verfügung und wählt eine PIN zur weiteren Autorisierung. Nachdem dieser primäre Schritt erfolgreich abgeschlossen wurde, sollte der Benutzer in der Lage sein, sich mit seinem Login und der PIN (die er zuvor selbst gewählt hat) zu authentifizieren. Diese Login und PIN sollten in unserer Datenbank gespeichert werden. Wir sollten auch in der Lage sein, diese "Sitzung" und PIN wann immer notwendig zu zerstören. Wir erwarten, dass die Webanwendung bis zu 10 000 registrierte Benutzer mit bis zu 1000 Benutzern gleichzeitig online haben wird.Spring REST Service, Benutzer registrieren, Authentifizierung
Wir planen auch nicht, einen separaten Authentifizierungsserver zu verwenden. Wir planen, Sicherheit in die Webanwendung (Backend) selbst einzubetten.
Ich habe zwei verschiedene Ansätze untersucht. Der erste ist der übliche Spring @ EnableWebSecurity-Ansatz. Das scheint ziemlich einfach zu sein, aber einige Leute sagen, dass es "Sitzungen" schaffen wird, die für den Server schlecht sind. Die Sitzung verbraucht viel Speicher, und die allgemeine Auswirkung auf die Leistung ist schlecht. Ist es wahr?
Der andere Ansatz besteht darin, Spring Oauth2 Implementierung zu verwenden. Ich hatte keine Zeit, um es richtig zu studieren, das scheint mir ein wenig übertrieben zu sein. Lohnt es sich, für unsere Bedürfnisse zu lernen? (Wir haben keine Zeit mehr).
Ich brauche auch eine richtige DB-Struktur für die Sicherheitsanforderungen.
Die Frage ist also, was ist der beste Ansatz für unsere Situation? Gibt es Open-Source-Projekte, die ähnliche Probleme lösen? Ich würde jede Hilfe schätzen.
Vielen Dank.
Geben Sie mindestens einen Grund zur Abstimmung unten, so dass ich meine Antwort verbessern kann –