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

配置 E 类型

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

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

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

  • 客户端请求格式scheme://host/uri?sign=md5(<自定义计算规则>)&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 鉴权类型 E 配置适用于自定义源站加速域名。

操作步骤

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

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

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

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

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

    参数说明

    生效对象

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

    • 文件后缀:表示满足指定后缀名匹配条件的文件请求需要被鉴权。匹配时区分大小写。指定的文件后缀可以包含英文字母和数字。需要遵循的规则如下:
      • 生效规则不能超过 1024 个字符。
      • 文件后缀规则支持填充多个,以 ; 分隔 如 jpg;png
      • 生效规则不能重复。
    • 文件目录:表示满足指定目录匹配条件的文件请求需要被鉴权。匹配时区分大小写。需要遵循的规则如下:
      • 生效规则不能超过 1024 个字符。
      • 目录匹配规则需要以 / 开头和结尾,多个目录之间以 ; 分隔 如 /test/a/;/test/b/。如果要指定加速域名下的所有目录,输入 /
      • 目录路径只能包含可打印 ASCII 字符,以下字符除外:连续斜杠(//)、空格、美元符号($)、问号(?)、Delete(ASCII code 127)
      • 生效规则不能重复。
    • 文件全路径匹配:表示满足指定文件匹配条件的请求需要被鉴权。匹配时区分大小写。需要遵循的规则如下:
      • 生效规则不能超过 1024 个字符。
      • 全路径匹配需要以 / 开头,支持通配符 *,多个路径之间以 ; 分隔 如 /test/1.jpg;/test/2.jpg
      • 文件路径只能包含可打印 ASCII 字符,以下字符除外:连续斜杠(//)、空格、美元符号($)、问号(?)、Delete(ASCII code 127)。
      • 生效规则不能重复。
    主 KEY指定一个主密钥,不支持纯空白字符。密钥由 6-40 个字符组成,只能包含除了 Delete(ASCII code 127)的可打印 ASCII 字符。
    备 KEY指定一个备密钥,不支持纯空白字符。密钥的输入要求与主 KEY 相同。

    签名参数

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

    • 不能超过 100 个字符。
    • 大小写敏感。
    • 可以包含字母、数字、下划线(_)、中划线(-)、句号(.)、逗号(,)、感叹号(!)。
    • 至少包含一个字母或者数字。
    • 签名参数与时间戳参数不能同名。

    时间戳参数

    指定请求的时间戳参数的名称。默认的签名参数是 t。参数名称的说明如下:

    • 不能超过 100 个字符。
    • 大小写敏感。
    • 可以包含字母、数字、下划线(_)、中划线(-)、句号(.)、逗号(,)、感叹号(!)。
    • 不能与签名参数相同。

    有效时间

    指定签名的有效时间,默认的有效时间是 1800,单位是秒。该配置与计算规则中的 时间戳 参数搭配使用,用来计算签名的过期时间。该参数的取值范围是 [0,315,360,000]。
    公式:签名的过期时间 = timestamp + 有效时间。在视频点播收到某个请求时,如果请求中包含的签名的过期时间早于当前时间,视频点播判定签名已过期。此时,视频点播返回 403 响应状态码,表示鉴权失败。

    时间格式支持选择十进制(Unix 时间戳)、十六进制(Unix 时间戳)。
    自定义签算变量详见下方自定义用于签名计算变量
    计算规则指定用以计算签名的参数。支持选择的规则详见下方计算规则

自定义签算变量

在视频点播中,您可以添加自定义的变量用于签名计算。

说明

您最多可以添加 50 个变量。

您可以点击 新增规则 添加一个变量获取的规则。详细的参数说明如下所示。

参数说明

变量类型

指定变量的类型。该配置有以下取值:

  • 请求参数:表示该变量是请求中的一个查询参数。
  • 请求头部:表示该变量是请求中的一个头部。
取值方式表示视频点播如何将参数取值与请求中的参数匹配。该配置的取值只支持精确匹配

参数取值

表示需要额外参与签名计算的变量名称。变量名称不能超过 100 个字符。

  • 如果变量类型请求参数,需要遵循的规则如下:
    • 变量名称可以包含字母、数字、连字符(-)、逗号(,)、句号(.)、感叹号(!)。
    • 禁止命名为和计算规则选择一样。
    • 参数取值不能重复。
  • 如果变量类型请求头部,需要遵循的规则如下:
    • 变量名称可以包含可打印 ASCII 字符,除了以下这些字符:不支持中文、下划线(_)、空格、双引号(")、冒号(:)、Delete(ASCII code 127)。
    • 禁止命名为和计算规则选择一样。
    • 参数取值不能重复。
操作表示您可以对该规则进行删除的操作。

在您添加自定义变量后,该变量就会出现在 计算规则 列表中了。

计算规则

相比其他鉴权类型使用固定的请求格式,E 类型允许您通过计算规则指定用以计算签名的参数。

您可以在计算规则中指定以下签名参数:

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

计算规则的配置步骤如下:

  1. 选择用于签名计算的参数。

  2. 通过拖拽调整参数的顺序。

    说明

    参数选择完成后,请点击页面任意空白处。在参数列表消失后,您才能拖拽调整签名参数的顺序。

签名计算使用的参数

签名计算使用的参数对应计算规则中指定的参数,并且按照参数的顺序来计算签名。

请求示例

假设一个用户请求的请求头中,IP 是 49.7.47.128,referer 是 https://www.test.com/test.html。

  • 生效对象:文件后缀名匹配 png;txt。

  • 计算规则:计算规则中指定的参数和参数顺序如下:

    • 密钥
    • 客户端IP
    • uri
    • Referer
    • 时间戳参数

客户端请求

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

鉴权参数

根据计算规则中指定的参数和参数的顺序,以及控制台中的参数设置,鉴权参数如下:

参数说明
keyabc123def456
uri/img/image.png
ip49.7.47.128
refererhttps://www.test.com/test.html
timestamp1644406401
duration1800

鉴权逻辑

  1. 判断请求的文件是否匹配生效对象的规则。如果匹配,则对该文件启用访问鉴权。

  2. 计算鉴权签名

    1. 视频点播收到客户端的带签名请求后,计算签名。根据计算规则中指定的参数和顺序,计算过程使用请求格式:
          scheme://host/uri?sign=md5(key + ip + uri + referer + timestamp)&t=timestamp(&...)
      基于该请求格式,使用以下公式计算签名:
          md5(abc123def45649.7.47.128/img/image.pnghttps://www.test.com/test.html1644406401)
      MD5 值在鉴权时会转化成小写进行比较。

    2. 视频点播将签名加入原始请求。得到的请求如下:
      https://www.example.com/img/image.png?sign=e5ea05458726271462fb180a813e3302&t=1644406401

  3. 验证请求合法性

    1. 判断该请求和客户端请求是否一致。本示例中两者一致。
    2. 判断请求是否过期。假设视频点播收到请求的时间是 2022-02-09 11:40:21 GMT。该时间大于 2022-02-09 11:33:21 + 1800 秒。本示例中请求未过期。