Как клиентскому приложению мне перенаправить заголовки ‘x-amzn-oidc-*’ из Amazon Load Balancers (ALB)?

#amazon-web-services #http #http-headers #reverse-proxy

#amazon-веб-сервисы #http #http-заголовки #обратный прокси

Вопрос:

Я планирую настроить ALB (Amazon Load Balancer) для аутентификации. Он будет находиться перед моим клиентским приложением и пересылать аутентифицированные запросы только с помощью access_token и user claim jwt в качестве заголовков, x-amzn-oidc-accesstoken x-amzn-oidc-data соответственно [0].

Моему клиентскому приложению потребуется перехватить эти перенаправленные заголовки и сохранить их в localStorage для доступа к другим ресурсам AWS в последующих запросах (например, S3).

Если я клиентское приложение, получающее запрос ALB, как мне перехватить эти заголовки? Будут ли они приходить как запрос или ответ?

[0] Смотрите шаг № 10 на схеме:https://www.exampleloadbalancer.com/auth_detail.html

Ответ №1:

Эти заголовки не будут получены вашим клиентом по умолчанию. Клиент отправляет запрос в ALB, и после аутентификации пользователя ALB передает заголовки на ваш серверный сервер.

Если клиенту нужны эти заголовки, ваш серверный сервер может добавить их в заголовки ответа, и ваш клиент затем сможет извлечь их оттуда.

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

Комментарии:

1. Спасибо, это имеет смысл. Как клиент будет получать заголовки входящих запросов через javascript? Или будущие клиентские запросы к моему бэкэнду будут включать эти заголовки по умолчанию?

2. Я перечитал ваш вопрос, поскольку думаю, что неправильно понял. Если вашему клиентскому приложению нужны эти заголовки, вам нужно будет каким-то образом включить их в свой ответ. Возможно, вашей серверной части потребуется добавить их в качестве HTTP-заголовков к ответу, и ваши клиенты смогут извлечь их оттуда.

3. Добавление последующих действий для потомков. Моя проблема заключалась в том, что я не мог проверить, через какие заголовки проходит ALB локально (в то время у меня не было среды разработки). В конце концов я смог получить заголовки из серверной части с помощью express.