基于EasyNVR摄像机无插件直播流媒体服务器实现相似于单点登陆功能的免登陆直播功能

提出问题

EasyNVR是一套摄像机无插件直播的流媒体服务器软件,他能够接入各类各样的摄像机,再通过转化统一输出无插件化直播的RTMP、HLS、HTTP-FLV流,同时,EasyNVR为了数据安全,提供了鉴权功能,能够配置成只有登陆后才能直播观看:
EasyNVR鉴权html

但这个时候问题又来了,不少企业用户的需求是简单观看须要,数据安全也须要,简易开发更须要,这个时候就须要一套相似于单点登陆这种简易登陆鉴权模式,让基本的安全和功能都获得保障,因而,咱们有EasyNVR的企业用户就提出了建议:web

一、流媒体访问规范
Html方式,支持Chrome,IE等主流浏览器。
二、提供单通道观看
提供单通道无控件WEB视频访问页面,传递参数为摄像头ID
http://IP:33360/video/view.html?cameraid=xxx&token=xxx
三、提供全市全部视频的访问列表页面
http://IP:33360/video/index.html?token=xxx
四、提供对省级管理平台后台单点登陆
在省级平台访问时,不须要再次登陆。经过token值判断登陆状况,token为EasyNVR"用户名+密码"进行加密完成,当token匹配直接经过系统权限验证。浏览器

分析问题

咱们大概捋了一下上述的需求,基本主旨是基于EasyNVR输出的能力接口进行二次开发,屏蔽点击登陆这一步,那么如何作到这一步呢,实际能够采用隐式登陆的方式,举例:安全

  • 第一步:好比EasyNVR的登陆用户名密码分别是admin/admin,那么咱们将“admin:admin”进行base64 encode编码成为:“YWRtaW46YWRtaW4”,那么这个编码后的字符串即为此次咱们须要用到的token;
  • 第二步:自定义view.html页面(或者直接改造EasyNVR的play.html页面),当用户访问http://IP:33360/video/view.html?cameraid=xxx&token=YWRtaW46YWRtaW4 时,咱们将QueryString中的token首先进行base64 decode解码成“用户名:密码”的组合"admin:admin";
  • 第三步:在自定义view.html页面中开始调用EasyNVR能力接口,一旦EasyNVR返回401未鉴权的错误码时,当即使用第二步base64解码出来的用户名:密码调用login接口进行登陆,成功后,再继续根据cameraid进行直播、录像回放、云台控制等其余能力的调用;
  • 第四步:同理,在列表页面“http://IP:33360/video/index.html?token=xxx” 也采用一样的流程方式;

按照以上的几个步骤,实际就是在EasyNVR的外面,再包了一层壳,让后续的开发者能用更加更简单的方式就能够参考和集成了;服务器

上述步骤咱们采用对用户名密码以base64编码的方式进行传输,可能安全性较低,用户很简单就能够获取到密码原文,咱们也能够将“用户名:密码”的原始组合,换成“用户名:md5(密码)”的方式,这样密码原文就不会被抓取到了,view.html页面在作鉴权的时候,就省去密码md5这一步,直接调用login接口便可;网络

问题扩展

第三方登陆:按照上述的token传值方式,实际EasyNVR还能够作相似于微博登陆、QQ登陆这种authToken第三方登陆的功能,固然这个就复杂了,后续EasyNVR也会推出的;ide

单点登陆:当同一个企业须要管辖的EasyNVR设备比较多的时候,若是每个EasyNVR现场的密码都要单独再记录一次,就会显得比较麻烦,若是有一个superadmin超级管理员,超级管理员登陆后,就不须要再一一登陆各个EasyNVR了,这种方式后面会在咱们的EasyNVS管理平台带上,屏蔽各类下级的密码,直接超级权限单点登陆,便可调用全局能力;svg

关于EasyNVR

EasyNVR可以经过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera、NVR等具备RTSP协议输出的设备接入到EasyNVR,EasyNVR可以将这些视频源的音视频数据进行拉取,转换为RTMP/HLS,进行全平台终端H5直播(Web、Android、iOS),而且EasyNVR可以将视频源的直播数据对接到第三方CDN网络,实现互联网级别的直播分发;编码

详细说明:http://www.easynvr.com加密

点击连接加入群【EasyNVR解决方案】:383501345

Copyright © EasyDarwin Team 2012-2018
EasyNVR公众号

相关文章
相关标签/搜索