本文档介绍CDN加速服务中 URL 鉴权模块的 A 类型配置。
在CDN加速服务控制台中,您需要做以下配置:
配置 | 说明 |
---|---|
生效对象 | 表示一组规则,定义了哪些请求需要被鉴权。您至少需要添加一条规则,最多可以添加 10 条。您可以指定多条规则之间的关系,默认是 或。 或 表示匹配任何一条规则的请求就会被鉴权。且 表示只有匹配所有规则的请求才会被鉴权。每条规则包含条件类型、匹配方式和规则内容。
同时,
|
主 KEY | 指定一个主密钥。密钥由 6-40 个字符组成,只能包含除了 Delete(ASCII code 127)的可打印 ASCII 字符。 |
备 KEY | 指定一个备密钥。密钥的输入要求与主 Key 相同。如果鉴权失败,CDN加速服务会使用备密钥再计算一次签名并尝试与请求中的签名比对。 |
签名参数 | 指定请求的签名参数名称。参数名称的说明如下:
|
有效时间 | 指定签名的有效时间,单位是秒。该配置与客户端请求中的 timestamp 参数搭配使用,用来计算签名的过期时间。该参数的取值范围是 0-315,360,000。签名的过期时间 = timestamp + 有效时间。在CDN加速服务收到某个请求时,如果请求中包含的签名的过期时间早于当前时间,CDN加速服务判定签名已过期。此时,CDN加速服务返回 403 响应状态码,表示鉴权失败。控制台中默认的有效时间是 1800 。 |
鉴权算法 | 表示签名计算使用的算法。该配置有以下取值:
说明 SHA-256 算法的安全性比 MD5 高,生成的哈希值出现碰撞的几率比 MD5 低,但是加密和解密过程的耗时比 MD5 长。 |
M3U8 改写 | 表示在响应一个 .m3u8 文件的请求时,CDN加速服务是否对 .m3u8 文件中每个分片文件的 URL 添加签名参数。每个分片 URL 的签名是基于改写后分片 URL,使用签名规则计算的。 说明 当前,CDN加速服务不支持改写压缩文件。因此,在以下任意情况下,CDN加速服务不会改写用户请求的 .m3u8 文件。
该配置还包含以下配置:
需要留意的是,这两个配置会影响分片 URL 的签名计算。 在更新分片 URL 时,CDN加速服务可以识别以下格式:
对于其他不符合规范的 URL 格式,CDN加速服务可能会无法识别,导致签名参数添加失败。 |
鉴权计算器 | 参见 鉴权计算器说明。 |
scheme://host/uri?sign=timestamp-rand-uid-<SIGNATURE>(&...)
说明
timestamp
的精度是秒。
https://www.example.com/img/image.png?sign=1644406401-2e1ca42a1bb248408fc9cf435e5af744-0-54959c1ec3448bf8e992554476248fab
如果您在 URL 鉴权的配置中指定签名算法是 MD5,则签名 <SIGNATURE> 的计算公式如下:
md5(uri-timestamp-rand-uid-key)
如果您在 URL 鉴权的配置中指定签名算法是 SHA-256,则签名 <SIGNATURE> 的计算公式如下:
sha256(uri-timestamp-rand-uid-key)
说明
公式中的 -
是实际的字符,用来分隔鉴权参数。
MD5 值是由 32 个十六进制字符组成的。SHA-256 值由 64 个十六进制字符组成的。
签名计算公式中各参数的说明如下:
参数 | 描述 |
---|---|
key | 表示在CDN加速服务控制台配置的密钥。 |
uri | 表示 请求 URL 格式 中的 uri 参数,以斜杠(/)开头,不包含域名。如果路径包含中文字符,您需要对路径编码。在 请求示例 中,该参数值是 /img/image.png 。 |
timestamp | 表示 请求 URL 格式 中的 timestamp 参数,格式是十进制的 Unix 时间戳。该参数与控制台中的 有效时间 配置搭配使用,用来计算签名的过期时间。在 请求示例 中,该参数值是 1644406401 。 |
rand | 表示 请求 URL 格式 中的 rand 参数,是一个随机字符串。长度为 1-100 位。可以包含字母和数字。在 请求 URL 示例 中,该参数值是 2e1ca42a1bb248408fc9cf435e5af744 。 |
uid | 表示用户 ID,暂时未使用。您需要设置该参数值为 0 。 |
在收到包含签名的客户端请求时,CDN加速服务使用的鉴权流程如下:
基于请求中包含的鉴权参数以及您在CDN加速服务控制台中配置的 key,使用 签名计算公式 计算签名。
判断CDN加速服务计算得到的签名和客户端请求中包含的签名是否一致。如果不一致,CDN加速服务判断请求不合法,拒绝该请求。
判断请求是否过期。如果存在以下情况,CDN加速服务判断请求过期,拒绝该请求。