当前位置:主页 > 查看内容

鉴权方式A_内容分发网络 CDN_用户指南_域名配置_访问控制_URL鉴

发布时间:2021-09-13 00:00| 位朋友查看

简介:CDN分发的内容默认为公开资源,URL鉴权功能主要用于保护用户站点资源,防止资源被用户恶意下载盗用。华为云CDN提供了3种URL鉴权配置。本章为您详细介绍鉴权方式A的实现方式。 目前暂不支持控制台自助配置URL鉴权,如有需要请 提交工单 进行处理。 原理说明……

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

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

原理说明

访问加密URL构成:

http://DomainName/Filename?auth_key=timestamp-rand-uid-md5hash

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

字段

描述

DomainName

CDN加速域名。

timestamp

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

有效时间

鉴权有效的时间长度,默认是1800s。

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

rand

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

uid

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

md5hash

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

Filename

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

PrivateKey

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

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

鉴权参数名

用户url中携带的鉴权信息参数名,默认为auth_key。可在界面修改配置。

校验方法

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

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

示例说明

  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://hwcdn.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)一致,则鉴权通过。


本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:ModifyInstanceAutoReleaseTime - 云服务器 ECS 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐