最近在弄裝置接入的問題,關於acl接入認證以及對應的topic subscribe、pubsub、publish 許可權搞了半天也沒弄好(沒有開啟第三方外掛程式 類似mysql、redis等),使用emq_auth_username 外掛程式認證
由於以前使用的時候沒有開啟對應的許可權認證和使用者名稱密碼認證,導致後面出現以下資料安全方面的問題,後續因為專案的需要,需要將以前的裝置加入到許可權認證,以及新得裝置相容。以下配置需要開啟 emq_auth_username 外掛程式,是否可以和其它外掛程式配合使用暫不清楚,理論上可行。開啟方法請參考官方文件 推薦使用命令新增使用者
首先看官網的配置說明:
是否開啟匿名認證 預設開啟,
允許任意客戶端登入: ## allow anonymous authentication
allow_anonymous = true
實際最簡單得方法就是將這個引數設定為false,這樣不接受匿名得使用者連線,特別適合新的專案,只有通過認證得使用者才能連線
預設訪問控制(acl)檔案 emq x 支援基於 etc/acl.conf 檔案或 mysql、 postgresql 等外掛程式的訪問控制規則。
## acl nomatch. enum: allow, deny
acl_nomatch = allow
## default acl file
acl_file = etc/acl.conf
## enable acl cache. enum: on, off
enable_acl_cache = on
## default acl cache size
acl_cache_max_size = 32
## default time-to-live of
cache size acl_cache_ttl = 1m
上面標黃得那個我們配置的關鍵,當acl規則沒有匹配到的時候就會找的這個引數,如果為true,則會通過驗證,為false就會不通過驗證
這是官方的說明
下面是真正的配置檔案
%% 允許'dashboard'使用者訂閱 '$sys/#'
, subscribe, ["$sys/#"]}.
%% 允許本機使用者發布訂閱全部主題
, pubsub, ["$sys/#", "#"]}.
%% 拒絕使用者訂閱'$sys#'與'#'主題
]}.%% 上述規則無匹配,允許
.以上需要注意幾個點
1、注釋方式,推薦使用 %%,(不知道是不是我寫的有毛病還是什麼原因, # 和 ## 注釋沒有用) ,
2、每個規則後面的 . 不要忘了
3、subscribe 和pubsub和配合使用
我的配置
業務需求:opcloud 使用者能訂閱 +/out,+/realtime,+/history,$sys/# 主題,能向+/in主題推送資料,其它使用者可以向 +/out,+/realtime,+/history 推送資料,能訂閱 +/in 資料
init配置檔案說明
linux 核心啟動之後,啟動的第乙個程序就是 init 程序。該程序從 etc inittab 檔案中讀取配置,對系統進行一系列的初始化工作。下面我們來分析一下 etc inittab 檔案的結構。inittab 檔案的每一行的基本格式如下所示 l3 3 wait etc rc.d rc 3可以看...
quartz 配置檔案說明
cron expression 與linux中的crontab有很大的不同,昨天差點迷惑了我。cron expression 由6到7個用空格分開的字段組成的表示式這6或7個字段必須遵循下面的順序和格式 seconds 0 59 minutes 0 59 hours 0 23 day of mont...
asterisk配置檔案說明
配置檔案說明列表 名稱 描述 asterisk.conf 主配置檔案,通知asterisk環境目錄位置,包含其他所有配置檔案所包含的目錄,預設asterisk會在 etc asterisk 目錄下找到,也可以通過命令引數使用不同的asterisk.conf zaptel.conf 配置板卡驅動,配置...