Как отправлять заголовки или файлы cookie в CloudFront из другого домена

Я работаю над бессерверным приложением с использованием сервисов AWS. По сути, приложение обслуживает изображения и статические html-файлы из корзины S3 через AWS CloudFront. Мне нужно интегрировать систему единого входа с помощью сторонней службы, использующей SAML. Чтобы создать запрос SAML, у меня есть запрос CloudFront Viewer, который отправляет запрос GET на шлюз API, который я настроил для настройки запроса, и возвращает перенаправление 302 с URL-адресом единого входа. После того, как пользователь входит в систему единого входа, отправляет запрос POST к тому же API, который проверяет ответ SAML, а затем отвечает перенаправлением 302 с URL-адресом CloudFront (необходимо из-за ограничений размера запроса средства просмотра и необходимости запроса GET). Вот где возникает моя проблема.

В методе POST мне нужно отправить JWT, чтобы Lambda-запрос Viewer Request мог проверить, авторизован ли пользователь. В настоящее время единственный способ сделать это - использовать строку запроса, что создает угрозу безопасности. Когда я пытаюсь отправить его, прикрепив заголовок авторизации или Set-Cookie к ответу 302, они удаляются CloudFront и не присутствуют в запросе на URL. Я не уверен, связаны ли проблемы с добавлением заголовков в 302 или облачный интерфейс отбрасывает их по другим причинам.

Возможно ли это, и как я могу безопасно отправить JWT в CloudFront?

Примечания: я пробовал множество комбинаций настроек заголовка пересылки CloudFront и файлов cookie в настройках происхождения и поведения CloudFront. API Gateway переназначает заголовок авторизации на x-amzn-remapped-authorization.

0 ответов