内容分发网络 CDN内容分发网络 CDN

更新时间:2021/08/25 GMT+08:00
分享

鉴权方式C2

CDN分发的内容默认为公开资源,URL鉴权功能主要用于保护用户站点资源,防止资源被用户恶意下载盗用。华为云CDN提供了4种URL鉴权配置。本章为您详细介绍鉴权方式C2的实现方式。

如果您的域名有特殊配置,暂不支持控制台自助配置URL鉴权。

原理说明

C2类鉴权方式的用户访问加密URL格式:
http://DomainName/FileName?auth_key=<md5hash>&timestamp=<timestamp>

鉴权字段描述如下表所示:

字段

描述

DomainName

CDN加速域名

timestamp

用户定义的有效访问时间起始点,值为1970年1月1日以来的当前时间秒数 。十进制或者十六进制整数。

有效时间

鉴权有效的时间长度,取值为0~31536000s。

示例:如果设置有效时间为1800s,则用户可在从timestamp开始的1800s内访问CDN。超出该区间,鉴权失败。

md5hash

通过md5算法计算出来的验证串,数字0-9和小写英文字母a-z混合组成,固定长度32。

Filename

实际回源访问的URL,鉴权时Filename需以/开头。不包含?后面的参数。

PrivateKey

用户设定的鉴权密钥,来生成加密URL。如huaweicloud123。密钥的格式为大小写字母、数字,长度6到32。

鉴权参数名

用户url中携带的鉴权信息参数名,默认为auth_key。

时间戳参数名

用户url中携带的时间戳参数名称,默认为timestamp。

校验方法

CDN服务器拿到请求后,会按照如下步骤进行校验:

  1. 是否携带鉴权参数。如果没有携带鉴权参数,认为请求非法,返回HTTP 403错误。
  2. 时间校验:判断系统当前时间是否在区间[timestamp,timestamp+有效时间]内。超出该区间,认为过期失效并返回HTTP 403错误。
  3. 加密串校验:时间校验通过后,则以sstring方式构造出一个字符串(参考以下sstring构造方式)。然后使用md5算法算出HashValue,并和用户请求中带来的md5hash进行对比。结果一致则认为鉴权通过并返回文件,否则鉴权失败返回HTTP 403错误。HashValue计算方式如下:
    sstring = “PrivateKeyFilenametimestamp”
    HashValue = md5sum(sstring)

操作步骤

  1. 登录华为云控制台,在控制台首页中选择“CDN与智能边缘 > CDN”,进入CDN控制台。
  2. 在左侧菜单栏中,选择域名管理
  3. 在域名列表中,单击需要修改的域名或域名所在行的“设置”,进入域名配置页面。
  4. 选择“访问控制”页签,单击“URL鉴权配置”,进入配置弹窗。

  5. 参照下表配置参数,单击“确定”,完成配置。

    参数

    说明

    鉴权KEY

    鉴权密码,6~32位大/小写字母、数字构成。

    时间格式

    鉴权URL中时间的格式。

    有效时间长度

    鉴权URL的有效时间,取值为0~31536000s。

    鉴权计算器

    鉴权计算器是为了方便您生成鉴权URL以供用户使用,跟据参数提示设置不同的参数后,单击“生成”即可生成鉴权URL和过期时间。

    参数

    说明

    鉴权KEY

    鉴权密码,6~32位大/小写字母、数字构成,与鉴权配置中的密码一致。

    访问路径

    资源所在路径,以/开头,无需携带参数。

    开始时间

    鉴权URL的生效起始时间。

    时间格式

    鉴权URL的时间格式,与鉴权配置中保持一致。

    有效时间长度

    鉴权URL的有效时间,取值为0~31536000s。最大值为鉴权配置中设置的有效时间。

    示例:鉴权配置中设置的有效时间长度为1800秒,鉴权计算器中设置2000秒,那么有效时间依然是1800秒。

示例说明

  1. 回源请求对象:
    http://hwcdn.example.com/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3
  2. 密钥设为:huaweicloud123(用户自行设置)
  3. 鉴权生效开始日期为:2017年6月30日10:00:00,计算出来的秒数为1498788000,并转换为十六进制为5955b0a0。并且设置有效时间为1800s。
  4. CDN服务器构造一个用于计算md5hash的签名字符串:
    huaweicloud123/T128_2_1_0_sdk/0210/M00/82/3E/test.mp35955b0a0
  5. CDN服务器根据该签名字符串计算md5hash:
    md5hash = md5sum(huaweicloud123/T128_2_1_0_sdk/0210/M00/82/3E/test.mp35955b0a0) = aecf1b07f481bbb8122eef5cd52a4bc1
  6. 请求CDN时URL:
    http://hwcdn.example.com/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3?auth_key=aecf1b07f481bbb8122eef5cd52a4bc1&timestamp=5955b0a0

如果请求在有效时间内(2017年6月30日10:00:00-2017年6月30日10:30:00),并且计算出来的md5hash与用户请求中带的md5hash值(aecf1b07f481bbb8122eef5cd52a4bc1)一致,则鉴权通过。

分享:

    相关文档

    相关产品