Перейти к содержимому

HTTP Auth: Backend

Авторизация на стороне бэкенда позволяет использовать вашу существующую систему управления пользователями (Middleware) для контроля доступа к вашим потокам. Вместо управления пользователями в Astra вы можете подключить вашу текущую платформу, такую как Ministra, IPTVportal или собственную систему.

HTTP Backend

  1. Пользователь запрашивает канал: Плеер зрителя отправляет запрос с токеном или учетными данными
  2. Astra обращается к вашему Middleware: Astra пересылает детали запроса в вашу систему управления пользователями
  3. Middleware проверяет права доступа: Ваша система проверяет, может ли пользователь получить доступ к этому каналу
  4. Доступ разрешен или запрещен: Если разрешено — Astra начинает трансляцию; если нет — доступ блокируется

Перейдите в SettingsHTTP Auth в Astra. Выберите “Backend Type” и укажите “Backend Address” вашей системы.

Backend Address:

http://example.com/stalker_portal

В админ-панели Ministra/Stalker включите Temporary URLFlussonic support

Для облачной платформы:

https://go.iptvportal.cloud

Для локальной установки: Используйте адрес вашего сервера (например, http://your-server.com)

В настройках портала откройте меню Keys и создайте новый ключ:

  • Name: Astra
  • Algorithm: ARESSTREAM
  • Mode: SM
  • Key Length: 1472 bit
  • Update Rate: 1:00:00

В настройках канала портала:

  • Auth: arescrypt
  • Encoded: включено
  • Key: Astra

Backend Address:

http://example.com

Создайте собственную систему аутентификации, выбрав HTTP Request как Backend Type и указав ваш URL-эндпоинт.

Когда пользователь запрашивает доступ, Astra отправляет GET-запрос на ваш эндпоинт со следующими данными:

  • Параметры запроса: все параметры из исходного запроса пользователя
  • HTTP-заголовки с деталями сессии:
    • X-Session-ID: уникальный номер сессии
    • X-Channel-ID: уникальный идентификатор канала
    • X-Real-IP: IP-адрес клиента
    • X-Real-Path: путь запроса клиента
    • X-Real-UA: User-Agent клиента
    • X-Real-Host: Host из запроса клиента

Ваш бэкенд может ответить:

  • HTTP 200: доступ разрешен
  • HTTP 403/401: доступ запрещен
  • Заголовок X-Session-Name — имя пользователя (необязательно)

Пример работы:

  1. Ваш бэкенд: https://auth.example.com/check
  2. Пользователь запрашивает: https://live.example.com/play/a001/index.m3u8?token=123
  3. Astra обращается: https://auth.example.com/check?token=123
  4. В заголовках: X-Real-Path: /play/a001/index.m3u8 и другие детали запроса

Если ваш бэкенд недоступен, Astra по умолчанию разрешает доступ. Это предотвращает остановку сервиса при сбоях сервера аутентификации, но пользователи смогут получить бесплатный доступ во время таких сбоев.

Если пользователи могут смотреть каналы бесплатно, возможно, ваш бэкенд недоступен. Проверьте соединение с бэкендом:

Окно терминала
curl -v "https://auth.example.com/check"

Замените URL на фактический адрес вашего бэкенда из настроек Astra.

Распространенные проблемы:

  • Connection refused: сервер бэкенда не работает
  • Запрос зависает: проблемы с сетевым соединением
  • Неверный URL: проверьте адрес бэкенда в настройках

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

Заголовок раздела «Пользователи не могут смотреть платные каналы»

Если легальные пользователи не получают доступ:

  1. Проверьте логи бэкенда: найдите ошибки аутентификации
  2. Проверьте коды ответа: ваш бэкенд должен возвращать HTTP 200 для валидных пользователей
  3. Проверьте вручную: используйте curl с валидным токеном для теста вашего эндпоинта