Интеграция: 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, а рядом — его недавнее время ответа. Чип — это то, что зрители получают на самом деле.
Что дальше¶
- Билеты Catena — рекомендуемый путь и то, куда мигрировать эту интеграцию.
- Защита воспроизведения — та же политика глазами оператора.
- Жизненный цикл сессии — что происходит со зрителем, когда ваш бэкенд его пустил.