回调鉴权说明

更新时间:
复制为 MD 格式

直播推流、直播录制、直播截图、双流灾备回调支持回调鉴权。开启鉴权后,视频直播发起回调请求时,在HTTP(S)请求头中携带鉴权参数,供回调消息接收服务端进行签名校验和时间校验,以防止非法或无效请求。

鉴权参数

回调 HTTP(S) 请求头增加的鉴权参数如下:

字段

描述

ALI-LIVE-TIMESTAMP

回调请求发起的UNIX时间戳。单位:秒。

ALI-LIVE-SIGNATURE

签名字符串,为 32 位 MD5 值,计算方法参见下文。

签名算法

ALI-LIVE-SIGNATURE 的计算依赖以下字段:

字段

示例

描述

回调域名

learn.aliyundoc.com

根据回调类型不同,回调域名有所差异:

  • 推流回调/双流灾备回调:配置了回调功能的推流域名

  • 录制回调/截图回调:回调地址的域名。

    例如,回调地址为https://learn.aliyundoc.com/your/callback,则回调域名为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。