Configurar autenticação para página de destino que busca dados do proxy por meio de restrição de acesso?

Configurar autenticação para página de destino que busca dados do proxy por meio de restrição de acesso?

Imagine o cenário em que você tem um cliente que deseja implementar chamadas para uma API externa em uma landingpage que você configurou para ele. A API externa funciona com base em um contrato e em chaves de API obtidas por meio desse contrato; portanto, você não deve expor as chaves de API em fetch()chamadas do seu frontend.

Assim, você agora tem o mandato de implementar uma instância Docker que atue como um servidor intermediário, conectando fetch()as chamadas do seu LP à API externa, de forma que, a cada solicitação, você tenha o seguinte tráfego:

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

Para ainda manter a segurança rigorosa, agora me pergunto qual a melhor abordagem para autenticar solicitações recebidas do cliente para o contêiner do Docker. A autorização é implementada por meio de tokens CSRF que são entregues ao cliente no carregamento da página; pós autenticação inicial bem-sucedida.

Dado que as páginas de destino não possuem sistema de login e não podemos contar com cookies não HTTP/de terceiros, pensei em permitir apenas a entrada de solicitações no contêiner Docker originadas do domínio da página de destino implantada; mas não sei A) se isso é possível (pensei na Acces-Control-Allow-Originconfiguração do contêiner Docker?) e B) se isso é seguro? Eu particularmente me pergunto sobre B) porque é muito fácil falsificar coisas como um cabeçalho de referência, então me pergunto se os nomes de domínio dos quais uma solicitação se origina também podem ser falsificados de maneira fácil?

Se eu também entendi as coisas corretamente, a regra fornecida através do Access-Control-Allow-Origincabeçalho só é aplicada em navegadores e, por exemplo, clientes HTTP simples podem contorná-la/desconsiderá-la; correto?

Também pensei em autenticação básica, mas preferiria algum tipo de autenticação que não expusesse nada dentro do código do cliente, pois nesse caso eu precisaria fornecer o token de autenticação para js.

Dado que o contêiner Docker roda em Apache, estou pensando que a solução mais rigorosa para este caso de uso seria restringir o acesso ao IP do LP implantado, viaesse, usando algo comoesse. Eu sei que isso é mais uma restrição de acesso versus autenticação; mas acho que é a melhor solução para esse cenário de landingpage que não expõe nada ao cliente?

informação relacionada