Авторизация позволяет контролировать доступ к каналам и позволяет сохранять статистику просмотра
Включение встроенных средств авторизации:
Перейдите в раздел Settings ➔ HTTP Authentication и установите галочку в чекбоксе Enable built-in HTTP/HLS authentication
После этого - нажмите кнопку "Apply & Restart"
В результате данного действия - у пользователей (в разделе Settings ➔ Users) появятся дополнительные возможности авторизации и на данной вкладке появятся возможности интеграции с внешними сервисами.
Пользователи и токены:
Читать далее..
Возможно использовать токены, ограничение по ip, логину/паролю, лимитирование соединений и возможность установить дату, по которую пользователь активен.
Перейдите в Settings ➔ Users, и в правом верхнем углу нажмите на кнопку NEW USER
. Откроется окно добавления пользователя.
Описание полей:
- LOGIN - имя пользователя (пример "testuser").
- PASSWORD - пароль (пример "87326848").
- COMMENT - комментарий (пример "тестовый пользователь").
- TYPE - тип пользователя:
- User - не может получить доступ к веб-интерфейсу. Учетная запись используется только для авторизации при просмотре телеканалов.
- Observer - добавляет право доступа в веб-интерфейс с правами "только для чтения".
- Administrator - полные права доступа.
- TOKEN - токен (пример "8732684ydbeb8").
- IP - IP адрес пользователя.
- STB - опция зарезервирована для middleware.
- EXPIRATION - возможно задать по какое время учетная запись будет активна.
- LIMIT CONNECTIONS - лимитирование соединений с клиентских устройств.
- PACKAGES - пакеты каналов.
примеры авторизации клиента для HTTP Play:
http://server:8000/playlist.m3u8?auth=testuser:87326848
- HTTP Play, логин и парольhttp://server:8000/playlist.m3u8?token=112277668833743
- HTTP Play, токен
Внешние авторизации: (backend):
Ministra/stalker portal
В поле вводится адрес портала (например "http://testdomain.com/stalker_portal")
Опция включает поддержку "Temporary URL" для работы с Ministra/Stalker portal
В настройках Ministra/Stalker portal включите опцию "Temporary URL - Flussonic support"
IPTVportal
В поле вводится адрес портала (Для облачного решения "http://go.iptvportal.ru/auth/arescrypt/")
Настройки портала:
В меню "Ключи" создайте новый ключ:
- название - "Astra"
- алгоритм - "ARESSTREAM"
- режим - "SM"
- длинна ключа - "1472 бит"
- период обновления - "1:00:00"
В настройках канала:
- колонка "auth" - укажите значение "arescrypt"
- колонка "закодирован" - установите чекбокс.
- колонка "ключ" - выберите "Astra"
Microimpuls Smarty
В поле вводится адрес портала (например "http://smarty.example.com")
HTTP Request
Эта технология позволяет произвести авторизацию пользователя через внешний скрипт:
Пример http backend: php_backend
После скачивания распакуйте архив. Содержащиеся файлы - поместите на WEB сервер - к примеру в каталог backend.
Установите права на запись на файл ip_list.txt
.
add_ip.php
- добавляет новую запись в файл ip_list.txt
backend.php
- http backend для работы с Astra.
Открыв в браузере add_ip.php, вы увидите форму для добавления ip адреса.
Можете добавить свой ip адрес. Скрипт запишет его в файл ip_list.txt - который выполняет роль базы данных.
В Астра, в графе backend address, укажите путь до backend.php.
Открыв на редактирование файл backend.php, мы можем удалить строку header('X-Location: http://192.168.1.1:7000/promo');
или вписать в неё адрес к промо-каналу.
При добавлении Вашего ip адреса в ip_list.txt - backend.php будет возвращать в Астра код 200, тем самым разрешая просмотр канала. При удалении - будет возвращаться код 403 - запрещая просмотр.
В backend Astra передаёт заголовки:
X-Real-IP - IP адрес пользователя
X-Session-ID - уникальный номер сессии (по нему например можно закрыть сессию через API)
X-Channel-ID - id канала
X-Real-Path - путь до запрашиваемого контента.
GET - передача данных через параметр.
В ответ от backend - Astra ожидает:
HTTP status code 200
: - разрешить авторизацию.
HTTP status code 403
: - запретить авторизацию.
Любой ответ отличный от 200 - безусловно запрещает авторизацию.
Если в ответе backend присутствует заголовок:
X-Session-Name: Vasya
- то в списке сессий - данная сессия будет с именем пользователя.
Если код ответа 403
, то можно передать заголовок X-Location: http://example.com/matras
- например редирект на промо канал.
Securetoken
Эта технология позволяет защитить телевизионные каналы от нелегального просмотра с помощью временных токенов, генерируемых для каждого канала/потока отдельно.
-
Перейдите на вкладку
Settings ➔ HTTP Authentication
и установите флажок в полеEnable built-in HTTP/HLS authentication (restart required)
. После этого в поле SECURETOKEN вписываем придуманный секретный ключ. Для примера - возьмем словоtest
.
Сохраним настройки и перезапустим Astra. -
Перейдем в консоль нашего сервера и скачаем пример генератора токенов: securetoken.php
cd /tmp wget http://cesbo.com/download/astra/scripts/auth/http-backend/securetoken.php
Отредактируем наш файл: в заголовок - в переменную $key = 'SECRETKEY' мы запишем наше ключевое слово - 'test'
Сохраним изменения в файле и запустим наш тестовый генератор: (Обратите внимание: PHP должен быть установлен на сервере!)php -S 0:81 /tmp/securetoken.php
-
Перейдем в настройки любого нашего стрима/канала. Нам нужен его ID:
В примере - это стрим с ida01
и hls-выходом по адресуhttp://0:8002/test.m3u8
. Запомним его ID.
После включения авторизации - стрим-поток начал запрашивать авторизацию для его просмотра. Сгенерируем токен:
Откроем веб-браузер и в строке адреса - выполним запрос к нашему тестовому генератору:
http://айпи нашего сервера:81/?stream=a01
(гдеa01
- ID нашего тестового стрима).
В ответ - мы получим токен со временем жизни 3 часа:
При каждом новом запросе к генератору - будут генерироватся уникальные токены.
Теперь, для просмотра стрима-канала - мы будем использовать ссылку:
http://адрес_сервера:8002/test.m3u8?token=d5c55f937f3b14a563889af7defdb452e4e22309-eb77c133b8068a19049566ce5dfe8d33-1561464903-1561453803
То есть - к адресу стрима - добавляется токен.
Allow access without authorization
Возможно добавить IP адреса/сети, пользователи которых будут иметь доступ к стримам без авторизации.
Deny access
Черный список. Возможно добавить IP адреса/сети, пользователи которых не будут иметь доступ к стримам, да же при наличии логина/пароля или токена.
Внешние авторизации: (backend):
Ministra/stalker portal
В поле вводится адрес портала (например "http://testdomain.com/stalker_portal")
Опция включает поддержку "Temporary URL" для работы с Ministra/Stalker portal
В настройках Ministra/Stalker portal включите опцию "Temporary URL - Flussonic support"
Allow X-Real-IP
Использовать заголовки X-Real-IP для определения правильного IP адреса клиента. Данная опция применяется, если сервер находится за nat, или nginx-proxy.
Allow access without authorization
Возможно добавить IP адреса/сети, пользователи которых будут иметь доступ к стримам без авторизации.
Deny access
Черный список. Возможно добавить IP адреса/сети, пользователи которых не будут иметь доступ к стримам, да же при наличии логина/пароля или токена.