Кратко

  • Проект рабочей группы MoQ от 2 ноября добавляет правила для запросов с префиксом пространства имён треков. PUBLISH_NAMESPACE, SUBSCRIBE_NAMESPACE и SUBSCRIBE_TRACKS охватывают все пространства с таким началом.
  • Для разрешения всего запроса область токена должна использовать MATCH_PREFIX, а её шаблон — покрывать запрошенный префикс. У SUBSCRIBE_TRACKS совпадение имён треков также должно быть MATCH_PREFIX с пустым шаблоном, поскольку запрос может затронуть любой трек в ветке.
  • Для двух видов подписки посредник вправе принять более узкую область токена, если ограничит все соответствующие исходящие сообщения разрешёнными пространствами и треками. Для PUBLISH_NAMESPACE такой путь не описан.

Ключ от одного зала, заявка на всё здание

Одна названная медиадорожка даёт понятную границу. Префикс указывает на ветку, в которой могут появиться новые треки. Новый раздел 3.3.3 проекта требует оценивать три операции по всем пространствам имён, начинающимся с запрошенного префикса. Июльская редакция не содержала такого раздела.

Узкое разрешение на дочернюю ветку само по себе не даёт права запросить родительскую. По общей схеме у токена должна стоять проверка namespace_match = MATCH_PREFIX, причём шаблон токена обязан быть префиксом префикса запроса. Для SUBSCRIBE_TRACKS требуется ещё track_name_match = MATCH_PREFIX с пустым шаблоном: подписка способна охватить любой трек под веткой. Две другие операции не указывают имя трека и не проверяют его.

Проект оставляет посреднику другой способ для SUBSCRIBE_NAMESPACE и SUBSCRIBE_TRACKS. Он может принять токен на меньшую область, но отправлять NAMESPACE, NAMESPACE_DONE, PUBLISH, PUBLISH_SKIPPED только для разрешённых пространств и треков. Посредник становится исполнителем ограничения на каждой выдаче. Сообщения PUBLISH, возникающие из SUBSCRIBE_TRACKS, покрываются токеном исходного запроса; токен не повторяется в каждом сообщении. В журнале придётся соединять выданное с решением о подписке.

Алгоритм также проверяет сам токен, повторное предъявление и наличие хотя бы одной подходящей области. Карточка IETF показывает рабочий Internet-Draft. В связанном проекте MoQ Transport некоторые механизмы авторизации ещё открыты. Официальные тексты не приводят числа внедрений или зарегистрированной утечки.