全部产品
Search
文档中心

视频点播:鉴权方式A说明

更新时间:May 06, 2023

URL鉴权功能主要用于保护用户站点资源不被非法站点下载盗用。视频点播提供了三种鉴权方式,本文为您详细介绍鉴权方式A的原理和示例说明。

原理说明

鉴权方式A加密URL构成

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

鉴权字段说明

字段

描述

DomainName

视频点播的域名。

Filename

实际回源访问的URL,鉴权时Filename需以正斜线(/)开头。

auth_key

您设定的鉴权密钥。

timestamp

签算服务器生成鉴权URL的时间,与鉴权URL的默认有效时长共同控制鉴权URL的失效时间。时间点取自签算服务器的“UTC+8”时间,格式为:YYYYMMDDHHMM。

说明

多数情况下,鉴权URL的实际有效时长为视频点播中配置的默认有效时长。有时在签算服务器上配置了鉴权URL的有效时长情况下,此时,timestamp=签算服务器上的Unix时间戳+签算服务器上配置的有效时长;鉴权URL实际有效时长=timestamp+点播配置的鉴权URL的默认有效时长

rand

随机数,一般取值为0。如果要确保每次生成的URL不同,建议使用UUID,不能包含中划线(-),例如:477b3bbc253f467b8def6711128c****。

uid

用户ID,暂未使用(设置成0即可)。

md5hash

通过MD5算法计算出的验证字符串。由数字0~9和小写英文字母a~z混合组成,固定长度为32。

md5hash的值通过以下字符串计算得到。

sstring = "URI-timestamp-rand-uid-PrivateKey"
md5hash = md5sum(sstring)
  • URI:用户的请求对象相对地址,不包含参数,例如:/Filename。

  • PrivateKey:视频点播控制台配置的主Key或备Key,二者皆可。配置方法请参见开启鉴权并配置鉴权URL

  • md5sum:表示计算MD5值,请使用开发语言对应的函数。

鉴权逻辑说明

CDN服务器接到资源访问请求后,判断最终生成鉴权URL请求中的timestamp+点播控制台URL鉴权中配置的默认有效时长是否小于当前时间。

  • 如果timestamp+默认有效时长小于当前时间,服务器判定过期失效,并返回HTTP 403错误。

  • 如果timestamp+默认有效时长大于当前时间,则以sstring方式构造出一个字符串(参考上述表格中sstring构造方式),然后使用MD5算法算出md5hash的值,再将计算出的md5hash值与用户访问请求中携带的md5hash的值进行比对。

    • 结果不一致,鉴权失败,返回HTTP 403错误。

    • 结果一致,鉴权通过,返回资源请求。

      说明

      当鉴权通过时,会去掉URL中与鉴权相关的那部分参数,可以提高缓存命中率,减少回源流量。

      • 实际回源的URL格式:http://DomainName/FileName

      • 实际生成缓存key的URL格式:http://DomainName/FileName

鉴权URL拼接示例说明

通过以下示例说明,您可以准确理解鉴权方式A的实现方式。

示例条件

  • 回源请求对象:

    http://example.aliyundoc.com/video/standard/test.mp4
    说明

    如果您的回源请求对象中有中文汉字,请先对其进行URL转码(即Encode),再进行鉴权URL的拼接。

  • 设置密钥(PrivateKey)为:aliyunvodexp1234。

  • 签算服务器生成鉴权URL的时间(timestamp)为:2021-08-01 00:00:00(UTC+8),转换为十进制的整型数值为1627747200。

拼接流程

  1. CDN服务器构造一个用于计算md5hash的签名字符串。

    /video/standard/test.mp4-1627747200-0-0-aliyunvodexp1234
  2. 根据该签名字符串,CDN服务器计算出md5hash

    HashValue = md5sum("/video/standard/test.mp4-1627747200-0-0-aliyunvodexp1234") = 0e9048c8c7de46b6015618f42de7****
  3. 生成鉴权URL。

    http://example.aliyundoc.com/video/standard/test.mp4?auth_key=1627747200-0-0-0e9048c8c7de46b6015618f42de7****

当用户使用鉴权URL进行访问时,如果视频点播服务器计算出来的md5hash值与访问请求中带的md5hash值相同,都为0e9048c8c7de46b6015618f42de7****,则鉴权通过,反之鉴权失败。