本文为您详细介绍 A 类型鉴权方式的工作原理并提供鉴权示例。
本文仅适用于自定义源站加速域名。
A 类型鉴权方式的工作原理说明如下:
鉴权 URL 构成:
scheme://host/uri?sign=timestamp-rand-uid-md5(uri-timestamp-rand-uid-key)(&...)
鉴权 URL 示例:
https://www.example.com/img/volcano.png?sign=1644406401-2e1ca42a1bb248408fc9cf435e5af744-0-54959c1ec3448bf8e992554476248fab
鉴权参数说明如下:
参数 | 描述 |
---|---|
uri | 请求的文件路径。路径以斜杠 |
timestamp | 鉴权 URL 的生成时间,为十进制的 Unix 时间戳。该参数与您在视频点播控制台中配置的有效时长搭配使用,用来计算签名的失效时间。签名的失效时间 = timestamp + 有效时长。示例: |
rand | 随机字符串。长度为 1-100 位。可以包含字母和数字。示例: |
uid | 用户 ID。预留参数,暂未使用。设置成 |
key | 您在视频点播控制台配置的密钥。可以使用主密钥或者备密钥。 |
鉴权流程:
md5(uri-timestamp-rand-uid-key)
公式计算签名值。MD5 值在鉴权时会转化成小写进行比较。说明
MD5 值为 32 位。
timestamp
+ 您在视频点播控制台配置的有效时长”跟当前时间进行对比。如果签名的过期时间早于当前时间,视频点播判定签名已过期;反之,则判定签名有效。对于 A 类型鉴权方式,您可以在视频点播控制台中配置以下参数:
参数 | 说明 |
---|---|
生效对象 | 表示对哪些文件的请求需要被鉴权。您至少需要添加一个规则,最多可以添加 10 个。
每条规则包含以下配置:
|
主 Key | 主密钥。长度限制为 6-40 个字符,只能包含可打印 ASCII 字符,Delete(ASCII code 127)除外。不支持纯空白字符。 |
备 Key | 备密钥。长度限制为 6-40 个字符,只能包含可打印 ASCII 字符,Delete(ASCII code 127)除外。不支持纯空白字符。 说明 对线上业务域名变更 URL 鉴权时,建议在过渡期使用备 Key,避免业务中断。 |
签名参数 | 请求的签名参数名称。不能超过 100 个字符。大小写敏感。可以包含字母、数字、下划线 说明
|
有效时间 | 签名的有效时长。该参数与客户端请求中的
|
时间格式 | 固定为十进制(Unix 时间戳)。 |
m3u8 改写 | 表示在响应
说明
|
以下示例可以帮助您准确理解鉴权方式 A 的实现方式。
本示例中,假设带签名的请求 URL 为:
https://www.example.com/img/volcano.png?auth_key=1644406401-2e1ca42a1bb248408fc9cf435e5af744-0-54959c1ec3448bf8e992554476248fab
根据以上 URL,各鉴权参数的取值具体如下:
uri
的值为 /img/volcano.png
。timestamp
的值为 1644406401
,表示鉴权 URL 的生成时间为 2022-02-09 11:33:21 GMT。rand
的值为 2e1ca42a1bb248408fc9cf435e5af744
。uid
的值为 0
。再假设您在视频点播控制台设置的密钥为 abc123def456
,有效时长为 1800 秒。
本示例中的鉴权流程如下:
视频点播 CDN 节点收到客户端的带签名请求后,使用 MD5 算法,基于 md5(uri-timestamp-rand-uid-key)
公式计算签名值。在本示例中,签名计算公式为:md5(/img/volcano.png-1644406401-2e1ca42a1bb248408fc9cf435e5af744-0-abc123def456)
CDN 节点将签名值加入原始请求。得到的请求如下:
https://www.example.com/img/volcano.png?sign=1644406401-2e1ca42a1bb248408fc9cf435e5af744-0-54959c1ec3448bf8e992554476248fab
CDN 节点验证请求合法性:
视频点播为 A 类型鉴权方式提供签名工具。您可前往视频点播控制台签名工具页面查看。详细使用步骤请见签名工具。