2016-04-21 12 views
0

Ich entwerfe eine Anwendung, bei der Benutzer sich zuerst anmelden und dann auf mehrere sichere Webseiten zugreifen müssen. Ich plane, AWS zusammen mit dem AWS Load Balancer zu verwenden, und erwarte, dass mehrere AWS-Instanzen dieser Anwendung ausgeführt werden. Was ist die "Best Practice" für die Aufrechterhaltung der Sicherheitsanmeldeinformationen für mehrere Webseiten und mehrere Instanzen? Der Benutzer wird sich anmelden und dann durch mehrere sichere Webseiten navigieren. Ich gehe davon aus, dass der AWS Load Balancer Round-Robin sein wird, der jede https-Anfrage an eine andere Serverinstanz weiterleitet. Wie weiß jede Instanz, dass sich der Benutzer erfolgreich angemeldet hat? Wie kann ich die sicheren Seiten vor externen Zugriffen schützen? Die Plattform wird Linux, Java und Spring-Boot sein.Password Access mit mehreren Instanzen

Antwort

0

Ich nehme an dem AWS Load Balancer Umleitung wird Round-Robin jede auf eine andere Serverinstanz https Anfrage.

, dass der Standard ELB Verhalten ist, aber Sie können sticky sessions auf dem Elastic Load Balancer ermöglichen es einen Benutzer zu einem bestimmten Back-End-Server zu sperren, an dem die HTTP-Sitzung auf, dass ein Server gespeichert Punkt verfolgt die Spuren des Benutzers Authentifizierungsstatus

Wie weiß jede Instanz, dass sich der Benutzer erfolgreich angemeldet hat?

Sie tun es nicht, es sei denn, Sie konfigurieren einen freigegebenen Sitzungsspeicher irgendeiner Art. Ich bevorzuge Redis (ElastiCache) als geteilten Sitzungsspeicher. Natürlich, wenn Sie Sticky-Sessions im ELB aktivieren, die die Notwendigkeit eines gemeinsamen Session-Speichers verhindern könnten.

Auch, wie sichere ich die sicheren Seiten vor externem Zugriff? Die -Plattform wird Linux, Java und Spring-Boot sein.

Das ist nicht wirklich eine Eigenschaft von AWS. Sie müssten Ihrer Anwendung Sicherheit hinzufügen. Schauen Sie in Spring Security.

+0

Hallo Mark, ich vermute, dass ich die Benutzer-IP-Adresse als Schlüssel und eine Anwendung eindeutige Sicherheitsberechtigung als Wert verwenden kann? Ich kann die Redis expire-Funktion verwenden, um das Schlüsselwertpaar zu entfernen, wenn sich der Benutzer nicht abmeldet. Wäre das deine Annäherung? – skmansfield

+0

Nein, das ist nicht der Ansatz, den ich überhaupt nehmen würde. Sie versuchen, Ihr eigenes Sicherheitssystem zu erstellen, wenn dieses Problem bereits für Sie gelöst wurde. Auch die Verwendung der IP-Adresse ist eine schreckliche Idee, da es keine Garantie gibt, dass jeder Benutzer eine eindeutige IP hat. Sie müssen sich mit Spring Security befassen und einen Tomcat-Sitzungsmanager verwenden, der Redis als Speicher-Backend verwendet. Sie sollten nicht versuchen, Benutzersitzungen selbst zu verwalten. –

+0

Hallo Mark, Großer Input. Können Sie mir ein paar Namen der Sicherheitskomponenten geben, die ich mir ansehen sollte? Die Frühjahrsdokumentation ist umfangreich. Es neigt jedoch dazu, sich mehr auf den Ablauf zu konzentrieren als auf einen großen Bildausschnitt. Ich möchte die interessierenden Komponenten verstehen und ein umfassendes Bild machen. – skmansfield

Verwandte Themen