基於EasyNVR攝像機無插件直播流媒體服務器實現類似於單點登錄功能的免登錄直播功能

提出問題

EasyNVR是一套攝像機無插件直播的流媒體服務器軟件,他可以接入各種各樣的攝像機,再經過轉化統一輸出無插件化直播的RTMP、HLS、HTTP-FLV流,同時,EasyNVR爲了數據安全,提供了鑑權功能,可以配置成只有登錄後才能直播觀看:
EasyNVR鑑權

但這個時候問題又來了,很多企業用戶的需求是簡單觀看需要,數據安全也需要,簡易開發更需要,這個時候就需要一套類似於單點登錄這種簡易登錄鑑權模式,讓基本的安全和功能都得到保障,於是,我們有EasyNVR的企業用戶就提出了建議:

1、流媒體訪問規範
Html方式,支持Chrome,IE等主流瀏覽器。
2、提供單通道觀看
提供單通道無控件WEB視頻訪問頁面,傳遞參數爲攝像頭ID
http://IP:33360/video/view.html?cameraid=xxx&token=xxx
3、提供全市所有視頻的訪問列表頁面
http://IP:33360/video/index.html?token=xxx
4、提供對省級管理平臺後臺單點登錄
在省級平臺訪問時,不需要再次登錄。通過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也會推出的;

單點登錄:當同一個企業需要管轄的EasyNVR設備比較多的時候,如果每一個EasyNVR現場的密碼都要單獨再記錄一次,就會顯得比較麻煩,如果有一個superadmin超級管理員,超級管理員登錄後,就不需要再一一登錄各個EasyNVR了,這種方式後面會在我們的EasyNVS管理平臺帶上,屏蔽各種下級的密碼,直接超級權限單點登錄,即可調用全局能力;

關於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公衆號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章