更新时间:2024-01-12 gmt 08:00

鉴权方式a-凯发k8国际娱乐官网入口

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

  • url鉴权功能默认关闭。
  • 如果您的域名有特殊配置,暂不支持控制台自助配置url鉴权。
  • 配置鉴权后,用户将携带鉴权参数访问。如果您没有配置“忽略url参数”:
    • 会增大回源概率。
    • 如果您的源站为对象存储桶,将会产生桶的流量流出费用。

原理说明

访问加密url构成:

http://domainname/filename?auth_key=timestamp-rand-uid-md5hash
http://domainname/filename?auth_key=timestamp-rand-uid-sha256

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

表1 字段说明

字段

描述

domainname

cdn加速域名。

timestamp

鉴权服务器生成鉴权url的时间,即:鉴权开始时间,值为1970年1月1日以来的当前时间秒数 ,十进制整数。

有效时间

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

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

rand

随机数,建议使用uuid (不能包含中划线“-”,如: 202cb962ac59075b964b07152d234b70 格式)。

uid

userid。暂未使用(设置成0即可)。

md5hash

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

sha256

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

filename

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

privatekey

用户设定的鉴权密钥,来生成加密url。如huaweicloud123。由16~32位大/小写字母和数字构成,密码必须同时包含字母和数字。

鉴权参数名

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

校验方法

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

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

操作步骤

  1. 登录,在控制台凯发k8国际娱乐k8凯发官网入口首页中选择“ cdn与智能边缘 > 内容分发网络 cdn”,进入cdn控制台。
  2. 在左侧菜单栏中,选择域名管理
  3. 在域名列表中,单击需要修改的域名或域名所在行的“设置”,进入域名配置页面。
  4. 选择“访问控制”页签,单击“url鉴权配置”,进入配置弹窗。
    图1 配置url鉴权
  5. 打开“状态”开关。
  6. 参照下表配置参数,单击“确定”,完成配置。
    表2 参数说明

    参数

    说明

    鉴权方式

    选择“方式a”。

    鉴权范围

    指定哪些文件参与鉴权,目前仅支持选择所有文件、指定文件后缀鉴权、指定文件后缀不鉴权。

    鉴权继承配置

    为m3u8/mpd索引文件下的ts/mp4文件添加鉴权参数,解决因鉴权不通过导致的ts/mp4文件无法播放的问题。

    说明:
    • 如果嵌套多层m3u8/mpd文件,仅解析第一层m3u8/mpd文件,不展开嵌套m3u8/mpd文件的ts/mp4流。
    • 支持标准m3u8格式(按行解析:解析不成功时返回原值,支持以标签#ext-x-map开头的uri,支持以非#开头的url/uri)。
    • 支持标准mpd格式(按行解析:解析不成功时返回原值,识别标签之间的uri,不支持标签segmenttemplate)。
    • 如果您的m3u8/mpd索引文件中含有中文或特殊字符,cdn在鉴权计算时不会自动转码。如果客户端访问时存在自动将中文或特殊字符转码逻辑,可能导致鉴权不通过,从而访问失败。

    鉴权继承开始时间

    • 与m3u8/mpd访问链一致:鉴权开始时间取m3u8/mpd访问的时间。
    • 当前时间:鉴权开始时间取鉴权服务器的当前时间。

    文件后缀

    当需要指定文件类型时填写此参数,指定特定后缀的文件参与或者不参与鉴权。

    • 仅支持小写字符、数字,多个文件后缀用“;”分割。

    鉴权key

    鉴权密码,由16~32位大/小写字母和数字构成,密码必须同时包含字母和数字。

    鉴权key(备)

    鉴权备用密码,可不用配置。当需要替换密钥时,如果需要新旧密钥同时生效,可设置备key。主、备key之一鉴权通过即可正常访问。

    • 由16~32位大/小写字母和数字构成,密码必须同时包含字母和数字。

    鉴权参数

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

    • 最大长度为100个字符。
    • 可以包含大小写字母、数字、_,首字母不能是数字。

    加密算法

    用于信息加密的算法,可选md5或sha256。

    有效时间长度

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

    鉴权计算器

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

    如果您的鉴权url中含有中文或特殊字符,请先进行url转码(即encode)后使用。

    表3 参数说明

    参数

    说明

    鉴权key

    鉴权密码,16~32位大/小写字母、数字构成,密码必须同时包含字母和数字,与鉴权配置中的密码一致。

    访问路径

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

    加密算法

    用于信息加密的算法,可选md5或sha256。

    开始时间

    鉴权url的生效起始时间。

    有效时间长度

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

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

关闭url鉴权

关闭“状态”开关即可关闭url鉴权配置,此时所有配置将被清空,下次启用url鉴权功能时需要重新配置相关参数。

示例说明

以使用md5算法为例:

  1. 通过req_auth请求对象:
    http://hwcdn.example.com/t128_2_1_0_sdk/0210/m00/82/3e/test.mp3
  2. 密钥设为:huaweicloud123(由用户自行设置)
  3. 鉴权生效开始日期为:2017年6月30日00:00:00,计算出来的秒数为1498752000。并且设置有效时间为1800s。
  4. cdn服务器构造一个用于计算hashvalue的签名字符串:
    /t128_2_1_0_sdk/0210/m00/82/3e/test.mp3-1498752000-0-0-huaweicloud123
  5. cdn服务器根据该签名字符串计算hashvalue:
    hashvalue = md5sum(“/t128_2_1_0_sdk/0210/m00/82/3e/test.mp3-1498752000-0-0-huaweicloud123”) = 
    40e64d69aac7d15edfc6ec8a080042cb
  6. 请求时url为:
    http://cdn.example.com/t128_2_1_0_sdk/0210/m00/82/3e/test.mp3?auth_key=1498752000-0-0-40e64d69aac7d15edfc6ec8a080042cb

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

分享:
网站地图