为了保护视频直播资源不被非法盗用,建议采用URL鉴权、IP黑白名单和远程鉴权访问控制方式。通过这些方式,可以有效提升视频直播的安全性和用户体验。
概览
推流域名访问控制是确保资源安全和防止非法盗用的重要手段,主要包括以下几种方式:
URL鉴权:URL鉴权可以有效防止Refer防盗链方式无法彻底保护的问题,确保每个请求的合法性。
IP黑白名单:IP黑白名单可以限制或允许特定IP地址的访问,实现对访客身份的识别和过滤。
远程鉴权:远程鉴权则可以将用户请求转发至指定的鉴权服务器进行校验,进一步增强访问控制的灵活性和安全性。
功能介绍
URL鉴权通过阿里云视频直播服务与客户业务服务配合,提供安全可靠的直播资源防盗方法。
客户业务服务端提供包含权限验证信息的加密URL。
用户使用加密URL向阿里云直播服务发起请求。
阿里云直播服务加速节点验证URL中的权限信息,响应合法请求,拒绝非法请求。
请求URL经过阿里云直播服务鉴权后,URL中的特殊字符(如=
、+
等)会被转义。
了解更多关于URL鉴权的适用场景、鉴权URL的组成、原理等,请参见推/播流地址鉴权。
操作步骤
- 登录视频直播控制台。
在左侧导航栏单击推/播流域名管理,进入域名管理页面。
选择您要配置的推流域名,单击域名配置。
单击 。
单击URL鉴权页签,单击修改配置。
域名初次添加时,默认开启URL鉴权。初次关闭,需要了解盗刷风险并签署《直播服务关闭URL鉴权免责协议》。
URL鉴权已开启的情况下,单击修改配置即可配置URL鉴权信息。若您之前已关闭URL鉴权,开启URL鉴权开关即可配置URL鉴权信息。
配置URL鉴权信息,单击确定。
配置项和说明如下表所示。
配置项
说明
鉴权类型
视频直播推流域名仅支持使用鉴权A,来实现对源站资源的有效保护。
URL鉴权错误,都会返回403报错,请重新计算。
MD5计算类错误
例如:
X-Tengine-Error:denied by req auth: invalid md5hash=de7bfdc915ced05e17380a149bd760be
时间类报错
例如:
X-Tengine-Error:denied by req auth: expired timestamp=1439469547
主KEY
当您添加域名时,控制台会随机生成一个主用密码。您可以通过在直播控制台左侧的导航栏选择域名管理,选择您需要配置的域名,单击
,在URL鉴权页面查看主用密码。您还可以重新输入自定义的鉴权方式对应的主用密码。备KEY
输入自定义的鉴权方式对应的备用密码。
主Key或备Key拥有同样的效力,备Key主要用于平滑更换。
若主Key执行更换,以主Key生成的鉴权URL将会失效。在更换时将旧的主Key写入备Key,可以让备Key继续替代主Key提供服务。
有效时长
有效时长是指该URL鉴权仅在有效期内可用来发起推流或者播放。直播推流和播放都是长链接行为,在有效期内已经发起的直播推流或者播放行为,不会因为有效期过期而中止,但新发起的推流和播放请求会因为有效时长过期会失败。
第一次添加新域名默认有效时长为1天(即1440分钟)。你可以自定义输入鉴权方式的默认有效时长,单位:分钟。
功能介绍
添加IP到黑名单,那么该IP无法访问当前加速域名。
添加IP到白名单,那么只有该IP能够访问当前加速域名。
IP黑名单和白名单均支持IPv6地址(地址中的字母仅支持大写字母),例如:2001:DB8:0:23:8:800:200C:417A或2001:0DB8:0000:0023:0008:0800:200C:417A。IPv6地址不支持缩写格式,例如:2001:0DB8::0008:0800:200C:417A。
IP黑名单和白名单均支持IP网段添加。例如:192.168.0.0/24,24表示采用子网掩码中的前24位有效位,即用32-24=8bit来表示主机号,该子网可以容纳2^8-2=254台主机。故192.168.0.0/24表示IP网段范围是:192.168.0.1~192.168.0.254。
操作步骤
- 登录视频直播控制台。
在左侧导航栏单击推/播流域名管理,进入域名管理页面。
选择您要配置的推流域名,单击域名配置。
- 单击 。
单击IP黑/白名单页签,开启IP黑/白名单。
配置名单类型和规则,单击确定。
类型 说明 黑名单 黑名单内的域名均无法访问当前的资源。 白名单 只有白名单内的域名能访问当前资源,白名单以外的域名均无法访问当前的资源。
功能介绍
远程鉴权和URL鉴权都用于保护直播资源,让资源只被授权成功的用户访问。两者在技术实现方案上有如下差异:
URL鉴权:用户把域名的鉴权规则下发给直播中心,由直播中心完成鉴权的整个数据交互流程。
远程鉴权:用户有自己单独设置的鉴权服务器,直播中心收到用户请求后,需要把用户请求转发给鉴权服务器完成鉴权,鉴权服务器由用户自主建立和管理。远程鉴权不支持HLS协议。
远程鉴权功能的数据交互流程如下:
序号 | 交互说明 |
① | 用户向直播中心发起资源访问请求,请求中携带了鉴权参数。 |
② | 直播中心收到用户请求,将用户请求直接转发(或者经过指定的规则处理后转发)给鉴权服务器。 |
③ | 鉴权服务器根据用户请求中携带的鉴权参数给出鉴权结果,并返回给直播中心。 |
④ | 直播中心根据鉴权服务器返回的鉴权结果执行对应的动作,并返回对应的数据给用户。
|
操作步骤
- 登录视频直播控制台。
在左侧导航栏单击推/播流域名管理,进入域名管理页面。
选择您要配置的推流域名,单击域名配置。
- 单击 。
单击远程鉴权页签,打开远程鉴权开关,根据界面提示,配置远程鉴权参数信息。
开启远程鉴权功能后,用户的每次请求都要转发给鉴权服务器处理,当请求访问量大时,需考虑鉴权服务器的压力和性能。
参数
说明
鉴权服务器地址
鉴权服务器对外可以访问的地址。系统会对您输入的鉴权服务器地址进行校验,包括格式校验和值校验,支持设置固定URL或变量拼接URL。
固定URL:支持HTTP(S)协议,值不能包含127.0.0.1和localhost,因为这类本地地址属于无效地址。格式请参考以下几种类型:
http(s)://example.aliyundoc.com/auth
http(s)://192.0.2.1/auth
变量拼接URL:您可以通过变量拼接的方式生成鉴权URL作为鉴权服务器的地址,具体变量拼接URL的规则请参见变量拼接URL。
透传请求URL参数
用于控制用户请求URL中需要参与鉴权的参数。可以选择透传指定参数、不透传指定参数或不透传请求URL参数。
如果选择透传指定参数或不透传指定参数,请在下方输入框中输入需要透传的指定参数,多个参数用英文逗号(,)分隔,例如:
key1,key2,key3
。鉴权结果对应状态码
鉴权服务器在鉴权成功时返回给直播中心的HTTP状态码。可以选择设置以下状态码:
鉴权成功状态码:选择鉴权成功状态码后请在下方输入框输入自定义的成功状态码,只有鉴权服务器返回此状态码,直播中心才放行用户请求,返回其他状态码均拦截用户请求。
例如,将鉴权成功状态码设置为200,当鉴权服务器返回200时,表示鉴权成功。
鉴权失败状态码:选择鉴权失败状态码后请在下方输入框输入自定义的失败状态码,只有鉴权服务器返回此状态码,直播中心才拦截用户请求,返回其他状态码均放行用户请求。
例如,将鉴权失败状态码设置为403,当鉴权服务器返回403时,表示鉴权失败。
鉴权时长(秒)
统计的是从直播中心发起鉴权请求开始,到直播中心收到鉴权服务器返回的结果为止的时间。
鉴权时长支持0~30的整数。
鉴权超时重试次数
鉴权时长超过上面设置的鉴权时长后,重新请求鉴权服务器的次数。重试次数达到设置的次数之后,将会执行下方设置的鉴权超时之后的动作,支持通过和拒绝这两种动作。
鉴权超时之后的动作
直播中心与鉴权服务器之间的数据交互超时后,直播中心对用户请求的处理。支持通过和拒绝这两种动作,区别如下:
通过:鉴权超时,直播中心将直接允许用户请求。
拒绝:鉴权超时,直播中心拒绝用户请求,直播中心返回鉴权失败状态码(例如:403状态码)给用户。
异步鉴权(高级配置)
开启时,播放的时候不再同步等待远程鉴权结果,可以先播放,如果后续拿到远程鉴权结果错误,再断开播放,避免同步远程鉴权耗时导致首屏时间增加的问题。
单击确定,完成参数配置。
成功配置远程鉴权功能后,您可以在远程鉴权页签下,对当前的配置进行修改或关闭远程鉴权功能。
变量拼接URL
您可以通过变量拼接的方式生成鉴权URL作为鉴权服务器的地址,具体说明如下:
类型 | 说明 |
数字变量 | 数字变量例如 例如推流URL为 |
字母变量 | 字母变量例如 例如推流URL为 |
自定义变量 | 自定义变量以 |
ngx变量 | 所有的 所有通过变量引用的值在拼接鉴权地址时,都会被URL转义函数 |
流名变量 | 支持添加 |
如果推流或播流地址为rtmp://domain.aliyundoc.com/app/stream?token=***&name=xrc
。
远程鉴权服务器的地址配置为http://auth.aliyundoc.com/?app=${udv_host}&streamname=${2}&appname=${1}&token=${arg_token}
。
则实际鉴权的地址为http://auth.aliyundoc.com/?app=domain.aliyundoc.com&streamname=stream&appname=app&token=***
。
- 本页导读 (1)
- 概览