Authentifizierung für Landingpage einrichten, die Daten über Zugriffsbeschränkung vom Proxy abruft?

Authentifizierung für Landingpage einrichten, die Daten über Zugriffsbeschränkung vom Proxy abruft?

Stellen Sie sich das Szenario vor, in dem Sie einen Kunden haben, der möchte, dass Sie auf einer Landingpage, die Sie für ihn eingerichtet haben, Aufrufe einer externen API implementieren. Die externe API funktioniert auf der Grundlage eines Vertrags und von API-Schlüsseln, die über diesen Vertrag bezogen werden. Daher dürfen Sie die API-Schlüssel nicht in fetch()Aufrufen von Ihrem Frontend offenlegen.

Sie haben nun den Auftrag, eine Docker-Instanz zu implementieren, die als Zwischenserver fungiert und fetch()die Aufrufe Ihres LP mit der externen API verbindet, sodass bei jeder Anfrage der folgende Datenverkehr entsteht:

client --> Docker container --> API --> Docker container --> client

Um die Sicherheit weiterhin zu gewährleisten, frage ich mich nun, wie man eingehende Anfragen vom Client an den Docker-Container am besten authentifiziert. Die Autorisierung erfolgt über CSRF-Token, die dem Client nach erfolgreicher Erstauthentifizierung beim Laden der Seite übermittelt werden.

Da die Landingpages kein Login-System haben und wir uns nicht auf Nicht-HTTP-/Drittanbieter-Cookies verlassen können, dachte ich daran, nur Anfragen an den Docker-Container zuzulassen, die aus der Domäne der bereitgestellten Landingpage stammen. Ich weiß jedoch nicht, A) ob dies möglich ist (ich dachte an die Acces-Control-Allow-OriginKonfiguration des Docker-Containers?) und B) ob dies sicher ist. Ich frage mich insbesondere B), weil es ziemlich einfach ist, Dinge wie einen Referrer-Header zu fälschen. Daher frage ich mich, ob Domänennamen, von denen eine Anfrage stammt, ebenfalls auf einfache Weise gefälscht werden können.

Wenn ich das auch richtig verstanden habe, wird die über den Header bereitgestellte Regel Access-Control-Allow-Originnur in Browsern erzwungen und kann beispielsweise von einfachen HTTP-Clients umgangen bzw. ignoriert werden, richtig?

Ich habe auch über eine Basisauthentifizierung nachgedacht, aber ich würde eine Art der Authentifizierung bevorzugen, die nichts im Clientcode preisgibt, da ich in diesem Fall das Authentifizierungstoken an JS weitergeben müsste.

Da der Docker-Container auf Apache läuft, denke ich, dass die beste Lösung für diesen Anwendungsfall darin besteht, den Zugriff auf die IP des bereitgestellten LP einzuschränken, und zwar überDas, mit etwas wieDas. Ich weiß, dass es sich hier eher um eine Zugriffsbeschränkung als um eine Authentifizierung handelt, aber ich denke, dass dies die beste Lösung für dieses Landingpage-Szenario ist, das dem Client nichts preisgibt?

verwandte Informationen