Файлы cookie, подписанные Cloudfront, полная реализация на стороне сервера на java / javascript

#java #amazon-cloudfront

#java #amazon-cloudfront

Вопрос:

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-signed-cookies.html#private-content-how-signed-cookies-work

Шаг инструкции 1-4 был успешно реализован, но я не знаю, как поступить с клиентской частью, после того, как браузер получил файлы cookie…Может ли кто-нибудь поделиться со мной некоторым кодом? Или указать правильное направление? Мы высоко ценим вашу помощь.

Пользователь запрашивает объект.

Браузер пользователя или другой просмотрщик получает пары имя-значение с шага 4 и добавляет их к запросу в заголовке файла cookie. Это подписанный файл cookie.

CloudFront использует открытый ключ для проверки подписи в подписанном файле cookie и подтверждения того, что файл cookie не был изменен. Если подпись недействительна, запрос отклоняется.

Если подпись в файле cookie действительна, CloudFront просматривает заявление о политике в файле cookie (или создает его, если вы используете законсервированную политику), чтобы подтвердить, что запрос все еще действителен. Например, если вы указали начальную и конечную дату и время для файла cookie, CloudFront подтверждает, что пользователь пытается получить доступ к вашему контенту в течение периода времени, который вы хотите разрешить доступ.

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

Вот где я застрял, я получил подписанный файл cookie и response.addcookie в заголовок ответа, это так? заголовок запроса не может добавить заголовок или добавить файл cookie … тогда как мне поступить дальше? у меня нет опыта работы с файлами cookie, я использовал подписанный URL-адрес для распространения rtmp, но не для распространения http (подписанные файлы cookie)

введите описание изображения здесь

Ответ №1:

Как только вы сохраните файл cookie CloudFront в браузере для определенного домена, т.е. subdomain.mydomain.com или .mydomain.com в качестве подстановочного файла cookie.

Затем с каждым запросом к хосту (домену) CF cookie будет отправляться через заголовки http-запроса.

CF расшифрует тикет в файле cookie и подтвердит ваш запрос, вам нужно только предоставить разрешения для корзины S3 для идентификатора источника CF, указанного в идентификаторах источника CF в консоли CF.

Допустим, у вас запрошено изображение @ https://mycdn.mydomain.com/myimage.jpg который является DNS-адресом CNAME и пограничным кэшем для источника https://s3.amazonaws.com/mybucket/images/myimage.jpg , или вы можете использовать значение по умолчанию cloudfront.net адрес, который будет иметь место, если вы не используете свою собственную запись CNAME.

Затем будет отправлен файл cookie CF вашего домена и подтверждено разрешение, а затем ответом браузеру будет ваше изображение.

Я надеюсь, что это поможет; Если нет, это может быть полезно.

http://www.spacevatican.org/2015/5/1/using-cloudfront-signed-cookies/