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