Secure Token. Настроить безопасный просмотр по временным ссылкам

Последние изменения: 15.03.2023

Что такое Secure token и как он работает

Чтобы защитить контент от нежелательных загрузок, воспользуйтесь опцией Secure Token в настройках CDN-ресурса. Подробнее об этой опции рассказываем в статье «Secure token. Обзор функции».

Как мы защищаем потоки с помощью Secure Token:

1. Стриминговая платформа получает от вас незащищённый Live поток или видео без токена.

2. Стриминговая платформа транскодирует полученный контент и раздаёт через сеть CDN-серверов. 

3. Токен добавляется в URL видео или Live потока после транскодирования. Ссылки на защищаемый контент выглядят так:

https://cdn.example.com/streams/10_14/WG99BSGMdZIwKy/1552551429/playlist.m3u8 (Live поток)
https://cdn.example.com/videos/44_aJ0o71wfUwJvFDklkjlcu/master.m3u8
 (видео)

Настроить защиту по временным ссылкам 

Включить опцию Secure token

1. Перейдите в раздел CDN-ресурсы и перейдите к настройкам ресурса, который используется для стриминга

2. Спуститесь в раздел Безопасность и включите опцию Secure Token. 

7e6352abe0c43dd9c4b0a7c21e32d16d.png

3. В появившемся окне введите желаемый ключ подписи и сохраните настройки. Ключ должен содержать от 6 до 32 символов. Оставьте чек-бокс «Добавить IP-адрес к токену» пустым.

Сохраните настройки.

Сгенерировать токен

Если вы хотите самостоятельно сгенерировать защищенные ссылки, воспользуйтесь следующими php-скриптами.

PHP-скрипт для Live потока

<?php 
$secret = 'W39Hd509SeReT41p'; 
$vhost = 'cdn.example.com'; 
$client_id = '10'; 
$stream_id = '14'; 
$expires = time() + 10000; 
$link = "{$client_id}_{$stream_id}_${secret}_${expires}_"; 
$md5 = md5($link, true); 
$md5 = base64_encode($md5); 
$md5 = strtr($md5, '+/', '-_'); 
$md5 = str_replace('=', '', $md5); 
$url = "https://{$vhost}/streams/{$client_id}_${stream_id}/${md5}/${expires}/playlist.m3u8"; 
echo $url; 
echo "\n";

PHP-скрипт для видео

<?php
$secret = 'W39Hd509SeReT41p';
$vhost = 'cdn.example.com';
$client_id = '44';
$video_id = 'aJ0o71wfUwJvFcu';
$expires = time() + 10000;
$link = "{$client_id}_{$video_id}_${secret}_${expires}_";
$md5 = md5($link, true);
$md5 = base64_encode($md5);
$md5 = strtr($md5, '+/', '-_');
$md5 = str_replace('=', '', $md5);
$url = "https://{$vhost}/videos/{$client_id}_${video_id}/${md5}/${expires}/master.m3u8";
echo $url;
echo "\n";

Где:

  • $secret — секретный ключ, который вы добавили на 3 шаге этой инструкции.

  • $vhost — доменное имя для CDN-ресурса

  • $video_id — slug, индивидуальный параметр в URL видео. Его можно найти в прямой ссылке на видео (Настройки Экспорт URL-страницы) после ID вашего аккаунта. Например, в URL https://cdn.example.com/videos/123_gnhWeEAA6LT,
    gnhWeEAA6LT — это slug

  • $expires — время жизни ссылки (в секундах)

  • $link — строка для генерации токена с учетом необходимых параметров хеш-ключа

  • $url — ссылка на файл

Помогла ли вам статья?