本文档介绍火山引擎内容分发网络(CDN)中 URL 鉴权模块的 E 类型配置。
说明
默认情况下,CDN 会在缓存键和回源请求中包含签名参数。但 CDN 提供了 去除鉴权参数缓存和回源 配置,参见配置说明。
在 CDN 控制台中,您需要做以下配置。各配置的输入要求在文档末尾。
配置 | 说明 |
|---|---|
生效对象 | 表示一组匹配条件。CDN 对符合条件的用户请求进行鉴权。您至少需要添加一个条件,最多可以添加 10 个。您可以指定多个条件之间的关系,默认是 或。 或 表示匹配任何一个条件的请求就会被鉴权。且 表示只有匹配所有条件的请求才会被鉴权。每个条件包含匹配类型、匹配方式和匹配值。 匹配类型支持 文件后缀、文件目录、文件全路径 和 全路径正则表达式。其中,要指定 全路径正则表达式,请 提交工单。 |
主 KEY | 指定一个主密钥。 |
备 KEY | 指定一个备密钥。如果鉴权失败,CDN 会使用备密钥再计算一次签名并尝试与请求中的签名比对。 |
签名参数 | 指定请求中的签名参数名称,默认是 |
有效时间 | 指定签名的有效时间,单位是秒,默认值是 |
时间戳参数 | 指定请求中的时间戳参数的名称,默认是 |
时间格式 | 指定 Unix 时间戳的格式。 |
鉴权算法 | 表示签名计算使用的算法。该配置有以下取值:
说明 SHA-256 算法的安全性比 MD5 高,生成的哈希值出现碰撞的几率比 MD5 低,但是加密和解密过程的耗时比 MD5 长。 |
M3U8 改写 | 如果请求 URL 指向一个 HLS Manifest,也就是后缀为 .m3u8 的文件,您可以配置是否对文件中的视频分片 URI 进行改写,以添加签名。默认情况下,CDN 对 说明 当前,CDN 不支持改写压缩文件。因此,在以下任意情况下,CDN 不会修改 .m3u8 文件。
该配置还包含以下配置。
需要留意的是,前两个配置会影响分片 URI 的签名计算。 在改写分片 URI 时,CDN 可以识别以下格式:
对于其他不符合规范的 URI 格式,CDN 可能会无法识别,导致签名添加失败。 |
去除鉴权参数缓存和回源 | 表示 CDN 是否在缓存键和回源请求中包含签名参数。该配置启用后,缓存键和回源请求均不会包含签名参数。 |
计算规则 | 指定参与签名计算的鉴权参数以及这些参数的顺序。 |
鉴权计算器 | 参见 鉴权计算器说明。 |
对于 E 类型,您可以添加自定义的变量用于签名计算。您最多可以添加 50 个变量。您可以点击 新增规则 添加一个变量获取的规则。规则的各配置说明如下:
配置 | 说明 |
|---|---|
变量类型 | 指定变量的类型。该配置有以下取值:
|
取值方式 | 表示 CDN 如何将 参数取值 与 请求中的参数匹配。该配置的取值只能是 精确匹配。 |
参数取值 | 表示需要额外参与签名计算的变量名称。变量名称不能超过 100 个字符。其他要求如下:
|
操作 | 表示您可以对该规则进行的操作。 |
在您添加自定义变量后,您就可以在设置 计算规则 时选择该变量了。
scheme://host/uri?sign=\<signature\>&t=timestamp(&...)
说明
timestamp 的精度是秒。
https://www.example.com/product/cdn?sign=e954e253c33634b510443af72406600f&t=1620291453&query1=value1&query2=value2
如果您在 URL 鉴权的配置中指定签名算法是 MD5,则签名
md5(<自定义计算规则>)
如果您在 URL 鉴权的配置中指定签名算法是 SHA-256,则签名
sha256(<自定义计算规则>)
说明
在计算签名时,其他鉴权类型只能使用固定的计算规则,但是 E 类型允许您自定义计算规则。
您可以指定计算规则包含以下参数,并且通过拖拽调整参数的在计算规则中的出现顺序。
参数 | 是否必选 | 描述 |
|---|---|---|
密钥 | 是 | 表示在 CDN 控制台配置的密钥。 |
uri | 是 | 表示 请求 URL 格式 中的 |
时间戳参数 | 是 | 表示 请求 URL 格式 中的 |
Referer | 否 | 表示用户请求中 Referer 头部的值。 |
客户端域名 | 否 | 表示请求的加速域名。 |
Origin | 否 | 表示请求中 Origin 头部的值。 |
客户端IP | 否 | 表示客户端的 IP 地址。 |
User-Agent | 否 | 表示请求中 User-Agent 头部的值。 |
自定义变量 | 否 | 表示您在自定义签名计算变量中定义的变量名称。您在 添加参与签名计算的自定义变量 步骤中添加的变量会出现在参数列表中。 |
在收到包含签名的客户端请求时,CDN 使用的鉴权流程如下:
在配置 URL 鉴权时,请遵循以下输入要求:
配置项 | 输入要求 |
|---|---|
生效对象 | 匹配值字符限制:总长度不能超过 1,024 个字符。不能包含双斜杠(//)、空格、美元符号($)、问号(?)。
|
主 KEY / 备 KEY | 由 6-40 个字符组成。 |
签名参数 |
|
时间戳参数 |
|
有效时间 | 取值范围是 0-315,360,000。 |
M3U8 改写 | M3U8 标签改写:最多指定 20 个标签,每个标签的长度为 1-100 个字符,不能包含 |