推流鉴权功能旨在校验主播推流的合法性,由客户站点提供给用户加密
URL(包含权限验证信息),用户使用加密后的 URL 向服务器发起请求,服务器对加密 URL
中的权限信息进行验证以判断请求的合法性,对合法推流请求给予正常响应,拒绝非法请求,从而有效保护客户站点直播内容。
首先进入直播控制台,点击"域名管理",找到需要配置推流鉴权的域名组,点击"管理"
进入"访问控制"页面,"推流控制"中的"URL鉴权"默认为关闭状态,如需启用,请点击"修改配置"
在"鉴权设置"弹出框中,填写您的key,点击"确定","访问控制"页面展示鉴权设置为"开启",推流鉴权配置即完成。
鉴权URL组成
鉴权URL由直播推流地址 + 验证串组成,验证串是根据鉴权 key + 失效时间通过 md5
算法计算出,该地址适用于 PC 端、移动端、第三方推流。
鉴权 KEY:用户在鉴权配置中填写的KEY参数。
有效时间:指用户访问客户源服务器时间超过自定义的时间(timestamp 字段指定)后,该鉴权失效,例如,有效时间为
1800s,用户设置访问时间:2020-08-15 15:00:00,链接真正失效时间是:2020-08-15
15:30:00。
用户访问加密 URL 构成
http:// DomainName/Filename?auth_key=timestamp-rand-uid-md5hash
鉴权字段描述
字段 | 描述 |
---|---|
timestamp | 失效时间,整形正数,固定长度 10,1970 年 1 月 1 日以来的秒数。用来控制失效时间,10 位整数,有效时间 1800s |
rand | 随机数,一般设成 0 |
uid | 暂未使用(设置成 0 即可) |
md5hash | 通过 md5 算法计算出的验证串,数字和小写英文字母混合 0-9a-z,固定长度 32 |
验证方法
服务器拿到请求后,首先会判断请求中的 timestamp
是否小于当前时间,如果小于,则认为过期失效并返回 HTTP 403 错误,如果 timestamp
大于当前时间,则构造出一个同样的字符串(参考以下 sstring 构造方式)。
然后使用MD5算法算出 HashValue,再和请求中带来的 md5hash
进行比对,比对结果一致,则认为鉴权通过,返回文件,否则鉴权失败,返回 HTTP 403
错误。
示例说明
通过 req_auth 请求对象:
http:// cdn.example.com/sports/football
密钥设为:
jdlivekeyexample123 (由用户自行设置)
鉴权配置文件失效日期为:
2015年10月10日00:00:00,计算出来的秒数为 1444435200
服务器会构造一个用于计算 Hashvalue 的签名字符串:
/publishDomain/sports/football-1444435200-0-0-jdlivekeyexample123
服务器会根据该签名字符串计算 HashValue
HashValue=md5sum("/publishDomain
/sports/football-1444435200-0-0-jdlivekeyexample123")
=80cd3862d699b7118eed99103f2a3a4f
请求时 url 为:
http:// cdn.example.com/sports/football?auth_key=1444435200-0-0-80cd3862d699b7118eed99103f2a3a4f
计算出来的 HashValue 与用户请求中带的 md5hash = 80cd3862d699b711
8eed99103f2a3a4f 值一致,于是鉴权通过。
推流IP黑名单功能可以指定到具体IP,禁止其向直播平台推流。
如需配置推流IP黑名单,可在"访问控制"页面,找到"推流控制"-"IP黑名单",点击修改配置
点击开启,按规则填写IP,点击确定即可配置成功
播放鉴权功能旨在保护用户站点的不被非法盗用,由客户站点提供给用户加密
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时的时间戳作为rand |
signature | 字符串,通过md5算法计算出的验证串,数字和小写英文字母混合0-9a-z,固定长度32,不区分大小写。 |
uri | 是用户的请求对象相对地址,不包含参数。 |
private_key | 用户自定义的秘钥(8-32个字符)。 |
原理说明
CDN服务器拿到请求后,首先会判断请求中的 expire 是否小于当前时间,如果小于,则认为过期失效并返回HTTP 403错误。如果 expire 大于当前时间,则构造出一个同样的字符串(参考以下signature构造方式)。然后使用MD5算法算出 new_signature ,再和请求中带来的 signature 进行比对。比对结果一致,则认为鉴权通过,返回文件。否则鉴权失败,返回HTTP 403错误。
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&jd=121
密钥设为:jdcloud1234 (由用户自行设置)
鉴权配置文件失效日期为:2020年06月18日00:00:00,计算出来的秒数为1592409600
则CDN服务器会构造一个用于计算signature的签名字符
/video/standard/1K.html-1592409600-0-0-jdcloud1234
CDN服务器会根据该签名字符串计算signature:
signature = md5sum("/video/standard/1K.html-1592409600-0-0-jdcloud1234") =06d97bc9e43ded48d991994006cfa127
则请求时url为:
http://cdn.example.com/video/standard/1K.html ?fa=121&jd=121&auth_token=1592409600-0-0-06d97bc9e43ded48d991994006cfa127
计算出来的 signature 与用户请求中带的 signature =06d97bc9e43ded48d991994006cfa127值一致,于是鉴权通过。
播放IP黑名单功能可以指定到具体IP,禁止其访问直播平台内容。
如需配置播放IP黑名单,可在"访问控制"页面,找到"播放控制"-"IP黑名单",点击修改配置
点击开启,按规则填写IP,点击确定即可配置成功
Referer防盗链功能可以指定来源referer,禁止或允许其访问直播平台内容。
如需配置referer防盗链,可在"访问控制"页面,找到"播放控制"-"Referer防盗链",点击修改配置
点击开启,按规则填写类型及规则,点击确定即可配置成功
上传证书操作,可在“访问控制”页面,找到“转协议”-“上传证书”,点击上传证书
如需操作选择转协议,可在“访问控制”页面,找到“转协议”,勾选需要转协议格式。转https格式,需上传证书及私钥
提供HTTPS安全加速方案,支持自定义证书上传和状态管理。
如需上传HTTPS证书,可在"访问控制"页面,找到"回看控制"-"HTTPS证书",点击修改配置
我们的产品专家为您找到最合适的产品/解决⽅案
1v1线上咨询获取售前专业咨询
专业产品顾问,随时随地沟通