为保障直播资源不被非法盗用,您可以使用 URL 鉴权功能,在原始的推流或拉流地址末尾添加鉴权信息。当用户使用带有鉴权信息的 URL 发起推流或拉流请求时,视频直播服务端会对鉴权参数进行校验。只有通过校验的请求才会被响应,未通过校验的请求将被拒绝。本文介绍如何通过控制台配置 URL 鉴权。
适用范围
URL 鉴权适用于推流和拉流域名。
- 配置推流域名的 URL 鉴权:用于控制哪些 URL 可以推流,从而防止未经授权的用户进行直播推流,保护直播内容的来源。推流域名目前仅支持配置 B 类型的 URL 鉴权。
- 配置拉流域名的 URL 鉴权:用于控制哪些 URL 可以拉流,确保只有通过特定 URL 才能够观看直播。拉流域名支持配置 A 类型、B 类型和 C 类型的 URL 鉴权。
前提条件
已完成添加域名。
URL 鉴权流程
- 客户服务端生成鉴权 URL,并将鉴权 URL 提供给用户。
- 用户使用鉴权 URL,向视频直播服务端发起推流或拉流请求。
- 视频直播服务端对鉴权 URL 中的鉴权参数进行校验。通过与请求中的鉴权参数进行对比,判断请求是否合法。
- 请求合法:响应请求。用户可以正常推流或拉流。
- 请求不合法:返回 403 错误,拒绝请求。用户无法推流或拉流,从而保护直播资源。
操作步骤
登录视频直播控制台。
在左侧导航栏,单击域名管理。
在域名管理页面,找到需要配置的推流域名或拉流域名,单击操作列的域名配置,进入域名配置页面。
单击访问控制页签。
打开 URL鉴权开关,或单击 URL鉴权区域的编辑配置。
在弹出的编辑 URL 鉴权对话框中,根据您的业务需求选择以下任一鉴权方式,并完成以下配置。
以上鉴权方式均采用 MD5 加密算法。
完成 URL 鉴权配置约 5 分钟后,用户仅能通过鉴权 URL 推流或拉流,而无法通过原始 URL 推流或拉流。
说明
- 系统默认会为推流域名开启 URL 鉴权。
- 目前推流域名仅支持 B 类鉴权方式。
- 如果以上鉴权方式无法满足您的业务需求,请创建工单联系技术支持,完成 URL 自定义鉴权配置。
获取鉴权 URL。
您可以参考 A 类鉴权方式、B 类鉴权方式或 C 类鉴权方式的介绍,自行拼接鉴权 URL,也可以通过以下步骤,通过地址生成器获取鉴权 URL。
说明
通过 URL 自定义鉴权配置的域名,如需获取鉴权 URL,可根据自定义鉴权规则自行拼接或创建工单联系技术支持。
- 在左侧导航栏,选择地址生成器。
- 选择推流地址或拉流地址。
- 选择域名,配置 AppName、StreamName 和过期时间。详见地址生成器。
- 单击生成推流地址或生成拉流地址。
- 在页面右侧,获取鉴权 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
鉴权流程
- 视频直播服务端收到用户鉴权 URL 的请求后,对
{URI}-{timestamp}-{rand}-{uid}-{key} 取值进行 MD5 加密生成 32 位小写字符串。在本文示例中,最终生成的字符串为 fbe5e26c0b7abe1431c3c897f7bdc278。 - 视频直播服务端对鉴权 URL 中的鉴权参数进行校验。如果同时满足以下校验,则校验通过。
- 判断服务端计算出的签名值和请求中的签名值是否一致。一致,则校验通过。在本文示例中,签名值为
auth_key=1758296819-123e4567-0-fbe5e26c0b7abe1431c3c897f7bdc278。 - 判断签名是否失效。服务端将当前时间与签名失效时间(
timestamp + 有效时长)进行对比。如果签名失效时间晚于当前时间,则判定签名未失效,校验通过。
说明
- 对于 RTMP、FLV 等用于长时间直播拉流的协议,当用户发起拉流请求时,视频直播服务端会对鉴权参数进行校验。一旦校验通过,用户可以持续拉流,不受签名失效时间的影响。因此,只要在签名失效前已经发起请求,拉流就不会因签名失效而中止。仅新发起的拉流请求会因签名失效而失败。
- HLS 协议用于分段视频播放,用户会不断地发起新的拉流请求以获取视频片段。用户每次发起拉流请求时,视频直播服务端均会对鉴权参数进行校验。因此,一旦签名失效,请求将被拒绝,导致播放中断。由于直播播放过程中会频繁请求新的片段,因此建议设置较长的签名失效时间,以避免直播中途播放失败。
- 根据校验结果,判断请求是否合法。
- 校验通过:请求合法,响应请求。用户可以正常拉流。
- 校验未通过:请求不合法,返回 403 错误,拒绝请求。用户无法拉流,从而保护直播资源。
控制台配置

配置项 | 描述 |
|---|
主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
鉴权流程
- 视频直播服务端收到用户鉴权 URL 的请求后,对
/{AppName}/{StreamName}{key}{timestamp}取值进行 MD5 加密生成 32 位小写字符串。在本文示例中,最终生成的字符串为 1e2ea5d60de5adcf5e4b7688ccd76915。 - 视频直播服务端对鉴权 URL 中的鉴权参数进行校验。如果同时满足以下校验,则校验通过。
- 判断服务端计算出的签名值和请求中的签名值是否一致。一致,则校验通过。在本文示例中,签名值为
volcSecret=1e2ea5d60de5adcf5e4b7688ccd76915&volcTime=1758296819。 - 判断签名是否失效。服务端将当前时间与签名失效时间(
timestamp + 有效时长)进行对比。如果签名失效时间晚于当前时间,则判定签名未失效,校验通过。
说明
- 对于 RTMP、FLV 等用于长时间直播推流或拉流的协议,当用户发起推流或拉流请求时,视频直播服务端会对鉴权参数进行校验。一旦校验通过,用户可以持续推流或拉流,不受签名失效时间的影响。因此,只要在签名失效前已经发起请求,推流或拉流就不会因签名失效而中止。仅新发起的推流或拉流请求会因签名失效而失败。
- HLS 协议用于分段视频播放,用户会不断地发起新的拉流请求以获取视频片段。用户每次发起拉流请求时,视频直播服务端均会对鉴权参数进行校验。因此,一旦签名失效,请求将被拒绝,导致播放中断。由于直播播放过程中会频繁请求新的片段,因此建议设置较长的签名失效时间,以避免直播中途播放失败。
- 根据校验结果,判断请求是否合法。
- 校验通过:请求合法,响应请求。用户可以正常推流或拉流。
- 校验未通过:请求不合法,返回 403 错误,拒绝请求。用户无法推流或拉流,从而保护直播资源。
控制台配置

配置项 | 描述 |
|---|
主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
鉴权流程
- 视频直播服务端收到用户鉴权 URL 的请求后,对
{key}{StreamName}{timestamp} 取值进行 MD5 加密生成 32 位小写字符串。在本文示例中,最终生成的字符串为 73af6af9c874d9d4cc50f8490325cd7b。 - 视频直播服务端对鉴权 URL 中的鉴权参数进行校验。如果同时满足以下校验,则校验通过。
- 判断服务端计算出的签名值和请求中的签名值是否一致。一致,则校验通过。在本文示例中,签名值为
txSecret=73af6af9c874d9d4cc50f8490325cd7b&txTime=68cd7af3。 - 判断签名是否失效。服务端将当前时间与签名失效时间(
timestamp + 有效时长)进行对比。如果签名失效时间晚于当前时间,则判定签名未失效,校验通过。
说明
- 对于 RTMP、FLV 等用于长时间直播拉流的协议,当用户发起拉流请求时,视频直播服务端会对鉴权参数进行校验。一旦校验通过,用户可以持续拉流,不受签名失效时间的影响。因此,只要在签名失效前已经发起请求,拉流就不会因签名失效而中止。仅新发起的拉流请求会因签名失效而失败。
- HLS 协议用于分段视频播放,用户会不断地发起新的拉流请求以获取视频片段。用户每次发起拉流请求时,视频直播服务端均会对鉴权参数进行校验。因此,一旦签名失效,请求将被拒绝,导致播放中断。由于直播播放过程中会频繁请求新的片段,因此建议设置较长的签名失效时间,以避免直播中途播放失败。
- 根据校验结果,判断请求是否合法。
- 校验通过:请求合法,响应请求。用户可以正常拉流。
- 校验未通过:请求不合法,返回 403 错误,拒绝请求。用户无法拉流,从而保护直播资源。
控制台配置

配置项 | 描述 |
|---|
主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 的时间格式。默认为十六进制。取值如下:
|