Настроить защищенный доступ к контенту
По умолчанию любой пользователь может получить доступ к вашему контенту.
Вы можете настроить защищенный доступ к контенту — по кодовому слову или по собственному скрипту.
Настроить доступ по кодовому слову
Настройка доступа по кодовому слову (Tokenized URL) позволяет сделать ссылки на контент временными и ограничить доступ к контенту по IP-адресу.
К ссылкам на сайте добавляется токен вида md5(kymJ2w55VH4LUMSKGb6ZqA,1704067200). Токен добавляется с помощью скрипта, который вы самостоятельно дорабатываете и размещаете на сервере. Токен формируется:
- из кодового слова, которое вы придумали;
- пути к файлу на источнике;
- опционально: разрешенного IP-адреса;
- опционально: срока действия ссылки в формате POSIX-времени.
В результате защищенная ссылка с токеном будет такого вида:
https://cdn.example.com/md5(kymJ2w55VH4LUMSKGb6ZqA,1704067200)/path/to/file.png.
Когда пользователь переходит по ссылке, CDN-серверы проверяют токен в запросе. Если токен совпадает и время жизни ссылки не истекло, то серверы отдают контент. При этом сами CDN-серверы получают контент от источника независимо от наличия кодового слова.
-
В панели управления в верхнем меню нажмите Продукты и выберите CDN.
-
В разделе CDN-ресурсы откройте страницу CDN-ресурса → вкладка Ограничения.
-
В блоке Авторизация выберите По кодовому слову.
-
Введите кодовое слово размером от 6 до 32 символов. Можно использовать латинские буквы и цифры.
-
Опционально: чтобы ссылка была бессрочной, отметьте чекбокс Не ограничивать по времени. Если вы оставите чекбокс неотмеченным, время действия ссылки нужно будет указать в скрипте. Подробнее в подразделе Примеры скрипта для генерации защищенной ссылки.
-
Опционально: чтобы контент был доступен с любых IP-адресов, отметьте чекбокс Не учитывать IP. Если вы оставите чекбокс неотмеченным, IP-адреса нужно будет указать в скрипте. Подробнее в подразделе Примеры скрипта для генерации защищенной ссылки.
-
Нажмите Применить. Во время применения настроек CDN-ресурс будет находиться в статусе
PROCESSING. В это время применение других настроек недоступно. Настройки применятся, когда CDN-ресурс перейдет в статусACTIVE. -
Настройте генерацию ссылки с токеном на сервере с помощью скрипта. Посмотреть примеры скриптов можно в подразделе Примеры скрипта для генерации защищенной ссылки.
Примеры скрипта для генерации защищенной ссылки
Это примеры скрипта для генерации токена с учетом ограничений по IP-адресу и времени действия ссылки. Если вы не хотите указывать IP-адреса и время действия ссылки, удалите из скрипта эти параметры.
PHP-скрипт
Python-скрипт
OpenSSL-скрипт
<?php
$secret = '<code_word>';
$ip = '<ip_address>';
$path = '<path>';
$lifetime = <link_lifetime>;
$expires = time() + $lifetime;
$link = "$secret$path$ip$expires";
$md5 = md5($link, true);
$md5 = base64_encode($md5);
$md5 = strtr($md5, '+/', '-_');
$md5 = str_replace('=', '', $md5);
$domain = '<domain>';
$url = "$domain/md5($md5,$expires)$path";
echo $url;
echo "\n";
Укажите:
-
<code_word>— кодовое слово, которое указали при настройке доступа к контенту по кодовому слову; -
<ip_address>— IP-адрес, с которого разрешен доступ к контенту; -
<path>— относительный путь к файлу или префикс пути на источнике. Например, есть относительный путь к файлу:/path/to/file.jpg. Чтобы дать доступ:- к конкретному файлу укажите:
/path/to/file.jpg; - ко всем файлам, которые начинаются с
/path/to/, включая подпапки, укажите:/path/to; - ко всем файлам в
/path/и его подпапках укажите:/path;
- к конкретному файлу укажите:
-
<link_lifetime>— время жизни ссылки в секундах; -
<domain>— домен CDN-ресурса с указанием протокола, напримерhttps://cdn.example.com. Посмотреть домен CDN-ресурса можно в панели управления: в верхнем меню нажмите Продукты → CDN → CDN-ресурсы → строка CDN-ресурса.
Настроить доступ по собственному скрипту
Вы можете добавить собственный скрипт для авторизации пользователей.
Когда пользователь переходит по ссылке, решение о доступе к контенту принимается на основе ответа от скрипта.
В запросе к скрипту передаются заголовки:
Host— имя домена, для которого предназначен запрос;X-Request-URI— URI запрашиваемого CDN-ресурса;X-Forwarded-For— реальный IP-адрес пользователя, который запрашивает CDN-ресурс;X-Remote-Addr— IP-адрес пользователя, который запрашивает CDN-ресурс, или IP-адрес прокси-сервера.
-
В панели управления в верхнем меню нажмите Продукты и выберите CDN.
-
В разделе CDN-ресурсы откройте страницу CDN-ресурса → вкладка Ограничения.
-
В блоке Авторизация выберите По внешнему скрипту.
-
Вставьте URL-адрес скрипта.
-
Нажмите Применить. Во время применения настроек CDN-ресурс будет находиться в статусе
PROCESSING. В это время применение других настроек недоступно. Настройки применятся, когда CDN-ресурс перейдет в статусACTIVE.