在视频点播分发的内容默认为公开资源,用户拿到URL后均可访问,为防止站点资源被恶意下载盗用,除了通过Referer防盗链、IP黑白名单等防控方式,您还可以采用URL鉴权,自行配置校验鉴权URL中的加密串和时间戳,更安全有效地保护源站资源。
鉴权逻辑
视频点播的URL鉴权功能通过阿里云CDN加速节点与客户资源站点配合,形成了更为安全可靠的源站资源防盗方法。主要由以下几个部分配合:
业务应用服务器:根据鉴权URL生成规则(包括鉴权算法、密钥)生成鉴权URL。
用户App/Web:发起资源请求,并发送鉴权URL给CDN节点进行验证。
CDN节点:对鉴权URL中的鉴权信息(鉴权字符串、时间戳等)进行验证。
鉴权过程如下:
客户在业务应用服务器配置鉴权URL的生成规则。
客户端访问业务应用服务器获取鉴权URL。
业务应用服务器根据客户需求,返回对应资源的鉴权URL。
客户端使用鉴权URL向CDN加速节点发起资源请求。
CDN加速节点对鉴权URL中的鉴权信息进行验证,判断请求的合法性。
鉴权失败,拒绝访问请求。
鉴权通过,正常响应合法请求。
若鉴权通过,则根据CDN节点的缓存逻辑,返回资源。
说明若CDN节点没有缓存资源,CDN节点回源前,会去掉鉴权URL中的鉴权参数,将鉴权URL还原为原始URL(例如:
http://DomainName/FileName
),再使用原始URL生成缓存key或者发起回源请求。您的请求URL经过CDN鉴权后,URL中的特殊字符,例如
=
、+
等会被转义。
开启鉴权并配置鉴权URL
请确保您已经在您的源站应用服务器配置了鉴权URL的生成规则(包括鉴权算法、密钥)。
视频点播配置的URL鉴权逻辑必须与您的源站应用服务器的URL鉴权逻辑保持一致。
- 登录视频点播控制台。
在视频点播控制台左侧导航栏选择 ,进入域名管理页面。
选择您要配置鉴权URL的域名,单击右侧的配置。
单击访问控制。
选择URL鉴权页签,单击鉴权URL设置区域的修改配置。
开启URL鉴权,配置URL鉴权信息。
配置项和说明如下表所示。
配项置
说明
鉴权类型
主KEY
输入鉴权方式对应的主用密码。由6~32个字符组成,支持大写字母、小写字母、数字。
备KEY
输入鉴权方式对应的备用密码。由6~32个字符组成,支持大写字母、小写字母、数字。主、备KEY至少要填写一个。
说明备KEY和主KEY拥有同样的效力,备Key主要用于平滑更换。若主KEY执行更换,所有使用主KEY生成的播放地址会立即失效。备KEY作为主KEY更换时,使用主KEY的播放地址不会马上中断,备KEY可以继续替代主KEY提供服务。
默认有效时长
视频点播配置的鉴权URL的有效时长,用户可在(timestamp+视频点播上配置的鉴权URL有效时长)时间区间内访问视频点播,超出该区间,鉴权失效。
默认值:30分钟,单位:分钟。
示例:例如签算服务器生成鉴权URL的时间(timestamp)为2020-08-15 15:00:00(UTC+8),视频点播上配置的鉴权URL有效时长为30分钟,则鉴权URL失效时间为2020-08-15 15:30:00(UTC+8)。
支持试看
试看指用户在观看视频或者音频等内容时,只能观看指定时间(如前五分钟)的内容,通常用于会员等付费业务场景。更多信息,请参见试看视频。
单击确定完成配置。
开启并配置完成后,URL鉴权在该域名全局生效。
如果您的资源都在视频点播控制台中,控制台会自动生成带时效的鉴权URL,您也可以通过调用获取音视频播放地址接口获取鉴权URL。
说明开启URL鉴权后,视频、音频、封面、截图等地址都会进行鉴权。
关闭URL鉴权
如果视频点播上的URL鉴权功能已经关闭,但是客户端发起的请求URL里面依然携带鉴权参数的话,就会导致视频点播无法把客户端发起的请求URL(带鉴权参数)还原为原始URL,最终所有请求都无法命中缓存,均会透传回源站,导致源站的流量大涨,同时也会增加源站的流量费用。因此,如果您需要停止使用URL鉴权,需同时关闭源站和视频点播的URL鉴权功能。
在鉴权URL设置区域,单击修改配置。
关闭鉴权URL开关。
在您的应用服务器中去掉请求URL的鉴权参数。
生成签名URL
控制台生成
为保证服务器正确实现了鉴权逻辑,配置鉴权URL后,建议您在视频点播控制台生成对应的鉴权URL,校验鉴权URL的正确性。
在生成鉴权URL区域,配置原始URL和鉴权信息。
配置项和说明如下表所示。
参数
说明
原始URL
输入完整的原始URL地址,例如:
https://****.com/ecs.mp4
。鉴权类型
按照您在开启鉴权并配置鉴权URL的配置,选择URL鉴权类型(A/B/C)。
鉴权KEY
按照您在开启鉴权并配置鉴权URL的配置,输入您的主KEY或备KEY。
有效时间
按照您在开启鉴权并配置鉴权URL的配置,输入URL鉴权的有效时长。单位:秒,例如:1800。
单击开始生成,即可获得鉴权URL和Timestamp。
通过SDK生成
您可以在业务服务器集成视频点播SDK,调用GetPlayInfo - 获取音视频播放地址生成鉴权URL。
通过代码生成
您可以根据3种不同的鉴权方式使用代码自行拼接生成鉴权URL。