IOT Core-设备接入网关
設備接入網(wǎng)關是負責設備連接,設備鑒權,設備Topic訂閱和發(fā)布的控制,設備消息路由等。
提供的能力
設備連接能力。
設備訂閱和消息發(fā)布能力。
設備鑒權能力。
訂閱和發(fā)布控制。
設備消息路由。
網(wǎng)關以服務形式與第三方服務交互,從而與具體業(yè)務解藕,如果客戶有自己的業(yè)務系統(tǒng)或客戶需要自己開發(fā),也能夠與之對接,同時也能滿足我們的業(yè)務系統(tǒng)。
網(wǎng)關層整體架構:
2. 設備鑒權和ACL控制
2.1. 背景
對于物聯(lián)網(wǎng)平臺來說,這塊是可以做到統(tǒng)一,然后由業(yè)務方去實現(xiàn)鑒權或ACL控制服務,但是當前也有好多垂直行業(yè)的大廠,比如像XXX,他在智能樓宇有一套完整的系統(tǒng),他可能只想用我們的連接層,因為智能樓宇這個行業(yè)其實發(fā)展了幾十年,他們對行業(yè),對客戶需求了解的比較清楚,也形成了一些行業(yè)積累和行業(yè)軟件,并且這種積累是有一定的競爭優(yōu)勢和潛在價值,所以他們不太可能放棄這塊或者將他交給第三方開發(fā),但是對于連接層來說,由于連接層不跟客戶打交道,并且對于大規(guī)模設備的管控他們可能不擅長。
2.2. 鑒權和ACL控制鑒權架構設計
為了滿足不同的鑒權、acl控制業(yè)務場景,所以將網(wǎng)關層的鑒權ACL控制進行了抽像和封裝,盡可能保留擴展。
2.3. 常見的業(yè)務場景主要有以下幾種:
通過HTTP的get, post等請求方式,參數(shù)通過url, body, header傳輸。
通過 gRPC 請求方式,參數(shù)通過protobuf文件規(guī)定。
通過直接與數(shù)據(jù)庫連接進行鑒權,比如redis, mysql等, redis通過命令行,mysql通過sql語句。
2.4. 網(wǎng)關層提供的信息:
clientId, username, password, topic
2.5. 鑒權架構設計
poolcow插件:
levimq_auth_grpc:
grpc形式鑒權插件,實現(xiàn)通過protobuf文件將參數(shù)打包發(fā)送到grpc server.ehttpd:
對外提供restful接口插件,可根據(jù)swagger自動產(chǎn)生代碼,自動生成文檔,自動生成測試環(huán)境。支持wormhole插件
支持wormhole插件做服務發(fā)現(xiàn)接入etcd。身份認證是大多數(shù)應用的重要組成部分,MQTT 協(xié)議支持用戶名密碼認證,啟用身份認證能有效阻止非法客戶端的連接,并且由于認證方式差異性大,所以網(wǎng)關提供接入第三方的認證服務。
當前想到可能的鑒權方式:鑒權方式
方式
根據(jù)配置連接到Redis,通過username HMGET獲取加密算法后的password,然后用相同加密算法加密password與之對比。
通過調用第三方的Restful API請求來認證,支持將username和password(加密算法處理后)通過GET或POST方式,提交到第三方服務器,參數(shù)可以放到boyd或URL上。
支持直接連接mysql數(shù)據(jù)庫,并可以配置sql語句來直接查詢數(shù)據(jù)庫。
4.grpc認證
支持通過protobuf文件來調用第三方服務
ACL規(guī)則設置主要是根據(jù)MQTT協(xié)議自身的特點,從Topic, clientId, username進行規(guī)則判斷, 同時需要考慮集群,性能而提供對外接口,方便第三方應用將策略下發(fā)給網(wǎng)關,從而實現(xiàn)讓設備只能訂閱、發(fā)布自己相關的Topic。
策略描述
指定clientId,訂閱或發(fā)布相應的topic,topic支持正則表達式
模糊匹配clientId,訂閱或發(fā)布相應的topic,topic支持正則表達式
支持正則表達式匹配topic進行訂閱或發(fā)布
指定客戶端ip,訂閱或發(fā)布相應的topic, topic支持正則表達式
支持指定username訂閱或發(fā)布相應的topic, topic支持正則表達式
支持多租戶功能,租戶信息可以放到clientid或topic里面
連接限流
限流是對某一時間窗口內的請求數(shù)進行限制,保持系統(tǒng)的可用性和穩(wěn)定性,防止因流量暴增而導致的系統(tǒng)運行緩慢或宕機。
異常設備
提供異常設備判斷,從而從網(wǎng)關層將異常設備處理
異常設備規(guī)則
設備在指定周期內發(fā)送大量消息
設備在指定周期內頻繁上下線
…
提供Restful API & grpc
功能
支持添加,刪除,編輯,查看ACL規(guī)則
支持添加,刪除,編輯,查看設備鑒權規(guī)則
支持添加,刪除,編輯,查看異常設備規(guī)則
總結
以上是生活随笔為你收集整理的IOT Core-设备接入网关的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python简易学员管理系统
- 下一篇: 优化LNMP架构采用“Website B