2

Ich überarbeite mehrere Ansätze zur Neuentwicklung einer nuten.js erholsamen monolithischen Anwendung mit Microservices in Kombination mit einem API-Gateway. Beim Betrachten des aws-Gateway, obwohl es ein paar Dinge zu geben scheint, konnte ich nicht viele Dokumente finden. Zum einen muss die Anwendung, die ich entwerfe, in der Lage sein, SSO zu unterstützen. Ich möchte, dass Benutzer sich registrieren können, indem sie entweder ein lokales Login erstellen oder ihr aktuelles Facebook, Twitter, etc. Social Account verwenden.AWS API-Gateway: Wie mit Autorisierung, Authentifizierung, SSO, usw. umgehen

Wie würde dieser Prozess vom aws-API-Gateway gehandhabt, zumal ich eine benutzerdefinierte Datenbank zum Schreiben und Lesen verwenden müsste, ganz zu schweigen von der Autorisierung des Benutzers?

Zusätzlich zum Beispiel sagen, dass meine Microservices hat die folgenden beschränkten Kontexten:

Konto (Login, Registrierung, Profilverwaltung),

Abrechnung (nicht für serverless ideal sein kann, aufgrund von Zeit ausgeführt wird, kann entscheiden sich für docker + EC2),

Freund (Einrichtung Freund Verbände),

Datei (Benutzer können Bilder und Videos auf ihre Timeline hochladen - scheint ein weiterer docker + EC2 Kandidat) zu sein;

und ich möchte ein API-Gateway verwenden, um alle Microservice-Endpunkte zu sichern, mit Ausnahme der für Anmeldung und Registrierung spezifischen, wie soll dies geschehen?

Node.js enthält ein Paket, das JWT- und Authentifizierungsbenutzer über Facebook, Twitter, lokale usw. zu behandeln scheint, genannt Pass, kann ich dies mit der API-Gateway-Authentifizierung verwenden?

Auch, wenn das API-Gateway die Microservices sichert, wie werden das Anfrageobjekt und das Antwortobjekt zwischen dem Gateway und den Microservices für verschiedene Anfragen weitergeleitet?

Wenn ich beschließe, ein benutzerdefiniertes API-Gateway zu erstellen, bei dem das Gateway auf einem anderen Port wartet und in einem separaten Andockcontainer enthalten ist, wie regelt es die Berechtigungen für die Microservices in anderen Andockcontainern, die auf anderen Ports horchen?

Kurz gesagt, jede Dokumentation, die wirklich durch diesen Prozess geht und die Fragen beantwortet, die ich oben aufgeführt habe, wird sehr hilfreich sein. Wenn ich dies falsch betrachte oder die falschen Fragen stelle, wäre ein Ratschlag in dieser Hinsicht hilfreich.

Antwort

2

Ich würde vorschlagen, Cognito User Pool zu verwenden, um Ihre APIs zu sichern, aber Sie benötigen eine Lambda-Funktion als Backend, da API Gateway die VPC-Integration nicht unterstützt. Ich schlage vor, dass Sie sich this blog post ansehen, um den Cognito-Benutzerpool als Autorisierung für Ihre APIs festzulegen.

Wenn Sie möchten, dass Ihr Kunde den Benutzer selbst registriert, können Sie eine Lambda-Funktion verwenden, die die Registrierungslogik ausführt und sie über das API-Gateway verfügbar macht.

+0

Haben Sie ein Dokument? das beschreibt, wie man ein api-Gateway implementiert, wenn ich eine Microservices-Architektur mit ec2-Servern und docker als Alternative einrichten möchte. Ich würde beide Optionen gewichten. Ich finde eine Menge Artikel, die erklären, welchen Zweck ein API-Gateway hat, aber nicht viele Artikel mit Beispielcode, der beschreibt, wie dies umgesetzt werden kann. – user1790300

+0

Wenn Sie die Micro-Services-Architektur mit ec2-Instanzen einrichten möchten, müssen Sie Ihre ec2-Instanzen öffentlich zugänglich machen.Wenn Sie möchten, dass Ihre ec2-Instanzen nur auf Ihre VPC zugreifen können, können Sie eine Lambda-Funktion verwenden, um die Anfrage von API Gateway an Ihre ec2-Instanzen in Ihrer VPC zu übertragen. –

Verwandte Themen