Skip to content

Интеграция: flussonic-авторизация

Эта страница — для разработчика бэкенда авторизации, того сервиса, который у вашего бизнеса уже решает по каждому зрителю, пускать ли его. Если бэкенд написан под Flussonic, Catena отправляет тот же запрос — и он работает без переделок.

Для всего нового выбирайте Билеты Catena: бэкенд отвечает на каждого нового зрителя, поэтому его скорость и доступность лежат на пути до первого кадра. Эта страница — про то, как сохранить работающую интеграцию, пока вы мигрируете.

Как Catena вызывает ваш бэкенд

На нового зрителя стример шлёт вашему бэкенду один запрос и пускает только то, что тот одобрил. Разрешение затем запоминается на окно переавторизации — по умолчанию три минуты, — а не запрашивается заново на каждом сегменте, так что ваш сервис дёргают, когда зритель стартует, и раз в окно, а не тысячи раз в минуту. Бэкенд может укоротить или удлинить это окно для конкретной сессии заголовком ответа X-AuthDuration.

Бэкенд подключается в Auth & DRM → Upstreams: его URL и протокол. Можно добавить не один; Catena опрашивает их параллельно, и достаточно одного allow. Если все бэкенды недоступны, зрителю отказывают — кроме случая, когда включён Allow by default.

Протокол flussonic-get

Выберите у апстрима протокол flussonic-get, и Catena делает GET на ваш URL с такими query-параметрами:

Параметр Значение
name Имя стрима (канала)
proto Протокол отдачи: hls, dash, mpegts, …
ip IP-адрес зрителя
request_type new_session на первом запросе, update_session на переавторизации
request_number Счётчик запросов авторизации этой сессии, с 0
session_id Стабильный идентификатор сессии зрителя
token Токен, предъявленный плеером, если есть
user_agent User-agent плеера, если известен
duration, bytes, dvr Возраст сессии в секундах, отданные байты, смотрит ли архив — на обновлениях
stream_clients, total_clients Зрителей на этом стриме и на стримере

Отвечайте кодом статуса и, по желанию, заголовками:

  • 2xx — allow. 403 — deny. Любой другой статус трактуется как ошибка бэкенда.
  • X-UserId — учётка, которой принадлежит сессия; она видна в разделе Сессии и группирует экраны зрителя.
  • X-AuthDuration — на сколько секунд действует решение до переавторизации; перекрывает окно по умолчанию для этой сессии.
  • X-Max-Sessions — лимит экранов учётки (принимается и запоминается).

Протокол native

Для новой интеграции выберите протокол native: Catena шлёт JSON-POST вместо GET выше, с теми же фактами сессии (kind, stream_name, proto, user_agent, token, session_id). 2xx — allow, 401/403 — deny. Заголовки ответа читаются ровно как у flussonic-get.

Здоровье бэкенда

Catena не пробует ваш бэкенд синтетическим запросом — реальный middleware увидел бы лишь запрос, на который не умеет отвечать. Вместо этого чип здоровья рядом с каждым апстримом в Auth & DRM считается по последней минуте реального трафика авторизации: бэкенд, переставший отвечать или начавший ошибаться на каждом зрителе, переводит чип из ok в degraded или down, а рядом — его недавнее время ответа. Чип — это то, что зрители получают на самом деле.

Что дальше