You need to enable JavaScript to run this app.
导航

配置 D 类型

最近更新时间2023.12.06 14:01:07

首次发布时间2023.08.23 19:50:17

本文为您介绍视频点播中配置 URL 鉴权模块 D 类型的配置说明。

  • 客户端请求格式scheme://host/uri?sign=md5(key + uri + timestamp)&t=timestamp(&...)
  • 客户端请求示例https://www.example.com/product/cdn?sign=e954e253c33634b510443af72406600f&t=1620291453&query1=value1&query2=value2
  • 回源请求格式scheme://host/uri?(&...)
  • 回源请求示例https://www.example.com/product/cdn?query1=value1&query2=value2

说明

MD5 值是 32 位的。

适用范围

URL 鉴权类型 D 配置适用于自定义源站加速域名。

操作步骤

  1. 登录视频点播控制台,进入空间。

  2. 选择左侧导航栏分发加速设置 > 域名管理,进入域名管理页面。

  3. 选择自定义源站加速域名页签,单击操作列的配置按钮。

  4. 进入自定义源站加速域名配置页面,选择访问控制页签。

  5. 单击页面下方的修改配置按钮。URL 鉴权默认关闭。您可以在 URL 鉴权下方,将状态设为开启,选择 D 类型,根据提示,完成参数配置。

    详细的参数说明如下所示。

    配置说明

    生效对象

    生效对象表示哪些文件的请求需要被鉴权。您至少需要添加一个对象,最多可以添加 50 个对象。您需要指定多个对象之间的条件关系。 这个条件关系表示匹配任何一个对象的请求就会被鉴权。 表示只有匹配所有对象的请求才会被鉴权。在设置对象时,您可以指定以下配置:

    • 文件后缀:表示满足指定后缀名匹配条件的文件请求需要被鉴权。匹配时区分大小写。指定的文件后缀可以包含英文字母和数字。多个文件后缀使用分号(;)分隔,长度不超过 1024 个字符。例如 png;txt
    • 文件目录:表示满足指定目录匹配条件的文件请求需要被鉴权。匹配时区分大小写。您可以输入一个或者多个目录路径,总长度不能超过 1,024 个字符。多个目录路径使用分号分隔。目录路径的输入要求如下:
      • 目录路径必须以反斜杠(/)开头和结尾。比如 /www/img/volc/;/www/doc/。如果要指定加速域名下的所有目录,输入 /
      • 目录路径只能包含可打印 ASCII 字符,以下字符除外:
        • 连续斜杠(//)、百分号(%)、空格、美元符号($)、问号(?)、Delete(ASCII code 127)。
    • 文件全路径匹配:表示满足指定文件匹配条件的请求需要被鉴权。匹配时区分大小写。您可以输入一个或者多个文件路径,总长度不能超过 1,024 个字符。文件路径支持使用通配符(*)表示一个或者多个连续字符。多个文件路径使用分号分隔。文件路径的输入要求如下:
      • 文件路径必须以斜杠(/)开头。例如/www/img/image.png;/doc/study.docx
      • 文件路径只能包含可打印 ASCII 字符,以下字符除外:
        • 连续斜杠(//)、百分号(%)、空格、美元符号($)、问号(?)、Delete(ASCII code 127)。
    主 Key指定一个主密钥。密钥由 6-40 个字符组成,只能包含除了 Delete(ASCII code 127)的可打印 ASCII 字符。
    备 Key指定一个备密钥。密钥的输入要求与主 Key 相同。

    签名参数

    指定请求的签名参数名称。参数名称的说明如下:

    • 不能超过 100 个字符。
    • 大小写敏感。
    • 可以包含字母、数字、下划线(_)、中划线(-)、句号(.)、逗号(,)、感叹号(!)。
    • 至少包含一个字母或者数字。
    • 不能与时间戳参数相同。
    • 控制台中默认的签名参数是 sign
    有效时间指定签名的有效时间,单位是秒。该配置与客户端请求中的 timestamp 参数搭配使用,用来计算签名的过期时间。该参数的取值范围是 0-315,360,000。签名的过期时间 = timestamp + 有效时间。在视频点播收到某个请求时,如果请求中包含的签名的过期时间早于当前时间,视频点播判定签名已过期。此时,视频点播返回 403 响应状态码,表示鉴权失败。控制台中默认的有效时间是 1800

    时间戳参数

    指定请求的时间戳参数的名称。参数名称的说明如下:

    • 不能超过 100 个字符。
    • 大小写敏感。
    • 可以包含字母、数字、下划线(_)、中划线(-)、句号(.)、逗号(,)、感叹号(!)。
    • 不能与签名参数相同。
    • 控制台中默认的签名参数是 t
    时间格式指定 Unix 时间戳的格式。
  6. 完成配置后,单击保存配置按钮。

签名参数

客户端在计算签名时,需要的参数如下:

参数描述
key表示在视频点播控制台配置的密钥。可以使用主密钥或者备密钥。
uri表示请求的文件路径。路径以斜杠(/)开头,不包含域名。比如请求的完整路径为 https://www.example.com/image.png。则 uri 的值为 /image.png。如果路径包含中文字符,您需要对路径编码。
timestamp表示一个时间。该参数与控制台中的 有效时间 配置搭配使用,用来计算签名的过期时间。根据控制台中的 时间格式 配置,时间格式使用十进制或十六进制的 Unix 时间戳。十进制 Unix 时间戳示例:1644406401

请求示例

客户端请求

  • 带签名的 URL:https://www.example.com/img/image.png?sign=d4126b839170032132a3d8124aaf66bc&t=1644406401
  • timestamp:2022-02-09 11:33:21 GMT。对应的十进制 Unix 时间戳是 1644406401。

鉴权参数

参数示例值
keyabc123def456
uri/img/image.png
timestamp1644406401
duration1800

鉴权逻辑

  1. 计算鉴权签名。
    1. 视频点播收到客户端的带签名请求后,计算签名。计算过程使用以下 B 类型的请求格式:
          scheme://host/uri?sign=md5(key + uri + timestamp)&t=timestamp(&...)
      基于该请求格式,使用以下公式计算签名:
          md5(abc123def456/img/image.png1644406401)
      MD5 值在鉴权时会转化成小写进行比较。
    2. 视频点播将签名加入原始请求。得到的请求如下:
      https://www.example.com/img/image.png?sign=d4126b839170032132a3d8124aaf66bc&t=1644406401
  2. 验证请求合法性。
    1. 判断该请求和客户端请求是否一致。本示例中两者一致。
    2. 判断请求是否过期。假设视频点播收到请求的时间是 2022-02-09 11:40:21 GMT。该时间小于 2022-02-09 11:33:21 + 1800 秒。本示例中请求未过期。