CloudFront Подписанные файлы cookie сохраняют состояние сеанса для доступа к шлюзу API
Я использую следующий стек технологий для своего веб-приложения
- CloudFront в качестве прокси и CDN
- S3 или CloudFront для обслуживания приложения AngularJS
- Происхождение APIGateway к CloudFront для REST API
- Cognito UserPools с CognitoAuthorizer для аутентификации в шлюзе API
Для хранения пользовательского сеанса веб-приложения я обычно сохраняю выпущенный JWT из Cognito в файле cookie на стороне клиента, в HTML5 LocalStorage или SessionStorage.
Однако мне любопытно знать, что подписанные файлы cookie CloudFront могут предоставлять состояние сеанса для веб-приложений. Я надеюсь использовать Signed Cookies для хранения JWT и Edge Lambda для сопоставления Signed Cookie с заголовком авторизации для аутентификации шлюза API. Мне интересно знать
- Будет ли работать CloudFront Signed Cookies для хранения JWT?
- Это хороший подход для хранения состояния сеанса в подписанных файлах cookie для веб-приложений?
- Если да, то каковы лучшие практики вокруг этого? Я не уверен, что использование Edge Lambda - правильный подход.
1 ответ
CloudFront Signed Cookies не имеет способа хранения пользовательских данных. По этой причине сохранение AWS Cognito UserPool, выданного id_token, в подписанном файле cookie невозможно. Поэтому сомнительный подход не возможно продолжить.
Альтернативный подход
Вместо этого маршрут шлюза API входа в систему может установить как SignedCookie, так и отдельный файл cookie для хранения токена JWT, где файл cookie проверяется в предварительно настроенной пограничной лямбде и добавляется в заголовок авторизации перед отправкой запроса в API-шлюз.