算法说明
请求 URL 构成
请求 URL 构成:http://DomainName/Filename?auth_key=timestamp-rand-uid-md5hash
说明
- 请求 URL 中不能包含汉字。
- 有效时间的最大值为:31536000秒。
鉴权字段说明
字段 | 描述 |
---|
DomainName | 全站加速的加速域名。 |
Filename | 资源所在的相对路径,鉴权URL的 Filename 需以正斜线/ 开头。 |
auth_key | 鉴权URL 中携带的鉴权信息参数名,默认为 auth_key。 |
timestamp | - 鉴权URL被生成的时间。值是从UTC时间1970年01月01日00时00分00秒到当前时间的总秒数 ,是十进制的整型正数,固定长度为10,与时区无关。
timestamp 将与在控制台配置的有效时间一起计算得出鉴权URL的失效时间。
|
rand | 长度为0 - 100位的随机字符串,由大小写字母与数字组成。字符串中不能包含中划线- 。例如:477b3bbc253f467b8def6711128c7bec 。 |
uid | 用户 ID,暂时未使用。您需要设置该参数值为 0 。 |
md5hash | - 通过 MD5 算法计算出的固定长度为32位的字符串,由数字 0-9 和小写英文字母 a-z 混合组成。
- 计算
md5hash 的具体公式为:md5hash = md5sum(uri-timestamp-rand-uid-pkey) uri :请求资源的相对地址,地址不包含参数,以正斜线/ 开头,如/Filename。timestamp :取值为上述中的timestamp。rand : 取值为上述中的rand。uid : 取值为上述中的uid。pkey :鉴权KEY,由6 - 40位大小写字母、数字组成。密钥需要严格保密,仅客户端与服务端知晓。- 公式中的
- 是实际的字符,用来分隔鉴权参数。
|
控制台配置
字段 | 描述 |
---|
鉴权类型 | 全站加速支持四种鉴权类型:TypeA、TypeB、TypeC、TypeD。 |
鉴权KEY | - 请输入大小写字母、数字。鉴权KEY长度为6 - 40位。
- 密钥需要严格保密,仅客户端与服务端知晓。
- 点击随机生成,控制台将自动为您生成鉴权KEY。
- 在计算
md5hash 时,pkey 表示鉴权KEY。
|
访问路径 | 请输入资源所在相对路径,以/ 开头,无需携带参数。 |
开始日期 | - 鉴权URL被生成的时间。
- 在计算
md5hash 时,开始日期将被转化为十进制的Unix 时间戳timestamp 。
|
有效时间 | - 指鉴权URL的有效时间,单位是秒。
- 有效时间默认为0秒,最大可输入31536000秒,即1年。
- 如果您设置有效时间为 1800s,则用户可在从
timestamp 开始的 1800s 内访问全站加速上的相关资源 。超出该有效时间后,全站加速将拒绝来自该鉴权URL的请求。
|
鉴权逻辑说明
收到来自鉴权URL的请求后,全站加速将解析出鉴权URL 中的 timestamp
参数 、鉴权 URL 有效时间。然后与当前时间比较。具体逻辑如下:
- 如果
timestamp
+ 鉴权 URL 有效时间
< 当前时间,那么全站加速判定鉴权URL已过期,拒绝该请求并返回 403状态码。 - 如果
timestamp
+ 鉴权 URL 有效时间
≥ 当前时间,那么全站加速会使用 MD5 算法算出 md5hash 的值。
- 如果全站加速基于鉴权参数计算得到的 md5hash 值与鉴权URL中的 md5hash 值相同,则鉴权成功,全站加速正常响应该请求。
- 如果全站加速基于鉴权参数计算得到的 md5hash 值与鉴权URL中的 md5hash 值不同,则鉴权失败,全站加速拒绝响应该请求,并返回403状态码。
注意事项
- 回源策略:某加速域名开启了 URL鉴权 功能,鉴权类型为
TypeA
。鉴权URL的格式为: http://DomainName/Filename?auth_key=timestamp-rand-uid-md5hash
。鉴权成功后,如果未匹配上边缘节点的资源,边缘节点会向源站发起回源请求。回源时,系统将去除鉴权参数。回源URL的实际格式为:http://DomainName/Filename
。 - 缓存命中率:鉴权 URL 会携带鉴权参数。全站加速根据鉴权请求生成缓存键时,会自动忽略对应的鉴权参数,因此启用URL鉴权功能并不会影响边缘节点上的缓存资源被命中的概率。
说明
- 边缘节点根据鉴权请求生成缓存键时,会自动忽略URL中的鉴权参数,因此会影响鉴权范围内文件的缓存键。如果您配置了这部分文件的缓存键规则,此处忽略鉴权参数的优先级会高于相应的缓存键规则。
- 如:某个加速域名开启了 URL鉴权 功能,鉴权类型为
TypeA
。URL的鉴权参数名为auth_key
,鉴权文件为jpg
,那么边缘节点根据这个鉴权URL请求生成缓存键时,对于jpg
类型的资源,系统会自动忽略 “?”后的鉴权参数:auth_key=timestamp-rand-uid-md5hash。即便此时您在缓存键规则中配置了:全部文件 - 不忽略参数。