直播推流、直播录制、直播截图、双流灾备回调支持回调鉴权。开启鉴权后,视频直播发起回调请求时,在HTTP(S)请求头中携带鉴权参数,供回调消息接收服务端进行签名校验和时间校验,以防止非法或无效请求。
鉴权参数
回调 HTTP(S) 请求头增加的鉴权参数如下:
字段 | 描述 |
ALI-LIVE-TIMESTAMP | 回调请求发起的UNIX时间戳。单位:秒。 |
ALI-LIVE-SIGNATURE | 签名字符串,为 32 位 MD5 值,计算方法参见下文。 |
签名算法
ALI-LIVE-SIGNATURE 的计算依赖以下字段:
字段 | 示例 | 描述 |
回调域名 | learn.aliyundoc.com | 根据回调类型不同,回调域名有所差异:
|
ALI-LIVE-TIMESTAMP | 1519375990 | 回调请求发起的UNIX时间戳。单位:秒。 |
NotifyAuthKey | yourkey | 通过控制台或API预设的鉴权Key。 |
计算方法
将上述三个字段以竖线(|)分隔进行拼接后计算 MD5 值,公式如下:
MD5Content = 回调域名|ALI-LIVE-TIMESTAMP|NotifyAuthKey
ALI-LIVE-SIGNATURE = md5sum(MD5Content)计算示例
ALI-LIVE-SIGNATURE = md5sum(learn.aliyundoc.com|1519375990|yourkey)回调消息接收服务端校验规则
接收服务端收到回调请求后,应执行以下校验:
签名校验:根据回调类型确定对应的域名(推流回调和双流灾备回调使用推流域名,录制回调和截图回调使用回调地址的域名),按上述签名算法计算 MD5 值。如果计算结果与携带的
ALI-LIVE-SIGNATURE字段不一致,则请求非法。时间戳校验:将当前时间与回调请求所带的
ALI-LIVE-TIMESTAMP字段值相减,如果超过服务端设定的时间窗口(如 5 分钟),则认为该请求无效。由于时间设置等问题,时间差值可能会有误差,服务端可自行决定是否进行该校验。
注意事项
回调鉴权由用户自主决定是否开启(建议开启)。设置鉴权Key(NotifyAuthKey)后,直播服务会在回调请求的 HTTP(S) 头部自动添加鉴权字段,不影响原有回调功能。是否对回调请求进行签名校验由接收服务端决定。未设置 NotifyAuthKey 时,回调请求不会携带鉴权字段,用户不会受到任何影响。
NotifyAuthKey 更新后,仅对更新后的新推流会话生效。正在进行的推流会话仍使用旧的 NotifyAuthKey,需停止并重新开始推流才能使用新 Key。