Авторизация доступа

    Авторизация позволяет контролировать доступ к каналам и позволяет сохранять статистику просмотра

    Включение встроенных средств авторизации:

    Перейдите в раздел Settings -> HTTP Authentication и установите галочку в чекбоксе Enable built-in HTTP/HLS authentication

    Image

    После этого - нажмите кнопку "Apply & Restart"
    В результате данного действия - у пользователей (в разделе Settings -> Users) появятся дополнительные возможности авторизации и на данной вкладке появятся возможности интеграции с внешними сервисами.

    Пользователи и токены:
    Читать далее..

    Возможно использовать токены, ограничение по ip, логину/паролю, лимитирование соединений и возможность установить дату, по которую пользователь активен.

    Перейдите в Settings -> Users, и в правом верхнем углу нажмите на кнопку NEW USER. Откроется окно добавления пользователя.

    Image

    Описание полей:

    • 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

    Эта технология позволяет произвести авторизацию пользователя через внешний скрипт:
    Image

    Пример 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

    Эта технология позволяет защитить телевизионные каналы от нелегального просмотра с помощью временных токенов, генерируемых для каждого канала/потока отдельно.

    1. Перейдите на вкладку Settings -> HTTP Authentication и установите флажок в поле Enable built-in HTTP/HLS authentication (restart required). После этого в поле SECURETOKEN вписываем придуманный секретный ключ. Для примера - возьмем слово test.
      Image
      Сохраним настройки и перезапустим Astra.

    2. Перейдем в консоль нашего сервера и скачаем пример генератора токенов: securetoken.php

      cd /tmp
      wget http://cesbo.com/download/astra/scripts/auth/http-backend/securetoken.php

      Отредактируем наш файл: в заголовок - в переменную $key = 'SECRETKEY' мы запишем наше ключевое слово - 'test'
      Image
      Сохраним изменения в файле и запустим наш тестовый генератор: (Обратите внимание: PHP должен быть установлен на сервере!)

      php -S 0:81 /tmp/securetoken.php
    3. Перейдем в настройки любого нашего стрима/канала. Нам нужен его ID:
      Image
      В примере - это стрим с id a01 и hls-выходом по адресу http://0:8002/test.m3u8. Запомним его ID.
      После включения авторизации - стрим-поток начал запрашивать авторизацию для его просмотра. Сгенерируем токен:
      Откроем веб-браузер и в строке адреса - выполним запрос к нашему тестовому генератору:
      http://айпи нашего сервера:81/?stream=a01 (где a01 - ID нашего тестового стрима).
      В ответ - мы получим токен со временем жизни 3 часа:
      Image
      При каждом новом запросе к генератору - будут генерироватся уникальные токены.
      Теперь, для просмотра стрима-канала - мы будем использовать ссылку:
      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 адреса/сети, пользователи которых не будут иметь доступ к стримам, да же при наличии логина/пароля или токена.