文档首页 > > 用户指南> 配置管理> 访问控制> URL鉴权> 鉴权方式B

鉴权方式B

分享
更新时间: 2020/06/03 GMT+08:00

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

目前暂不支持控制台自助配置URL鉴权,如有需要请提交工单进行处理。

原理说明

用户访问加密URL构成:

http://DomainName/timestamp/md5hash/FileName

当鉴权通过时,实际回源的URL为:

http://DomainName/FileName

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

表1 鉴权字段描述

字段

描述

DomainName

CDN加速域名。

timestamp

用户定义的有效访问时间起始点,格式为YYYYMMDDHHMM。如:201706301000

有效时间

鉴权有效的时间长度,默认是1800s。可在界面修改配置。

若设置有效时间为1800s,用户设置的timestamp为2017-06-30 10:00:00,则链接在2017-06-30 10:30:00失效。

md5hash

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

Filename

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

PrivateKey

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

包含主KEY和备KEY。主KEY必须设置,备KEY不强制填写。当需要替换密钥时,若需要新旧密钥同时生效,可设置备KEY。主、备KEY之一鉴权通过即可正常访问。

校验方法

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

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

示例说明

用示例说明鉴权方式B的实现方式:

  1. 回源请求对象:
    http://hwcdn.example.com/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3
  2. 密钥设为:huaweicloud123(用户自行设置)
  3. 用户访问客户源服务器时间为:201706301000(格式为:YYYYMMDDHHMM)
  4. CDN服务器构造一个用于计算md5hash的签名字符串:
    huaweicloud123201706301000/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3
  5. CDN服务器根据该签名字符串计算md5hash:
    md5hash = md5sum("huaweicloud123201706301000/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3") = 51415b2256b64a9772a30edf69c00b08
  6. 请求CDN时URL:
    http://hwcdn.example.com/201706301000/51415b2256b64a9772a30edf69c00b08/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3

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

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问