原理说明
鉴权方式B访问URL构成:
http://DomainName/timestamp/md5hash/FileName。
下文以如下URL作为示例:http://test.ctyun.cn/timestamp/md5hash/test/test.mp4?a=123。
URL鉴权字段说明:
| 字段 | 描述 |
|---|---|
| DomainName | CDN加速域名。 |
| Filename | 实际回源访问的URI,即域名后面"/"开头,去掉一级和二级目录后,截止到"?"之前的部分。即如上示例中的/test/test.mp4。 |
| timestamp | 1. 鉴权URL生成的时间,即:鉴权开始时间,值为从1970年1月1日0点至当前时间的总秒数 ,默认为十进制整数,也可选择十六进制/YYYYMMDDHHMMSS。 2. 与鉴权URL有效时长共同控制鉴权URL的失效时间。鉴权URL实际有效期=timestamp+CDN配置的鉴权URL有效时长。 |
| md5hash | 通过MD5算法计算出的32位字符串。计算公式如下:md5hash = md5sum(keytimestampFileName)。 1. md5加密元素分隔符默认无符号,也可自定义。 2. 这里的key为用户设定的鉴权秘钥,长度6到32,由大小写字母与数字组成,例如:ctcdnkey123。 |
校验方法
CDN服务器接收到请求后,会按照如下步骤进行校验:
时间校验:判断系统当前时间是否在区间[timestamp,timestamp+有效时间]内。超出该区间,认为过期失效并返回HTTP 403错误。
加密串校验:时间校验通过后,比对CDN服务器计算出来的md5hash值与访问请求中带的md5hash值是否相同,结果一致则认为鉴权通过并返回文件,否则鉴权失败返回HTTP 403错误。
配置示例
配置页面
配置参数说明
| 参数名 | 说明 | 示例 |
|---|---|---|
| 加密key | 设定的鉴权密钥,多个以英文逗号分割,最多支持5个。 | 123 |
| 加密元素分隔符 | 默认无符号,也可自定义。 | |
| 鉴权URL有效时长 | 判断时间戳是否过期,单位秒。 | 300 |
| 时间戳格式 | 鉴权时间戳格式,默认为十进制,也可选择十六进制/YYYYMMDDHHMMSS | 十进制 |
示例说明
回源请求URL:http://test.ctyun.cn/test/test.mp4。
根据配置,加密key为123,生成鉴权URL时间为:2023年11月1日,转化为十进制的整型数值为:1698768000。
需加密的字符串:1231698768000/test/test.mp4。
加密字符串:md5hash=md5sum(1231698768000/test/test.mp4)=65d443b388d46e350a8ee4ef58963c50。
鉴权URL:http://test.ctyun.cn/1698768000/65d443b388d46e350a8ee4ef58963c50/test/test.mp4。
CDN服务器接收到请求后,进行校验:
判断系统当前时间是否在2023年11月1日0时0分0秒-2023年11月1日0时5分0秒之间,超过该区间则返回HTTP 403错误。
时间校验通过后,比对CDN服务器计算出来的md5hash值与访问请求中带的md5hash值是否一致,一致则认为鉴权通过并返回文件,否则鉴权失败返回HTTP 403错误。
注意事项
开启鉴权方式B,请求的URI会携带时间戳和鉴权参数,缓存key和回源url默认也会增加对应值,为避免缓存命中率和回源受到影响需增加缓存及回源配置。
缓存配置:缓存key中的缓存URI改写,详情请见:缓存key设置。
配置示例:
配置说明:
| 参数 | 说明 |
|---|---|
| 待改写PATH | ^/[^/]+/[^/]+(/[^/]+) |
| 目标PATH | $1 |
结果说明:原始请求为:http://test.ctyun.cn/1698768000/65d443b388d46e350a8ee4ef58963c50/test/test.mp4,经过缓存URI改写后的缓存key为:http://test.ctyun.cn/test/test.mp4。
回源配置:回源URI改写,详情请见:回源URI改写。
配置示例:
配置说明:
| 参数 | 说明 |
|---|---|
| 待改写PATH | ^/[^/]+/[^/]+(/[^/]+) |
| 改写后PATH | $1 |
结果说明:原始请求为:http://test.ctyun.cn/1698768000/65d443b388d46e350a8ee4ef58963c50/test/test.mp4,经过回源URI改写后的回源请求为:http://test.ctyun.cn/test/test.mp4。