视频监控平台的技术难点不在接入,而在接入之后如何控制访问边界。
方案选型的局限
评估数个成熟方案后选定 Go + ZLMediaKit 融合镜像。其设计前提是单账号模型:一个账号登录后可访问全部通道。对于需要分发给内部员工的平台,这一模型不成立——员工之间的可见范围必须隔离。
自研鉴权网关
在平台前端增设自研 Go 鉴权网关,作为唯一对外入口。员工客户端仅与网关交互,网关持有管理密钥代为调用媒体服务,并实施细粒度权限判定:
- 实时播放权限
- 云台控制权限
- 抓图快照权限
- 录像回放权限
- 录像文件下载权限
- 管理接口限定管理员角色
关键设计:未授权通道不在接口返回中出现,越权请求由服务端直接拒绝。权限控制发生在服务端,而非前端元素隐藏。
内外网双入口
内网直连免证书以降低部署复杂度;外网入口启用 HTTPS,采用自签证书并提供本地 CA 证书供客户端导入信任链。
会话管理
账号停用后该用户全部会话即时失效,通过服务端会话失效标记实现,无需等待令牌自然过期。
功能与部署
- 单画面与四分屏预览、云台控制、抓图、录像回放与下载、收藏夹、最近访问、拼音检索
- 以 systemd 服务单元部署,支持开机自启与异常重启
这个项目同时覆盖了三类工程能力的落地:网络工程(内外网访问与证书部署)、网络安全(细粒度鉴权与会话失效)、系统集成(流媒体服务、录像存储、前端与设备多方对接)。