Как настроить верификацию каждого пользовательского запроса?
В этой статье опи сана процедура изменений настроек сервисной конфигурации для которой необходимо верифицировать каждый пользовательский запрос.
Сервис | Результат настройки |
Серверы доставки NGENIX будут расшифровывать токен, содержащийся в ссылках к данным. Если параметры пользовательского запроса не совпадут с расшифрованными данными, то доступ для пользователя будет запрещен. |
Для корректной работы сервиса вам нужно настроить автоматическую синхронизацию времени по протоколу NTP на вашем сервере, который вы будете использовать для генерации одноразовых ссылок.
Сообщите инженеру NGENIX:
- Идентификатор сервисной конфигурации (ConfID) для которой вы хотите верифицировать запросы пользователей.
- Время жизни токена. По умолчанию – 1 час.
По согласованию IP-адрес конечного пользователя может не учитываться при формировании токена.
Сервис Tokenized URL может быть настроен на обработку токенов, информация о которых передается в Cookie. Сообщите инженеру NGENIX, если вы хотите передавать токен и время генерации одноразовой ссылки через Cookie.
Получите от инженера NGENIX уведомление о завершении настройки, содержащее пароль для генерации токена. Пароль нужен для того, чтобы Платформа NGENIX могла верифицировать ваш токен.
Управлять настройками сервиса можно на странице «Tokenized URL» клиентского портала NGENIX Multidesk.
Измените ссылки к данным следующим образом:
При доступе к файлам
При доступе к потокам
https://s12345.cdn.ngenix.net/path-to-file/somefile.ext?t=<timestamp>&h=<hashstring>
https://s12345.cdn.ngenix.net/live/mystream/playlist.m3u8?t=<timestamp>&h=<hashstring>
где:
- аргумент запроса
t
(<timestamp>) – время генерации одноразовой ссылки в формате unix timestamp. - аргумент запроса
h
(<hashstring>) – токен одноразовой ссылки. Генерация токена происходит с использованием алгоритма MD5 от строки, содержащей следующие параметры (в заданной последовательности):- пароль для генерации токена
- ссылка на поток или файл
- timestamp
- IP-адрес пользователя
Пример кода генерации одноразовой ссылки для доступа к данным на языке PHP
При доступе к файлам
При доступе к потокам
<?php
$pass = "ZiwulbUdigJi"; // пароль для генерации токена
$ip = "192.66.0.1"; // IP-адрес пользователя
$timestamp = time();
$file = "/path-to-file/somefile.ext"; // ссылка на файл
$hashstring = base64_encode( md5( $pass.$file.$timestamp.$ip, true) );
$host = "s12345.cdn.ngenix.net"; // EDGE-DOMAIN
echo "https://".$host.$file."?t=".$timestamp."&h=".$hashstring;
?>
<?php
$pass = "ZiwulbUdigJi"; // пароль для генерации токена
$ip = "192.66.0.1"; // IP-адрес пользователя
$timestamp = time();
$stream = "/live/mystream/"; // ссылка на поток
$hashstring = base64_encode( md5( $pass.$stream.$timestamp.$ip, true) );
$host = "s12345.cdn.ngenix.net"; // EDGE-DOMAIN
echo "https://".$host.$stream."playlist.m3u8?t=".$timestamp."&h=".$hashstring;
?>
Пример одноразовой ссылки:
https://s12345.cdn.ngenix.net/live/mystream/playlist.m3u8?t=1565094824&h=0pC/727YOSEKdQ8PnXlQZQ==
Last modified 3yr ago