资讯详情

开源Golang rtmp服务lalserver支持多种鉴权防盗链方式

lalserver是纯Golang流媒体服务器的开发。RTMP, RTSP(RTP/RTCP), HLS, HTTP[S]/WebSocket[S]-FLV/TS协议。

目前已支持多种鉴权防盗链。

lal github地址: https://github.com/q191201771/lal

▌ 方式一. 固定值的鉴权参数

首先,修改配置文件如下:

"conf_version": "v0.2.6", ... "simple_auth": { 
             "key": "q191201771",              // 私有key,在计算鉴权参数时使用     "dangerous_lal_secret": "pengrl", // 后门鉴权参数,所有流量都可以通过参数进行鉴权     "pub_rtmp_enable": true,          // rtmp推流是否开启鉴权,true为开启鉴权,false为不开启鉴权     "sub_rtmp_enable": true,          // rtmp拉流是否开启鉴权     "sub_httpflv_enable": true,       // httpflv拉流是否开启鉴权     "sub_httpts_enable": true,        // httpts拉流是否开启鉴权     "pub_rtsp_enable": true,          // rtsp推流是否开启鉴权     "sub_rtsp_enable": true,          // rtsp拉流是否开启鉴权     "hls_m3u8_enable": true           // m3u8拉流是否开启鉴权 } ... 

配置一和方法二的配置在配置项中simple_auth下管理:

  • key在下面方式二中使用,这里暂时不关心

例如,当鉴权功能没有打开时,推rtmp流的url是rtmp://127.0.0.1:8080/live/test110 开业后,业务方推流url是变为 rtmp://127.0.0.1:8080/live/test110?lal_secret=pengrl 其中lal_secret是鉴权签名参数,名称固定,值固定,相应配置文件dangerous_lal_secret的值。

所有流程都使用相同的鉴权参数值。

▌ 方式二. MD5签名的鉴权参数

首先,配置文件仍在修改(见上述方法一中的描述):

  • pubsub等待开头的字段决定了每个协议是否开始鉴权

例如,当鉴权功能没有打开时,推rtmp流的url是rtmp://127.0.0.1:8080/live/test110 开启后,业务方推流url是变为 rtmp://127.0.0.1:8080/live/test110?lal_secret=700997e1595a06c9ffa60ebef79105b0

上述例子对应的计算方法是 md5("q191201771test110")

Go、c 如何计算代码、命令行、网页工具MD5见:使用工具或代码生成MD5 - 仁亮笔记

在鉴权模式下,不同的流名对应不同的鉴权参数。

注意,方法一和方法二可同时使用。lal_secret符合任何计算方法的值都可以通过。

▌ 方式三. 与业务方服务互动,自由定制鉴权方式

一般逻辑是,lalserver在收到推流或拉流请求时使用http回调通知业务方服务。 业务方的服务根据自身逻辑判断推流或拉流请求是否合法。 如果不合,使用lalserver提供的http api接口将该请求踢掉。

相关文档:

  • lalserver HTTP Notify事件回调
  • lalserver HTTP API接口

第三方文档

  • https://help.aliyun.com/document_detail/199349.html
  • https://cloud.tencent.com/document/product/267/32735
  • https://www.wangsu.com/document/99/171?rsr=ws

标签: t78防盗报警专用继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台