功能介绍
默认情况下在边缘分发的内容大部分都是公开资源,用户可以直接请求URL获取。为了防止站点资源被恶意下载或者非法盗用,避免产生不必要的带宽浪费,您可以在天翼云边缘安全加速平台上配置URL鉴权功能。配置URL鉴权后,边缘节点会对加密串及时间戳进行校验,从而有效地保护用户站点资源。
适用场景
1、需要对站点资源限制用户访问,避免资源被恶意下载或者非法盗用。
2、请求的资源都具有一定的时效性,超过时效则不允许访问。
注意事项
1、配置URL鉴权需要客户端跟产品服务配合一起开启。
2、配置鉴权后,用户将携带鉴权参数访问,建议缓存策略修改为忽略鉴权参数进行缓存,否则将增大回源概率。
3、当鉴权规则(含算法、秘钥、鉴权参数等)发生变更时,需要通知安全与加速产品配合更改,否则将导致用户请求异常。
4、如果您的鉴权URL中含有中文或特殊字符,需先进行URL转码(即Encode)后使用。
配置说明
天翼云提供三种鉴权方式供您参考配置,以下为详细的鉴权原理及配置说明。
(一)鉴权方式A
1、原理说明
- 鉴权方式A访问URL构成:http://DomainName/Filename?auth_key=timestamp-rand-uid-md5hash。
- 鉴权字段说明:
字段 | 描述 |
---|---|
DomainName | 服务域名。 |
Filename | 实际回源访问的URL,鉴权时Filename需以/开头。不包含?后面的参数。 |
auth_key | 设定的鉴权参数名,默认为auth_key,也可自定义。 |
timestamp | 鉴权服务器生成鉴权URL的时间,即:鉴权开始时间,值为从1970年1月1日0点至当前时间总秒数 ,十进制整数。 备注:与鉴权URL有效时长共同控制鉴权URL的失效时间。鉴权URL实际有效期=timestamp+配置的鉴权URL有效时长。 |
rand | 随机数。0 - 64位随机字符串,由大小写字母与数字组成,例如:477b3bbcf6711128c7bec。 |
uid | 用户ID,暂未使用,设置成0即可。 |
md5hash | 通过MD5算法计算出的32位字符串。计算公式如下:md5hash = md5sum(Filename-timestamp-rand-uid-key)。 备注1:md5加密元素分隔符默认中划线(-),也可自定义。 备注2:这里的key为用户设定的鉴权秘钥,长度6到32,由大小写字母与数字组成,例如:ctcdnkey123。 |
-
校验方法
服务器拿到请求后,会按照如下步骤进行校验:
- 是否携带鉴权参数。如果没有携带鉴权参数,认为请求非法,返回HTTP 403错误。
- 时间校验:判断系统当前时间是否在区间[timestamp,timestamp+有效时间]内。超出该区间,认为过期失效并返回HTTP 403错误。
- 加密串校验:时间校验通过后,比对服务器计算出来的md5hash值与访问请求中带的md5hash值是否相同,结果一致则认为鉴权通过并返回文件,否则鉴权失败返回HTTP 403错误。
2、配置说明:
参数 | 说明 |
---|---|
加密参数 | 默认为auth_key,也可自定义。 |
加密key | 设定的鉴权密钥。 |
鉴权URL有效时长 | 判断时间戳是否过期。 |
加密元素分隔符 | 默认使用中划线(-),也可自定义。 |
(二)鉴权方式B
1、原理说明
- 鉴权方式B访问URL构成:http://DomainName/timestamp/md5hash/FileName。
- 鉴权字段说明:
字段 | 描述 |
---|---|
DomainName | 服务域名。 |
Filename | 实际回源访问的URL,鉴权时Filename需以/开头。不包含?后面的参数。 |
timestamp | 鉴权服务器生成鉴权URL的时间,即:鉴权开始时间,值为从1970年1月1日0点至当前时间总秒数 ,十进制整数。 备注:与鉴权URL有效时长共同控制鉴权URL的失效时间。鉴权URL实际有效期=timestamp+配置的鉴权URL有效时长。 |
md5hash | 通过MD5算法计算出的32位字符串。计算公式如下:md5hash = md5sum(keytimestampFileName)。 备注1:md5加密元素分隔符默认无符号,也可自定义。 备注2:这里的key为用户设定的鉴权秘钥,长度6到32,由大小写字母与数字组成,例如:ctcdnkey123。 |
-
校验方法
服务器拿到请求后,会按照如下步骤进行校验:
- 时间校验:判断系统当前时间是否在区间[timestamp,timestamp+有效时间]内。超出该区间,认为过期失效并返回HTTP 403错误。
- 加密串校验:时间校验通过后,比对服务器计算出来的md5hash值与访问请求中带的md5hash值是否相同,结果一致则认为鉴权通过并返回文件,否则鉴权失败返回HTTP 403错误。
2、配置说明:
参数 | 说明 |
---|---|
加密key | 设定的鉴权密钥。 |
鉴权URL有效时长 | 判断时间戳是否过期。 |
加密元素分隔符 | 默认无符号,也可自定义。 |
(三)鉴权方式C
1、原理说明
- 鉴权方式C访问URL构成:http://DomainName/FileName?auth_key=md5hash×tamp=timestamp。
- 鉴权字段说明:
字段 | 描述 |
---|---|
DomainName | 服务域名。 |
Filename | 实际回源访问的URL,鉴权时Filename需以/开头。不包含?后面的参数。 |
auth_key | 设定的鉴权参数名,默认为auth_key,也可自定义。 |
timestamp | 鉴权服务器生成鉴权URL的时间,即:鉴权开始时间,值为从1970年1月1日0点至当前时间总秒数 ,十进制整数。 备注:与鉴权URL有效时长共同控制鉴权URL的失效时间。鉴权URL实际有效期=timestamp+配置的鉴权URL有效时长。 |
md5hash | 通过MD5算法计算出的32位字符串。计算公式如下:md5hash = md5sum(KeyFilenameTimestamp)。 备注1:md5加密元素分隔符默认无符号,也可自定义。 备注2:这里的key为用户设定的鉴权秘钥,长度6到32,由大小写字母与数字组成,例如:ctcdnkey123。 |
-
校验方法
服务器拿到请求后,会按照如下步骤进行校验:
- 是否携带鉴权参数。如果没有携带鉴权参数,认为请求非法,返回HTTP 403错误。
- 时间校验:判断系统当前时间是否在区间[timestamp,timestamp+有效时间]内。超出该区间,认为过期失效并返回HTTP 403错误。
- 加密串校验:时间校验通过后,比对服务器计算出来的md5hash值与访问请求中带的md5hash值是否相同,结果一致则认为鉴权通过并返回文件,否则鉴权失败返回HTTP 403错误。
2、配置说明:
参数 | 说明 |
---|---|
加密参数 | 默认为auth_key跟timestamp,也可自定义。 |
加密key | 设定的鉴权密钥。 |
鉴权URL有效时长 | 判断时间戳是否过期。 |
加密元素分隔符 | 默认无符号,也可自定义。 |