摘要

  • 11 月 2 日的 MoQ 工作组草案新增“轨道命名空间前缀请求”规则:PUBLISH_NAMESPACE、SUBSCRIBE_NAMESPACE 和 SUBSCRIBE_TRACKS 都可覆盖以该前缀开头的命名空间。
  • 令牌若要直接授权整项请求,其命名空间规则必须为 MATCH_PREFIX,且令牌模式必须覆盖请求前缀。SUBSCRIBE_TRACKS 还须用空模式的轨道名 MATCH_PREFIX,因为它能触及该分支下任意轨道。
  • 对后两种订阅动作,中继可在令牌权限较窄时接下请求,前提是后续发出的命名空间与发布消息全都落在准许范围;草案没有给 PUBLISH_NAMESPACE 同样的替代办法。

今天只有三片叶子,请求却指向整棵树

点名一条媒体轨道,权限边界容易看见。写一个前缀,就把整个分支装进请求。第 04 版新增的第 3.3.3 节规定,三种前缀动作面向所有以请求前缀开头的命名空间;以后在该分支长出的轨道,也符合这种请求的结构。7 月第 03 版没有这一节。

如果令牌只批准其中一小枝,不能把“目前看得见的几条内容”当成对整个前缀的授权。直接通过时,令牌的命名空间匹配必须是 MATCH_PREFIX,令牌模式本身还须是请求前缀的前缀。SUBSCRIBE_TRACKS 会订到分支下任意轨道,因此轨道名匹配也必须是空模式的 MATCH_PREFIX。另两种动作没有点名轨道,不检查轨道名。

草案给中继留了一道更费工的门:面对 SUBSCRIBE_NAMESPACE 或 SUBSCRIBE_TRACKS,它可以接受较窄令牌,但发出的 NAMESPACE、NAMESPACE_DONE、PUBLISH、PUBLISH_SKIPPED 必须逐条留在令牌范围内。中继从传递者变成了权限执行者。由 SUBSCRIBE_TRACKS 派生的 PUBLISH 沿用原请求中的令牌授权,令牌不会抄进每条发布消息。审计必须把输出追溯到那次请求和过滤决定。

草案的授权算法仍要求令牌验证、重放检查和至少一个匹配的权限范围。Datatracker 文件页所列仍是工作组 Internet-Draft;相关 MoQ Transport 草案也在演进,部分认证钩子尚未定案。官方记录没有部署数量或实际泄漏事件。