直播截图服务支持在HTTP(含HTTPS)回调时增加特定签名头,供回调消息接收服务端进行签名认证,以防止非法或无效请求。本文为您介绍HTTP回调鉴权的参数、规则和注意事项。

鉴权参数

在回调HTTP头部增加的具体鉴权参数如下。
字段描述
ALI-LIVE-TIMESTAMP表示回调请求发起时间,使用UNIX时间戳表示(单位:秒)。
ALI-LIVE-SIGNATURE签名字符串,为32位MD5值,详细说明参见下表签名算法

签名算法

ALI-LIVE-SIGNATURE的计算依赖如下字段。

字段示例描述
回调域名learn.aliyundoc.com指回调URL中的Host。如回调URL为https://learn.aliyundoc.com/your/callback,则回调域名为learn.aliyundoc.com
ALI-LIVE-TIMESTAMP1519375990表示回调请求发起时间,使用UNIX时间戳表示(单位:秒)。
NotifyAuthKeyyourkey用户预设的签名Key。
说明 可调用UpdateLiveSnapshotNotifyConfig接口更新NotifyAuthKey。

字段拼接

将上述三个字段进行拼接,字段中间以竖线(|)分割后计算MD5值,如下所示。
MD5Content = 回调域名|ALI-LIVE-TIMESTAMP|NotifyAuthKey
ALI-LIVE-SIGNATURE = md5sum(MD5Content)

字段计算

ALI-LIVE-SIGNATURE字段计算方法示例如下。
ALI-LIVE-SIGNATURE = md5sum(learn.aliyundoc.com|1519375990|yourkey)

回调消息接收服务端校验规则

  • 回调消息接收端将回调所设置的回调域名、ALI-LIVE-TIMESTAMP取值、NotifyAuthKey字符串拼接后,进行MD5值计算,得到加密串,再将加密串与ALL-LIVE-SIGNATURE字段进行对比,如果不一致,则请求非法。
  • 回调消息接收端获取当前时间,与回调请求所带的ALI-LIVE-TIMESTAMP字段时间相减,如果超过服务端所设定的指定时间(如5分钟,由服务端自行定义),则认为该请求无效。
说明 由于时间设置等问题,时间差值可能会有误差,服务端可自行决定是否进行该校验。

注意事项

  • 回调鉴权和是否开启由用户决定(建议开启)。一旦设置了NotifyAuthKey,则回调时会携带所有鉴权相关内容,供回调消息接收服务端进行鉴权使用,即设置NotifyAuthKey不会影响原有功能,涉及是否校验需由用户决定。
  • 未设置NotifyAuthKey用户不会受任何影响。
  • NotifyAuthKey更新后需要重新推流才会生效,正在推流中的回调还是使用旧的NotifyAuthKey。