腾讯云视频直播推流鉴权设置

1.推流鉴权设置

推流鉴权功能旨在校验主播推流的合法性,由客户站点提供给用户加密URL(包含权限验证信息),用户使用加密后的URL向服务器发起请求,服务器对加密URL中的权限信息进行验证以判断请求的合法性,对合法推流请求给予正常响应,拒绝非法请求,从而有效保护客户站点直播内容。
首先进入直播控制台,点击“域名管理”,找到需要配置推流鉴权的域名组,点击“管理”
进入“访问控制”页面,“推流控制”中的“鉴权设置”默认为关闭状态,如需启用,请点击“修改配置”

腾讯云视频直播开通地址 https://cloud.tencent.com/product/lvb
腾讯云视频直播官方帮助文档 https://cloud.tencent.com/product/lvb/getting-started

在“鉴权设置”弹出框中,填写你的key、以及鉴权过期时间,点击“确定”,“访问控制”页面展示鉴权设置为“开启”,推流鉴权配置即完成。

推流鉴权规则

鉴权URL组成

鉴权URL由直播推流地址+验证串组成,验证串是根据鉴权key+失效时间通过md5算法计算出,该地址适用于PC端、移动端、第三方推流。

鉴权KEY:用户在鉴权配置中填写的KEY参数。

有效时间:指用户访问客户源服务器时间超过自定义的时间(timestamp 字段指定)后,该鉴权失效,例如,有效时间为1800s,用户设置访问时间:2020-08-1515:00:00,链接真正失效时间是:2020-08-1515:30:00。

用户访问加密URL构成

http://DomainName/Filename?auth_key=timestamp-rand-uid-md5hash

鉴权字段描述

字段描述timestamp失效时间,整形正数,固定长度10,1970年1月1日以来的秒数。用来控制失效时间,10位整数,有效时间1800srand随机数,一般设成0uid暂未使用(设置成0即可)md5hash通过md5算法计算出的验证串,数字和小写英文字母混合0-9a-z,固定长度32

验证方法

服务器拿到请求后,首先会判断请求中的timestamp是否小于当前时间,如果小于,则认为过期失效并返回HTTP403错误,如果timestamp大于当前时间,则构造出一个同样的字符串(参考以下sstring构造方式)。

然后使用MD5算法算出HashValue,再和请求中带来的md5hash进行比对,比对结果一致,则认为鉴权通过,返回文件,否则鉴权失败,返回HTTP403错误。

示例说明

  • 通过 req_auth 请求对象:

http://cdn.example.com/sports/football

  • 密钥设为:

livekeyexample123(由用户自行设置)

  • 鉴权配置文件失效日期为:

2015年10月10日00:00:00,计算出来的秒数为1444435200

  • 服务器会构造一个用于计算Hashvalue的签名字符串:

/publishDomain/sports/football-1444435200-0-0-livekeyexample123

  • 服务器会根据该签名字符串计算HashValue

HashValue=md5sum("/publishDomain/sports/football-1444435200-0-0-livekeyexample123")

=80cd3862d699b7118eed99103f2a3a4f

  • 请求时url为:

http://cdn.example.com/sports/football?auth_key=1444435200-0-0-80cd3862d699b7118eed99103f2a3a4f

计算出来的HashValue与用户请求中带的md5hash=80cd3862d699b711

8eed99103f2a3a4f值一致,于是鉴权通过。

推流IP黑名单

推流IP黑名单功能可以指定到具体IP,禁止其向直播平台推流。
如需配置推流IP黑名单,可在“访问控制”页面,找到“推流控制”-“IP黑名单”,点击修改配置点击开启,按规则填写IP,点击确定即可配置成功

2.播放控制播放鉴权设置

播放鉴权功能旨在保护用户站点的不被非法盗用,由客户站点提供给用户加密URL(包含权限验证信息),用户使用加密后的URL向服务器发起请求,服务器对加密URL中的权限信息进行验证以判断请求的合法性,对合法请求给予正常响应,拒绝非法请求,从而有效保护客户站点直播内容。
播放鉴权设置步骤与推流鉴权设置步骤相同。

播放鉴权规则

加密URL构成

http://DomainName/Path/Filename?参数auth_token=expire-uniqid-rand-signature

signature=md5sum("uri-expire-uniqid-rand-private_key")

鉴权字段描述

字段描述expire失效时间,10位整型整数。uniqid整型,随机数,唯一id,不使用时设置成0即可。该字段可以用来标记身份或业务,用户可自行设定rand整型,随机数,一般设置成0。可以使用生成token时的时间戳作为randsignature字符串,通过md5算法计算出的验证串,数字和小写英文字母混合0-9a-z,固定长度32,不区分大小写。uri是用户的请求对象相对地址,不包含参数。private_key用户自定义的秘钥(8-32个字符)。

原理说明

CDN服务器拿到请求后,首先会判断请求中的expire是否小于当前时间,如果小于,则认为过期失效并返回HTTP403错误。如果expire大于当前时间,则构造出一个同样的字符串(参考以下signature构造方式)。然后使用MD5算法算出new_signature,再和请求中带来的signature进行比对。比对结果一致,则认为鉴权通过,返回文件。否则鉴权失败,返回HTTP403错误。

new_signature是通过以下字符串计算出来的:

origin_signature="uri-expire-uniqid-rand-private_key"(uri是用户的请求对象相对地址,不包含参数)

new_signature=md5sum(origin_signature)

示例说明

通过请求对象:
http://cdn.example.com/video/standard/1K.html?fa=121=121

密钥设为:cloud1234(由用户自行设置)

鉴权配置文件失效日期为:2020年06月18日00:00:00,计算出来的秒数为1592409600

则CDN服务器会构造一个用于计算signature的签名字符

/video/standard/1K.html-1592409600-0-0-cloud1234

CDN服务器会根据该签名字符串计算signature:
signature=md5sum("/video/standard/1K.html-1592409600-0-0-cloud1234")=06d97bc9e43ded48d991994006cfa127

则请求时url为:
http://cdn.example.com/video/standard/1K.html?fa=121=121auth_token=1592409600-0-0-06d97bc9e43ded48d991994006cfa127

计算出来的signature与用户请求中带的signature=06d97bc9e43ded48d991994006cfa127值一致,于是鉴权通过。

播放IP黑名单

播放IP黑名单功能可以指定到具体IP,禁止其访问直播平台内容。
如需配置播放IP黑名单,可在“访问控制”页面,找到“播放控制”-“IP黑名单”,点击修改配置点击开启,按规则填写IP,点击确定即可配置成功

Referer防盗链

Referer防盗链功能可以指定来源referer,禁止或允许其访问直播平台内容。
如需配置referer防盗链,可在“访问控制”页面,找到“播放控制”-“Referer防盗链”,点击修改配置点击开启,按规则填写类型及规则,点击确定即可配置成功

标签