Настроить аутентификацию для целевой страницы, извлекающей данные из прокси-сервера с помощью ограничения доступа?

Настроить аутентификацию для целевой страницы, извлекающей данные из прокси-сервера с помощью ограничения доступа?

Представьте себе сценарий, когда у вас есть клиент, который хочет, чтобы вы реализовали вызовы внешнего API на целевой странице, которую вы для него настроили. Внешний API работает на основе контракта и ключей API, которые получаются через этот контракт; следовательно, вы не должны раскрывать ключи API в fetch()вызовах из вашего фронтенда.

Таким образом, теперь у вас есть полномочия реализовать экземпляр Docker, который действует как промежуточный сервер, соединяя fetch()вызовы вашего LP с внешним API, так что при каждом запросе у вас будет следующий трафик:

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

Чтобы по-прежнему поддерживать высокий уровень безопасности, я теперь задаюсь вопросом о лучшем подходе к аутентификации запросов, входящих от клиента к контейнеру Docker. Авторизация реализована с помощью CSRF-токенов, которые доставляются клиенту при загрузке страницы; после успешной первоначальной аутентификации.

Учитывая, что на целевых страницах нет системы входа в систему, и мы не можем полагаться на не-HTTP/сторонние файлы cookie, я подумал о том, чтобы разрешить входить в контейнер Docker только тем запросам, которые исходят из домена развернутой целевой страницы; но я не знаю A) возможно ли это (я думал о конфигурации Acces-Control-Allow-Originв контейнере Docker?), и B) безопасно ли это? Я особенно задаюсь вопросом B), потому что довольно легко подделать такие вещи, как заголовок реферера, поэтому мне интересно, можно ли подделать доменные имена, с которых исходит запрос, также простым способом?

Если я правильно понял, правило, предоставляемое через Access-Control-Allow-Originзаголовок, применяется только в браузерах, и, например, простые HTTP-клиенты могут обойти или проигнорировать его; верно?

Я также думал о базовой аутентификации, но я бы предпочел какой-то вид аутентификации, который не раскрывает ничего в клиентском коде, поскольку в этом случае мне пришлось бы предоставить токен аутентификации js.

Учитывая, что контейнер Docker работает на Apache, я думаю, что наиболее строгим решением для этого варианта использования будет ограничение доступа к IP-адресу развернутого LP черезэтот, используя что-то вродеэтот. Я знаю, что это скорее ограничение доступа, чем аутентификация; но я полагаю, что это лучшее решение для этого сценария целевой страницы, которая ничего не показывает клиенту?

Связанный контент