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下管理:

  • pubsub开头的字段决定了各协议是否开启鉴权
  • dangerous_lal_secret为鉴权参数的值
  • 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等开头的字段决定了各协议是否开启鉴权
  • key用来做MD5签名

举例,没开启鉴权功能时,推rtmp流的url是rtmp://127.0.0.1:8080/live/test110

开启后,业务方推流url是变为

rtmp://127.0.0.1:8080/live/test110?lal_secret=700997e1595a06c9ffa60ebef79105b0

其中lal_secret就是鉴权签名参数,名字是固定的,值的计算公式是

md5(配置文件中的simple_auth::key + 流名称)

上面的例子对应的计算方式是

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

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

  1. 微服务网关限流鉴权-wei-fu-wu-wang-guan-xian-liu--jian-quan

    title: 微服务网关限流&鉴权 date: 2022-01-06 14:40:45.047 updated: 2022-01-06 14:40:45.047 url: https://ww ...

  2. API 鉴权插件上线!支持用户自定义鉴权插件

    0.4.0 版本更新主要围绕这几个方面: 分组独立的 UI,支持分组 API 鉴权 API 测试支持继承 API 鉴权 支持用户自定义鉴权插件,仅需部分配置即可发布鉴权插件 开始介绍功能之前,我想先和 ...

  3. 4.从零开始搭建基于SpringCloud的京东整站_用户微服务_后台登录鉴权

    本次目标 实现后台登录鉴权功能. 接口文档 1.后台管理员登录 页面访问地址:http://admin/pages/main/login.html 2.接口描述 js请求地址 http://{ip:p ...

  4. 登录鉴权的各种方式及区别

    文章目录 登录鉴权 概念 认证 实现授权的方式 凭证 Cookie 如何工作 作用 问题 cookie标准限制 属性 expires|max-age domain&path secure Ht ...

  5. 推荐一个开源数据同步神器,支持多种数据源和预警功能!

    DBSyncer是一款开源的数据同步中间件,提供MySQL.Oracle.SqlServer.PostgreSQL.Elasticsearch(ES).Kafka.File.SQL等同步场景. 支持上 ...

  6. Spring Security OAuth2.0_实现分布式认证授权_微服务解析令牌并鉴权_Spring Security OAuth2.0认证授权---springcloud工作笔记154

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们接着去看,我们需要其他的微服务就解析令牌,并且进行根据权限判断能不能来访问我们的某个方法 ...

  7. 什么是鉴权?一篇文章带你了解postman的多种方式

    目录 一.什么是鉴权? 二.postman鉴权方式 一.什么是鉴权? 鉴权也就是身份认证,就是验证您是否有权限从服务器访问或操作相关数据.发送请求时,通常必须包含相应的检验参数以确保请求具有访问权限并 ...

  8. 什么是鉴权?这些postman鉴权方式你又知道多少?

     目录 一.什么是鉴权? 二.postman鉴权方式 一.什么是鉴权? 鉴权也就是身份认证,就是验证您是否有权限从服务器访问或操作相关数据.发送请求时,通常必须包含相应的检验参数以确保请求具有访问权限 ...

  9. 什么是鉴权?postman的有几种鉴权方式?

     目录 一.什么是鉴权? 二.postman鉴权方式 一.什么是鉴权? 鉴权也就是身份认证,就是验证您是否有权限从服务器访问或操作相关数据.发送请求时,通常必须包含相应的检验参数以确保请求具有访问权限 ...

  10. k8s-身份认证与权限 认证鉴权准入控制- 各种方式带例子-推荐-2023

    # 认证 鉴权 准入控制 ACL 了解 原文:k8s认证.授权与准入控制 - 哪都通临时工 - 博客园 (cnblogs.com) 认证(Authentication):API Server 可以支持 ...

最新文章

  1. 想让关系更好就不要怕麻烦
  2. netbeans 添加gif图片_怎么制作动态图片?手机如何制作清晰gif动图?
  3. RubyMotion 指南:API 驱动开发示例
  4. 总结一下内核DEBUG中的dump_stack, BUG, BUG_ON以及panic
  5. [RDMA] 高性能异步的可靠消息传递和RPC :Accelio
  6. win phone 获取并且处理回车键事件
  7. 程序媛计划——python初级class5~13
  8. python tkinter选择路径控件_如何使用tkinter在Python中选择目录并存储位置
  9. WPF 自定义 MessageBox (相对完善版 v1.0.0.6)
  10. CODEVS-2050 派对灯
  11. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM中的查询
  12. stacking模型融合_算法实践七:模型融合
  13. poj 2870 Light Up(dfs+剪枝,写的稀烂)
  14. NB-IOT平台之电信平台FOTA 升级记录
  15. 推荐一款录屏软件——EV录屏
  16. 解决wget下载过慢的问题
  17. 找不到网络其他计算机名,电脑找不到无线网名称怎么办?找不到无线网名称解决办法...
  18. 基于量化交易回测的金融股票案例基础知识
  19. 使用AccessibilityService(无障碍服务)自动完成手机设置功能
  20. 经典布局(flex和传统两种实现)—左中右三栏式

热门文章

  1. Java常用对象总结
  2. oracle ovm配置使用
  3. 025_GPIO的读
  4. 如何用个人电脑打造量子模拟器
  5. 强强联手|任子行公司董事长景晓军一行到访云畅科技交流
  6. 远程控制计算机无法粘贴,Windwos服务器远程桌面不能复制粘贴的解决方法
  7. win10系统进不了服务器失败,快速解决Win10安装失败重启进不了系统的方法
  8. CLIENT_PLUGIN_AUTH is required 解决办法
  9. c语言输入一个整数打印出它是奇数还是偶数,1. 编写程序,输入一个整数,打印出它是奇数还是偶数....
  10. 四旋翼无人机PID调节(无数次实验总结经验和理论支持)