You need to enable JavaScript to run this app.
导航
直播拉流旁路鉴权
最近更新时间:2023.08.04 14:45:27首次发布时间:2022.07.04 18:25:44

直播拉流旁路鉴权是一种在拉流时,通过第三方授权服务器完成鉴权的方法。观众使用播放器观看直播,播放器可以先从视频直播的资源服务器拉流,视频直播向第三方授权服务器发起异步鉴权。

  • 如果鉴权通过,播放器可以继续拉取直播内容;
  • 如果鉴权失败,视频直播将不允许播放器继续拉流。

鉴权流程

注意事项

  1. 旁路鉴权逻辑不依赖拉流请求中的 token。开通旁路鉴权后,拉流请求中是否包含 token,都会发起鉴权请求。
  2. 如果返回码不等于 200,则会根据您自定义的重试机制,进行重试;如果重试失败,则向接收回调的服务器发送回调请求。
  3. 如果请求授权服务器重试失败,默认允许拉流。
  4. 第三方鉴权接口返回参数 code 不等于 0 时,断开用户拉流。

配置步骤

开启旁路鉴权

如需开启拉流旁路鉴权,您需要发起工单申请,并根据下表提供配置信息。

字段格式说明
domainString拉流域名
appStringApp 名称,填写星号 * ,表示对全部 App 生效
auth_urlString第三方授权服务器地址。例如,您使用自己的鉴权服务器,则填写该服务器的鉴权请求地址
retry_timesInt请求鉴权服务器失败后的重试次数
retry_internal_secondInt请求授权服务器失败重试间隔,单位为秒
timeout_secondInt请求授权服务器失败超时时间,单位为秒

fail_call_bk_url

String

接收失败回调的服务器地址。以下场景可收到回调消息。

  • 访问授权服务器失败;
  • 授权服务器服务器返回的状态码不是 200;
  • 授权服务器返回的数据格式不满足要求。

发送回调请求,请求格式同鉴权请求

旁路鉴权

开通旁路鉴权服务后,当播放器向视频直播发起拉流请求后,视频直播会向第三方授权服务器地址 auth_url 发起异步鉴权。因此,您需要按照如下要求,设计获取鉴权结果的接口。

请求说明

  • 接口功能:获取旁路鉴权结果
  • 接口名称:需要您进行自定义
  • 请求方式:POST
  • 接口地址:需要您进行自定义

请求参数

第三方授权服务器请求数据为 JSON 格式,包含如下参数。

参数数据类型是否必须描述
domainString拉流域名。来自于拉流 url
appStringApp 名称,来自于拉流 url
stream_nameString流名称,来自于拉流 url
ipString观众的 IP 地址
cdnipStringCDN IP 地址
tokenString鉴权信息,来自于拉流 url

返回参数

第三方授权服务器返回数据需要使用 JSON 格式,包含如下参数。

说明

当状态码为 200, 返回参数 code 不为 0 时,表示鉴权失败,将停止拉流。

参数字段类型是否必须描述

code

Int

结果编码。

  • 用取值为 0,表示鉴权通过;
  • 用其他取值,表示鉴权失败。
msgString错误描述信息。CDN 不处理
log_idString日志 ID。CDN 不处理

请求示例

{
    "domain":"pull.example.com",
    "app":"stage",
    "stream_name":"stream-123456",
    "ip": "1.1.1.1",
    "cdnip": "2.2.2.2",
    "token": "this-is-a-token-query-value"
}

返回示例

{
    "code": 0, 
    "msg": "pass",
    "log_id": "123467"
}

(按需)发送失败回调

满足以下条件时,视频直播会向指定的接收回调消息地址 fail_call_bk_url,发送回调请求。

  • 访问授权服务器失败;
  • 授权服务器返回的状态码不是 200;
  • 授权服务器返回的数据格式不满足要求。

回调格式如表所示。

参数数据类型是否必须描述
domainString拉流域名。来自于拉流 url
appStringApp 名称,来自于拉流 url
stream_nameString流名称,来自于拉流 url
ipString观众的 IP 地址
cdnipStringCDN IP 地址
tokenString鉴权信息,来自于拉流 url