You need to enable JavaScript to run this app.
导航
配置 URL 鉴权
最近更新时间:2025.09.29 16:54:42首次发布时间:2024.06.24 22:19:45
复制全文
我的收藏
有用
有用
无用
无用

为保障直播资源不被非法盗用,您可以使用 URL 鉴权功能,在原始的推流或拉流地址末尾添加鉴权信息。当用户使用带有鉴权信息的 URL 发起推流或拉流请求时,视频直播服务端会对鉴权参数进行校验。只有通过校验的请求才会被响应,未通过校验的请求将被拒绝。本文介绍如何通过控制台配置 URL 鉴权。

适用范围

URL 鉴权适用于推流和拉流域名。

  • 配置推流域名的 URL 鉴权:用于控制哪些 URL 可以推流,从而防止未经授权的用户进行直播推流,保护直播内容的来源。推流域名目前仅支持配置 B 类型的 URL 鉴权。
  • 配置拉流域名的 URL 鉴权:用于控制哪些 URL 可以拉流,确保只有通过特定 URL 才能够观看直播。拉流域名支持配置 A 类型、B 类型和 C 类型的 URL 鉴权。

前提条件

已完成添加域名

URL 鉴权流程
  1. 客户服务端生成鉴权 URL,并将鉴权 URL 提供给用户。
  2. 用户使用鉴权 URL,向视频直播服务端发起推流或拉流请求。
  3. 视频直播服务端对鉴权 URL 中的鉴权参数进行校验。通过与请求中的鉴权参数进行对比,判断请求是否合法。
    • 请求合法:响应请求。用户可以正常推流或拉流。
    • 请求不合法:返回 403 错误,拒绝请求。用户无法推流或拉流,从而保护直播资源。

操作步骤
  1. 登录视频直播控制台

  2. 在左侧导航栏,单击域名管理

  3. 域名管理页面,找到需要配置的推流域名或拉流域名,单击操作列的域名配置,进入域名配置页面。

  4. 单击访问控制页签。

  5. 打开 URL鉴权开关,或单击 URL鉴权区域的编辑配置

  6. 在弹出的编辑 URL 鉴权对话框中,根据您的业务需求选择以下任一鉴权方式,并完成以下配置。

    以上鉴权方式均采用 MD5 加密算法。
    完成 URL 鉴权配置约 5 分钟后,用户仅能通过鉴权 URL 推流或拉流,而无法通过原始 URL 推流或拉流。

    说明

    • 系统默认会为推流域名开启 URL 鉴权。
    • 目前推流域名仅支持 B 类鉴权方式。
    • 如果以上鉴权方式无法满足您的业务需求,请创建工单联系技术支持,完成 URL 自定义鉴权配置。
  7. 获取鉴权 URL。
    您可以参考 A 类鉴权方式B 类鉴权方式C 类鉴权方式的介绍,自行拼接鉴权 URL,也可以通过以下步骤,通过地址生成器获取鉴权 URL。

    说明

    通过 URL 自定义鉴权配置的域名,如需获取鉴权 URL,可根据自定义鉴权规则自行拼接或创建工单联系技术支持。

    1. 在左侧导航栏,选择地址生成器
    2. 选择推流地址拉流地址
    3. 选择域名,配置 AppNameStreamName过期时间。详见地址生成器
    4. 单击生成推流地址生成拉流地址
    5. 在页面右侧,获取鉴权 URL。

A 类鉴权方式

工作原理

鉴权 URL 格式:

原始URL?auth_key={timestamp}-{rand}-{uid}-{md5hash}

字段

描述

示例值

auth_key

签名参数的名称。可在控制台的编辑 URL 鉴权对话框中配置。

auth_key

timestamp

Unix 时间戳,单位为秒。支持十进制或十六进制,且必须与控制台的编辑 URL 鉴权对话框中配置的时间格式一致。
该字段与编辑 URL 鉴权对话框中配置的有效时长搭配使用,可用于计算签名的最终失效时间。签名失效后,用户无法通过鉴权 URL 拉流。
签名的失效时间 = timestamp + 有效时长。例如,timestamp 取值为 1758296819(2025-09-19 23:46:59),有效时长为 600 秒,则签名的失效时间为 1758297419(2025-09-19 23:56:59)。

1758296819

rand

随机数,可使用 UUID(Universally Unique Identifier,通用唯一识别码)格式,不能包含中划线(-)。

说明

通过控制台的地址生成器生成鉴权 URL 时,该字段取值固定为 0

123e4567

uid

用户 ID。预留参数,暂未使用,设置为 0 即可。

0

md5hash

通过 MD5 加密算法计算出的 32 位小写字符串。
计算公式如下所示:

sstring = "{URI}-{timestamp}-{rand}-{uid}-{key}"
md5hash = md5sum(sstring)

其中,

  • URI:原始 URL 中从域名后开始到最后的路径。例如原始 URL 为 http://pull.example.com/live/test.flv,则 URI 取值为 /live/test.flv
  • key:主密钥或备密钥。可在控制台的编辑 URL 鉴权对话框中配置。例如 123abc

在该示例中,{URI}-{timestamp}-{rand}-{uid}-{key} 取值为 /live/test.flv-1758296819-123e4567-0-123abc,对该取值进行 MD5 加密生成 32 位小写字符串,则 md5hash 取值为 fbe5e26c0b7abe1431c3c897f7bdc278

fbe5e26c0b7abe1431c3c897f7bdc278

鉴权 URL 示例:

http://pull.example.com/live/test.flv?auth_key=1758296819-123e4567-0-fbe5e26c0b7abe1431c3c897f7bdc278

鉴权流程

  1. 视频直播服务端收到用户鉴权 URL 的请求后,对 {URI}-{timestamp}-{rand}-{uid}-{key} 取值进行 MD5 加密生成 32 位小写字符串。在本文示例中,最终生成的字符串为 fbe5e26c0b7abe1431c3c897f7bdc278
  2. 视频直播服务端对鉴权 URL 中的鉴权参数进行校验。如果同时满足以下校验,则校验通过。
    • 判断服务端计算出的签名值和请求中的签名值是否一致。一致,则校验通过。在本文示例中,签名值为 auth_key=1758296819-123e4567-0-fbe5e26c0b7abe1431c3c897f7bdc278
    • 判断签名是否失效。服务端将当前时间与签名失效时间(timestamp + 有效时长)进行对比。如果签名失效时间晚于当前时间,则判定签名未失效,校验通过。

    说明

    • 对于 RTMP、FLV 等用于长时间直播拉流的协议,当用户发起拉流请求时,视频直播服务端会对鉴权参数进行校验。一旦校验通过,用户可以持续拉流,不受签名失效时间的影响。因此,只要在签名失效前已经发起请求,拉流就不会因签名失效而中止。仅新发起的拉流请求会因签名失效而失败。
    • HLS 协议用于分段视频播放,用户会不断地发起新的拉流请求以获取视频片段。用户每次发起拉流请求时,视频直播服务端均会对鉴权参数进行校验。因此,一旦签名失效,请求将被拒绝,导致播放中断。由于直播播放过程中会频繁请求新的片段,因此建议设置较长的签名失效时间,以避免直播中途播放失败。
  3. 根据校验结果,判断请求是否合法。
    • 校验通过:请求合法,响应请求。用户可以正常拉流。
    • 校验未通过:请求不合法,返回 403 错误,拒绝请求。用户无法拉流,从而保护直播资源。

控制台配置

Image

配置项

描述

主KEY

主密钥。
支持输入 1-100 个字符,可包含数字(0-9)、小写英文字母(a-z)和大写英文字母(A-Z)。
您也可以单击输入框右侧的图标,随机生成包含数字和大小写英文字母的、 长度为 24 个字符的密钥。

备KEY

备密钥,可用于平滑更换主密钥。
支持输入 1-100 个字符,可包含数字(0-9)、小写英文字母(a-z)和大写英文字母(A-Z)。
您也可以单击输入框右侧的图标,随机生成包含数字和大小写英文字母的、 长度为 24 个字符的密钥。

说明

为避免线上业务中断,在更换主密钥时,可以使用备密钥生成鉴权 URL,实现平滑过渡。在过渡期间,可将鉴权 URL 替换为备密钥生成的版本,待主密钥更换后,再逐步替换为新的主密钥生成的鉴权 URL。

签名参数

签名参数的名称。默认值为 auth_key
支持输入 1-100 个字符,可包含:

  • 数字(0-9)
  • 小写英文字母(a-z)
  • 大写英文字母(A-Z)
  • 下划线(_)
  • 中划线(-)
  • 点(.)
  • 逗号(,)
  • 感叹号(!)

说明

必须至少包含一个字母。

有效时长

签名的有效时长。单位为秒。默认值为 600,取值范围为 [0,2592000]。
该参数与鉴权 URL 中的 timestamp 参数搭配使用,可用于计算签名的最终失效时间。签名失效后,用户无法通过鉴权 URL 拉流。
签名的失效时间 = timestamp + 有效时长。例如,timestamp 取值为 1758296819(2025-09-19 23:46:59),有效时长为 600 秒,则签名的失效时间为 1758297419(2025-09-19 23:56:59)。

时间格式

timestamp 的时间格式。默认为十进制。取值如下:

  • 十进制
  • 十六进制

B 类鉴权方式

工作原理

鉴权 URL 格式:

原始URL?volcSecret=md5(/{AppName}/{StreamName}{key}{timestamp})&volcTime=timestamp

字段

描述

示例值

volcSecret

签名参数的名称。可在控制台的编辑 URL 鉴权对话框中配置。

volcSecret

AppName

直播流地址的 AppName 字段取值。长度为 1 到 30 个字符,可包含:

  • 数字(0-9)
  • 小写英文字母(a-z)
  • 大写英文字母(A-Z)
  • 下划线(_)
  • 中划线(-)
  • 点(.)

例如原始 URL 为 http://pull.example.com/live/test.flv,则 AppName 取值为 live

live

StreamName

直播流地址的 StreamName 字段取值。长度为 1 到 100 个字符,可包含:

  • 数字(0-9)
  • 小写英文字母(a-z)
  • 大写英文字母(A-Z)
  • 下划线(_)
  • 中划线(-)

例如原始 URL 为 http://pull.example.com/live/test.flv,则 StreamName 取值为 test

test

key

主密钥或备密钥。可在控制台的编辑 URL 鉴权对话框中配置。

123abc

timestamp

Unix 时间戳,单位为秒。支持十进制或十六进制,且必须与控制台的编辑 URL 鉴权对话框中配置的时间格式一致。
该字段与编辑 URL 鉴权对话框中配置的有效时长搭配使用,可用于计算签名的最终失效时间。签名失效后,用户无法通过鉴权 URL 推流或拉流。
签名的失效时间 = timestamp + 有效时长。例如,timestamp 取值为 1758296819(2025-09-19 23:46:59),有效时长为 600 秒,则签名的失效时间为 1758297419(2025-09-19 23:56:59)。

1758296819

volcTime

时间戳参数的名称。可在控制台的编辑 URL 鉴权对话框中配置。

volcTime

基于 md5(/{AppName}/{StreamName}{key}{timestamp}) 计算签名值。在本文示例中,/{AppName}/{StreamName}{key}{timestamp} 取值为 /live/test123abc1758296819,对该取值进行 MD5 加密生成 32 位小写字符串,则获得 1e2ea5d60de5adcf5e4b7688ccd76915
鉴权 URL 示例:

http://pull.example.com/live/test.flv?volcSecret=1e2ea5d60de5adcf5e4b7688ccd76915&volcTime=1758296819

鉴权流程

  1. 视频直播服务端收到用户鉴权 URL 的请求后,对 /{AppName}/{StreamName}{key}{timestamp}取值进行 MD5 加密生成 32 位小写字符串。在本文示例中,最终生成的字符串为 1e2ea5d60de5adcf5e4b7688ccd76915
  2. 视频直播服务端对鉴权 URL 中的鉴权参数进行校验。如果同时满足以下校验,则校验通过。
    • 判断服务端计算出的签名值和请求中的签名值是否一致。一致,则校验通过。在本文示例中,签名值为 volcSecret=1e2ea5d60de5adcf5e4b7688ccd76915&volcTime=1758296819
    • 判断签名是否失效。服务端将当前时间与签名失效时间(timestamp + 有效时长)进行对比。如果签名失效时间晚于当前时间,则判定签名未失效,校验通过。

    说明

    • 对于 RTMP、FLV 等用于长时间直播推流或拉流的协议,当用户发起推流或拉流请求时,视频直播服务端会对鉴权参数进行校验。一旦校验通过,用户可以持续推流或拉流,不受签名失效时间的影响。因此,只要在签名失效前已经发起请求,推流或拉流就不会因签名失效而中止。仅新发起的推流或拉流请求会因签名失效而失败。
    • HLS 协议用于分段视频播放,用户会不断地发起新的拉流请求以获取视频片段。用户每次发起拉流请求时,视频直播服务端均会对鉴权参数进行校验。因此,一旦签名失效,请求将被拒绝,导致播放中断。由于直播播放过程中会频繁请求新的片段,因此建议设置较长的签名失效时间,以避免直播中途播放失败。
  3. 根据校验结果,判断请求是否合法。
    • 校验通过:请求合法,响应请求。用户可以正常推流或拉流。
    • 校验未通过:请求不合法,返回 403 错误,拒绝请求。用户无法推流或拉流,从而保护直播资源。

控制台配置

Image

配置项

描述

主KEY

主密钥。
支持输入 1-100 个字符,可包含数字(0-9)、小写英文字母(a-z)和大写英文字母(A-Z)。
您也可以单击输入框右侧的图标,随机生成包含数字和大小写英文字母的、 长度为 24 个字符的密钥。

备KEY

备密钥,可用于平滑更换主密钥。
支持输入 1-100 个字符,可包含数字(0-9)、小写英文字母(a-z)和大写英文字母(A-Z)。
您也可以单击输入框右侧的图标,随机生成包含数字和大小写英文字母的、 长度为 24 个字符的密钥。

说明

为避免线上业务中断,在更换主密钥时,可以使用备密钥生成鉴权 URL,实现平滑过渡。在过渡期间,可将鉴权 URL 替换为备密钥生成的版本,待主密钥更换后,再逐步替换为新的主密钥生成的鉴权 URL。

签名参数

签名参数的名称。默认值为 volcSecret
支持输入 1-100 个字符,可包含:

  • 数字(0-9)
  • 小写英文字母(a-z)
  • 大写英文字母(A-Z)
  • 下划线(_)
  • 中划线(-)
  • 点(.)
  • 逗号(,)
  • 感叹号(!)

说明

  • 必须至少包含一个字母。
  • 签名参数与时间戳参数不能同名。

时间戳参数

时间戳参数的名称。默认值为 volcTime
支持输入 1-100 个字符,可包含:

  • 数字(0-9)
  • 小写英文字母(a-z)
  • 大写英文字母(A-Z)
  • 下划线(_)
  • 中划线(-)
  • 点(.)
  • 逗号(,)
  • 感叹号(!)

说明

  • 必须至少包含一个字母。
  • 签名参数与时间戳参数不能同名。

有效时长

签名的有效时长。单位为秒。默认值为 600,取值范围为 [0,2592000]。
该参数与鉴权 URL 中的 timestamp 参数搭配使用,可用于计算签名的最终失效时间。签名失效后,用户无法通过鉴权 URL 推流或拉流。
签名的失效时间 = timestamp + 有效时长。例如,timestamp 取值为 1758296819(2025-09-19 23:46:59),有效时长为 600 秒,则签名的失效时间为 1758297419(2025-09-19 23:56:59)。

时间格式

timestamp 的时间格式。默认为十进制。取值如下:

  • 十进制
  • 十六进制

说明

推流域名仅支持十进制。

C 类鉴权方式

工作原理

鉴权 URL 格式:

原始URL?txSecret=md5({key}{StreamName}{timestamp})&txTime=timestamp

字段

描述

示例值

txSecret

签名参数的名称。可在控制台的编辑 URL 鉴权对话框中配置。

txSecret

key

主密钥或备密钥。可在控制台的编辑 URL 鉴权对话框中配置。

123abc

StreamName

直播流地址的 StreamName 字段取值。长度为 1 到 100 个字符,可包含:

  • 数字(0-9)
  • 小写英文字母(a-z)
  • 大写英文字母(A-Z)
  • 下划线(_)
  • 中划线(-)

例如原始 URL 为 http://pull.example.com/live/test.flv,则 StreamName 取值为 test

test

timestamp

Unix 时间戳,单位为秒。支持十进制或十六进制,且必须与控制台的编辑 URL 鉴权对话框中配置的时间格式一致。
该字段与编辑 URL 鉴权对话框中配置的有效时长搭配使用,可用于计算签名的最终失效时间。签名失效后,用户无法通过鉴权 URL 拉流。
签名的失效时间 = timestamp + 有效时长。例如,timestamp 取值为 68cd7af3(2025-09-19 23:46:59),有效时长为 600 秒,则签名的失效时间为 68cd7d4b(2025-09-19 23:56:59)。

68cd7af3

txTime

时间戳参数的名称。可在控制台的编辑 URL 鉴权对话框中配置。

txTime

基于 md5({key}{StreamName}{timestamp}) 计算签名值。在本文示例中,{key}{StreamName}{timestamp} 取值为 123abctest68cd7af3,对该取值进行 MD5 加密生成 32 位小写字符串,则获得 73af6af9c874d9d4cc50f8490325cd7b
鉴权 URL 示例:

http://pull.example.com/live/test.flv?txSecret=73af6af9c874d9d4cc50f8490325cd7b&txTime=68cd7af3

鉴权流程

  1. 视频直播服务端收到用户鉴权 URL 的请求后,对 {key}{StreamName}{timestamp} 取值进行 MD5 加密生成 32 位小写字符串。在本文示例中,最终生成的字符串为 73af6af9c874d9d4cc50f8490325cd7b
  2. 视频直播服务端对鉴权 URL 中的鉴权参数进行校验。如果同时满足以下校验,则校验通过。
    • 判断服务端计算出的签名值和请求中的签名值是否一致。一致,则校验通过。在本文示例中,签名值为 txSecret=73af6af9c874d9d4cc50f8490325cd7b&txTime=68cd7af3
    • 判断签名是否失效。服务端将当前时间与签名失效时间(timestamp + 有效时长)进行对比。如果签名失效时间晚于当前时间,则判定签名未失效,校验通过。

    说明

    • 对于 RTMP、FLV 等用于长时间直播拉流的协议,当用户发起拉流请求时,视频直播服务端会对鉴权参数进行校验。一旦校验通过,用户可以持续拉流,不受签名失效时间的影响。因此,只要在签名失效前已经发起请求,拉流就不会因签名失效而中止。仅新发起的拉流请求会因签名失效而失败。
    • HLS 协议用于分段视频播放,用户会不断地发起新的拉流请求以获取视频片段。用户每次发起拉流请求时,视频直播服务端均会对鉴权参数进行校验。因此,一旦签名失效,请求将被拒绝,导致播放中断。由于直播播放过程中会频繁请求新的片段,因此建议设置较长的签名失效时间,以避免直播中途播放失败。
  3. 根据校验结果,判断请求是否合法。
    • 校验通过:请求合法,响应请求。用户可以正常拉流。
    • 校验未通过:请求不合法,返回 403 错误,拒绝请求。用户无法拉流,从而保护直播资源。

控制台配置

Image

配置项

描述

主KEY

主密钥。
支持输入 1-100 个字符,可包含数字(0-9)、小写英文字母(a-z)和大写英文字母(A-Z)。
您也可以单击输入框右侧的图标,随机生成包含数字和大小写英文字母的、 长度为 24 个字符的密钥。

备KEY

备密钥,可用于平滑更换主密钥。
支持输入 1-100 个字符,可包含数字(0-9)、小写英文字母(a-z)和大写英文字母(A-Z)。
您也可以单击输入框右侧的图标,随机生成包含数字和大小写英文字母的、 长度为 24 个字符的密钥。

说明

为避免线上业务中断,在更换主密钥时,可以使用备密钥生成鉴权 URL,实现平滑过渡。在过渡期间,可将鉴权 URL 替换为备密钥生成的版本,待主密钥更换后,再逐步替换为新的主密钥生成的鉴权 URL。

签名参数

签名参数的名称。默认值为 txSecret
支持输入 1-100 个字符,可包含:

  • 数字(0-9)
  • 小写英文字母(a-z)
  • 大写英文字母(A-Z)
  • 下划线(_)
  • 中划线(-)
  • 点(.)
  • 逗号(,)
  • 感叹号(!)

说明

  • 必须至少包含一个字母。
  • 签名参数与时间戳参数不能同名。

时间戳参数

时间戳参数的名称。默认值为 txTime
支持输入 1-100 个字符,可包含:

  • 数字(0-9)
  • 小写英文字母(a-z)
  • 大写英文字母(A-Z)
  • 下划线(_)
  • 中划线(-)
  • 点(.)
  • 逗号(,)
  • 感叹号(!)

说明

  • 必须至少包含一个字母。
  • 签名参数与时间戳参数不能同名。

有效时长

签名的有效时长。单位为秒。默认值为 600,取值范围为 [0,2592000]。
该参数与鉴权 URL 中的 timestamp 参数搭配使用,可用于计算签名的最终失效时间。签名失效后,用户无法通过鉴权 URL 拉流。
签名的失效时间 = timestamp + 有效时长。例如,timestamp 取值为 68cd7af3(2025-09-19 23:46:59),有效时长为 600 秒,则签名的失效时间为 68cd7d4b(2025-09-19 23:56:59)。

时间格式

timestamp 的时间格式。默认为十六进制。取值如下:

  • 十进制
  • 十六进制