边缘加速
  • 站点加速
    • 概述
    • Quickly Import and Export Site Configuration
    • 访问控制
      • Token 鉴权
      • Authentication Method A
      • Authentication Method B
      • Authentication Method C
      • Authentication Method D
      • Authentication Method V
    • 智能加速
    • 文件优化
      • 智能压缩
    • 网络优化
      • HTTP/2
      • HTTP/3(QUIC)
        • 概述
        • 启用 HTTP/3
        • QUIC SDK
          • SDK 概览
          • SDK 下载和集成指引
          • 代码示例
            • Android
            • iOS
          • API 文档
            • Android
            • iOS
      • IPv6 访问
      • 最大上传大小
      • WebSocket
      • 携带客户端 IP 头部回源
      • 携带客户端 IP 地理位置头部回源
      • 开启 gRPC
    • URL 重写
      • 访问 URL 重定向
      • 回源 URL 重写
    • 修改头部
      • 修改 HTTP 节点响应头
      • 修改 HTTP 回源请求头
    • 自定义错误页面
    • 请求与响应行为
      • HTTP Response
      • 请求处理顺序
      • EdgeOne 默认 HTTP 回源请求头
      • EdgeOne 默认 HTTP 响应头
      • HTTP Restrictions
    • Media Services
      • Audio and Video Pre-pulling
      • Just-in-Time Image Processing
      • Just-in-Time Media Processing
      • VOD Media Origin
  • 四层代理
    • 概述
    • 新建四层代理实例
    • 修改四层代理实例配置
    • 停用/删除四层代理实例
    • 批量配置转发规则
    • 获取客户端真实IP
      • 通过 TOA 获取 TCP 协议客户端真实 IP
      • 通过 Proxy Protocol V1/V2 协议获取客户端真实 IP
        • 概述
        • 方式一:通过 Nginx 获取客户端真实 IP
        • 方式二:在业务服务器解析客户端真实 IP
        • Proxy Protocol V1/V2 获取的客户端真实 IP 格式
      • 通过 SPP 协议传递客户端真实 IP
  • 边缘 DNS
    • Overview
    • 托管域名 DNS 解析
      • 修改 DNS 服务器
      • 配置域名 DNS 解析记录
      • Batch Importing DNS Records
      • DNS 高级配置
      • Enumeration of Resolution Lines and Corresponding Codes
    • 接入加速域名
      • 添加加速域名
      • 站点/域名归属权验证
      • 修改 CNAME 解析
      • Verify Business Access
    • 别称域名
      • 概述
      • 配置指南
      • 通过别称域名批量接入 SaaS 建站域名
      • 别称域名实现业务的容灾
    • 流量调度
      • 流量调度管理
    • 源站配置
      • 回源配置
        • Origin-Pull Timeout
        • 配置回源 HTTPS
        • Host Header 重写
        • 回源请求参数设置
        • 回源跟随重定向
        • HTTP/2 回源
        • 分片回源
      • 负载均衡
        • 概述
        • 快速创建负载均衡实例
        • 健康检查策略介绍
        • 查看源站健康状态
        • 相关参考
          • 负载均衡相关概念
          • 请求重试策略介绍
      • 源站组操作指引
      • 相关参考
        • 旧版源站组兼容相关问题
      • 获取 EdgeOne 回源节点 IP
  • 边缘缓存
    • 概述
    • EdgeOne 缓存规则介绍
      • EdgeOne 内容缓存规则
      • 缓存键(Cache Key)介绍
      • Vary 特性
    • 缓存配置
      • 自定义 Cache Key
      • 节点缓存 TTL
      • 状态码缓存 TTL
      • 浏览器缓存 TTL
      • 离线缓存
      • 缓存预刷新
    • 清除和预热缓存
      • 清除缓存
      • 预热缓存
    • 如何提高 EdgeOne 的缓存命中率
  • 规则引擎
    • 概述
    • 规则引擎支持的匹配类型与操作
    • 规则管理
    • 变量

Authentication Method V

功能简介

为了强化视频场景的权限控制能力,EO 推出了 TypeV 鉴权的解决方案。该方案具备的能力如下:
支持在 URL 中指定过期时间,他人获取后无法长期使用;
支持在 URL 中将客户端 IP 纳入签名计算,他人获取后无法访问;
支持在 URL 中指定试看时长,实现试看功能;
支持在 URL 中指定 Referer 黑白名单;
支持在 URL 中指定从某个 unix 时间戳开始播放视频,实现伪直播功能;
开发者使用密钥KEY对 URL 签名,并在 URL 中带上签名结果。只要用户密钥不泄露,其他用户无法伪造加密 URL;
EdgeOne 节点检查加密 URL 中的参数和签名,对访问请求进行控制。如果请求检查不通过,则返回 403 响应码。

鉴权参数

如下为鉴权 URL 中各个参数的含义和取值方法。
参数名
必选
说明
KEY
开启 TypeV 鉴权时填写的密钥。由大小写字母(a -Z)、数字(0-9)以及特殊字符组成,长度在8-20个字符之间。支持在控制台中随机生成。
Path
原始 URL 的 PATH 部分。如果原始 URL 为 http://example.vod2.myqcloud.com/dir1/dir2/myVideo.mp4,则 Path 为 /dir1/dir2/myVideo.mp4。
t
访问 URL 的过期时间戳,单位为秒,以 Unix 时间的十六进制小写形式表示。
过期后该 URL 将不再有效,返回 403 响应码。考虑到机器之间可能存在时间差,鉴权 URL 的实际过期时间一般比指定的过期时间长 5 分钟,即额外给出 300 秒的容差时间。
建议过期时间戳不要过短,确保在有效时间内用户可完成下载或视频播放。
exper
试看时长,单位为秒,以十进制表示,不填或者填 0 表示不试看(即返回完整视频)。
试看时长不要超过视频原始时长,否则可能导致播放失败。
us
链接标识,用于随机化一个鉴权 URL,增强链接的唯一性。
建议每次生成鉴权 URL 时,指定一个随机的 us 值。
plive
单位为秒,以 Unix 时间的十六进制小写形式表示。用于实现伪直播功能,实现从指定的时间开始播放视频。
示例:若 plive 的值为 669f9b40,则代表对应加密请求的资源需要在 2024-07-23 20:00:00 后才允许访问。
whref
允许访问的域名来源列表,支持 1 条 - 10 条,用半角逗号分隔。域名前不要带协议名(http://和 https://),域名为完整匹配(如填写 abc.com,则仅能匹配到 abc.com,无法匹配到 abc.com.cn),且支持通配符(如 *.abc.com)。
bkref
禁止访问的域名来源列表,支持 1 条 - 10 条,用半角逗号分隔。域名前不要带协议名(http://和 https://),域名为完整匹配(如填写 abc.com,则仅能匹配到 abc.com,无法匹配到 abc.com.cn),且支持通配符(如 *.abc.com)。
whip
允许访问的客户端 IP 列表,支持 1 个 - 10 个,多个用半角逗号分隔。客户端 IP 支持 IP 以及 IP 段,如 192.168.0.0 或 192.168.0.0/24。其中,0.0.0.0/0 代表所有 ipv4,::/0 代表所有 ipv6。
客户端 IP 通过 X-Forwarded-For 头部 获取,当该头部值有多个时,则取第一个值。
bkip
禁止访问的客户端 IP 列表,支持 1 个 - 10 个,多个用半角逗号分隔。客户端 IP 支持 IP 以及 IP 段,如 192.168.0.0 或 192.168.0.0/24。其中,0.0.0.0/0 代表所有 ipv4,::/0 代表所有 ipv6。
客户端 IP 通过 X-Forwarded-For 头部 获取,当该头部值有多个时,则取第一个值。
sign
防盗链签名,以 40 个字符长的十六进制数表示,用于校验鉴权 URL 的合法性,签名校验失败将返回 403 响应码。计算方式参考:签名计算公式
说明:
对于 VOD 源站,支持上述全部参数,对于非 VOD 源站,不支持 us、plive 参数。

签名计算公式

sign = sha1(KEY + Path + t + plive + exper + us + whref + bkref + whip + bkip)
公式中的+代表字符串拼接,选填参数可以为空字符串。

防盗链 URL 生成规则

在原始 URL 尾部,以 QueryString 的方式加入防盗链参数,形如:
http://example.vod2.myqcloud.com/dir1/dir2/myVideo.mp4?t=[t]&exper=[exper]&us=[us]&whref=[whref]&whip=[whip]&sign=[sign]
注意:
公式中的+代表字符串拼接,选填参数可以为空字符串;
进行签名计算时,各参数必须严格按照签名计算公式的顺序,如果顺序不正确则会生成错误的签名。

配置示例

假设原始 URL 是 http://example.vod2.myqcloud.com/dir1/dir2/myVideo.mp4。该开发者配置了 TypeV 鉴权,生成的密钥是24FEQmTzro4V5u3D5epW,生成的随机字符串为 72d4cd1101
下面分别对“视频播放地址有效时间控制”、“同一鉴权 URL 仅允许一个客户端 IP 播放”和“视频允许播放客户端 IP”的场景,介绍如何生成鉴权 URL。


示例1:播放地址有效时间控制

若您需要为这个视频生成鉴权 URL,URL 的过期时间是 2018 年 01 月 31 日 20:00(Unix 时间为 1517400000),请参照如下步骤。

步骤1:确定鉴权参数

参数名
取值
说明
KEY
24FEQmTzro4V5u3D5epW
开发者开通 Key 防盗链时选择的密钥
Dir
/dir1/dir2/myVideo.mp4
原始 URL 的 Path 部分
t
5a71afc0
过期时间戳 1517400000 的十六进制表示结果
us
72d4cd1101
生成的随机字符串

步骤2:计算签名

sign = sha1("24FEQmTzro4V5u3D5epW/dir1/dir2/myVideo.mp45a71afc072d4cd1101") = "3ff5ab708b018fce5c3023b6d27ca938d7ab75e3"

步骤3:生成鉴权 URL

将鉴权参数拼接到视频原始 URL 的 QueryString 中,得到视频鉴权 URL:
http://example.vod2.myqcloud.com/dir1/dir2/myVideo.mp4?t=5a71afc0&us=72d4cd1101&sign=3ff5ab708b018fce5c3023b6d27ca938d7ab75e3

示例2:同一鉴权 URL 仅允许一个客户端 IP 访问

若您需要限制同一鉴权 URL 仅允许一个客户端 IP 访问,请参照如下步骤。

步骤1:确定鉴权参数

参数名
取值
说明
KEY
24FEQmTzro4V5u3D5epW
开发者开通 Key 防盗链时选择的密钥
Path
/dir1/dir2/myVideo.mp4
原始 URL 的 Path 部分
t
5a71afc0
过期时间戳 1517400000 的十六进制表示结果
us
72d4cd1101
生成的随机字符串
whip
192.168.0.0
允许访问的客户端 IP

步骤2:计算签名

sign = sha1("24FEQmTzro4V5u3D5epW/dir1/dir2/5a71afc072d4cd1101192.168.0.0") = "c8cd894ef4ee0387c99ac488f46bbe8205bc63af"

步骤3:生成鉴权 URL

将鉴权参数拼接到视频原始 URL 的 QueryString 中,得到视频鉴权 URL:
http://example.vod2.myqcloud.com/dir1/dir2/myVideo.mp4?t=5a71afc0&us=72d4cd1101&whip=192.168.0.0&sign=c8cd894ef4ee0387c99ac488f46bbe8205bc63af

示例3:允许播放时长控制

若您需要生成一个试看 URL,试看时长为视频的前 5 分钟(视频原始时长大于 5 分钟),请参照如下步骤。

步骤1:确定鉴权参数

参数名
取值
说明
KEY
24FEQmTzro4V5u3D5epW
开发者开通 Key 防盗链时选择的密钥
Path
/dir1/dir2/myVideo.mp4
原始 URL 的 Path 部分
t
5a71afc0
过期时间戳 1517400000 的十六进制表示结果
exper
300
试看前 5 分钟,即 300 秒
us
72d4cd1101
生成的随机字符串

步骤2:计算签名

sign = sha1("24FEQmTzro4V5u3D5epW/dir1/dir2/myVideo.mp45a71afc030072d4cd1101") = "3a50217aff3e39fbf795b8db40925bc61735fe83"

步骤3:生成鉴权 URL

将鉴权参数拼接到视频原始 URL 的 QueryString 中,得到视频鉴权 URL:
http://example.vod2.myqcloud.com/dir1/dir2/myVideo.mp4?t=5a71afc0&exper=300&us=72d4cd1101&sign=3a50217aff3e39fbf795b8db40925bc61735fe83