Links

Как настроить верификацию каждого пользовательского запроса?

В этой статье описана процедура изменений настроек сервисной конфигурации для которой необходимо верифицировать каждый пользовательский запрос.
Для сервисной конфигурации необходима настройка следующих сервисов NGENIX:
Сервис
Результат настройки
Серверы доставки NGENIX будут расшифровывать токен, содержащийся в ссылках к данным. Если параметры пользовательского запроса не совпадут с расшифрованными данными, то доступ для пользователя будет запрещен.
Для завершения настройки сервис Tokenized URL должен быть доступен для вашего Аккаунта на странице «Сервисы» клиентского портала NGENIX Multidesk.
Для корректной работы сервиса вам нужно настроить автоматическую синхронизацию времени по протоколу NTP на вашем сервере, который вы будете использовать для генерации одноразовых ссылок.

Пошаговое руководство

1. Сообщите информацию для настройки

Сообщите инженеру NGENIX:
  • Идентификатор сервисной конфигурации (ConfID) для которой вы хотите верифицировать запросы пользователей.
  • Время жизни токена (по умолчанию – 1 час).
Сервис Tokenized URL может быть настроен на обработку токенов, информация о которых передается в Cookie. Сообщите инженеру NGENIX, если вы хотите передавать токен и время генерации одноразовой ссылки через Cookie.

2. Получите уведомление от инженера NGENIX

Получите от инженера NGENIX уведомление о завершении настройки, содержащее пароль для генерации токена. Пароль нужен для того, чтобы Платформа NGENIX могла верифицировать ваш токен.
Управлять настройками сервиса можно на странице «Tokenized URL» клиентского портала NGENIX Multidesk.
Через клиентский портал NGENIX Multidesk возможно выбрать режим учета IP-адреса пользователя при генерации токена (не учитывать, учитывать, ограничить количество IP-адресов, для которых токен будет действительным).

3. Измените ссылки к данным

Измените ссылки к данным следующим образом:
При доступе к файлам
При доступе к потокам
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.
  • аргумент запроса h (<hashstring>) – токен одноразовой ссылки. Генерация токена происходит с использованием алгоритма MD5 от строки, содержащей следующие параметры (в заданной последовательности):
    • пароль для генерации токена (получен от инженера NGENIX),
    • ссылка (на директорию или на файл/поток, в зависимости он настроек в личном кабинете NGENIX),
    • временная метка (из аргумента t выше),
    • IP-адрес пользователя (если в настройках сервиса задано учитывать 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==

Изменение настроек сервисной конфигурации завершено.