Authentication Method B
鉴权 URL 格式
http://Hostname/timestamp/md5hash/Filename
参数说明
字段 | 说明 |
Hostname | 站点加速域名。 |
Path | 资源访问路径,鉴权时需以 / 开头。 |
timestamp | UTC+8 时间,格式:YYYYMMDDHHMM,例如 201807301000。 |
md5hash | 通过 MD5 算法计算出的固定长度为 32 位的字符串: 算法:MD5(密钥 + timestamp + Path)。 鉴权逻辑:若请求未过期,则节点比较此字符串值与请求 URL 中携带的 md5hash 值:两值相同,鉴权通过,响应请求;两值不同,鉴权失败,返回 403。 |
配置示例
假设请求
https://www.example.com/foo.jpg
使用鉴权方式 B,配置如下:
获取鉴权参数
Path:
/foo.jpg
。timestamp:服务端生成鉴权 URL 的时间为2024年7月15日 15:33:50(UTC+8),转换为十进制(YYYYMMDDHHmm)格式的数值为
202407151533
。密钥:
DvYmqE81E1F9R791H6lmht
。md5hash:MD5(密钥 + timestamp + Path)= MD5(
DvYmqE81E1F9R791H6lmht202407151533/foo.jpg
)= d1f0b51c6894231fc12e054fcc7f0b3e
。 客户端请求生成的鉴权 URL
https://www.example.com/202407151533/d1f0b51c6894231fc12e054fcc7f0b3e/foo.jpg
。节点鉴权
当节点服务器接受到客户端通过加密 URL 发出的请求时,解析出 URL 中的 timestamp 参数,加上配置的有效时长“1秒”,与当前时间比较:
1. 若当前时间超过“timestamp + 有效时长”时间,则为过期请求,直接返回 403。若当前时间未超过“timestamp + 有效时长”时间,则请求未过期,继续第 2 步。
2. 节点服务器通过获取的鉴权参数计算 md5hash 值,与请求 URL 中携带的 md5hash 值做比较:两值相同,鉴权通过,响应请求;两值不同,鉴权失败,返回 403。