標籤:訂閱 萬用字元 目的 路徑 hello mic 範圍 接受 file
文章鋼要:
1、對伺服器進行多使用者配置
2、根據不同使用者給予不同許可權
一、Mosquitto的使用者機制
mosquitto中可以添加多個使用者,只有使用使用者名稱和密碼登陸伺服器才允許使用者進行訂閱與發佈動作。可以說使用者機制是mosquitto重要的安全機制,增強伺服器的安全性。
使用者與許可權配置需要修改3處地方:
1、mosquitto中最最最重要的設定檔mosquitto.conf。
2、pwfile.example (儲存使用者名稱與密碼)
3、aclfile.example (儲存許可權配置)
首先給我們的伺服器增加2個使用者,一個叫userName密碼是1,一個叫userName2 密碼是2
第一步:
開啟mosquitto.conf檔案,找到allow_anonymous節點,這個節點作用是,是否開啟匿名使用者登入,預設是true。
我們需要將allow_anonymous節點前面的"#"去掉,然後後面寫false。不允許匿名使用者登入。如下:
修改前:#allow_anonymous
修改後:allow_anonymous false
第二步:
找到password_file節點,這個節點是告訴伺服器你要配置的使用者將存放在哪裡
將前面的“#”去掉,並且在後面寫上pwfile.example檔案的路徑,注意:是絕對路徑。例如:
修改前:#password_file
修改後:password_file /etc/mosquitto/pwfile.example (這裡的地址根據自己檔案實際位置填寫)
第三步:
建立使用者名稱和密碼,開啟命令視窗。鍵入:mosquitto_passwd -c /etc/mosquitto/pwfile.example userName
然後鍵入2次密碼,使用者建立成功。
-c 建立一個使用者
/etc/mosquitto/pwfile.example 建立到pwfile.example檔案中
userName 建立的使用者名稱
此時userName使用者建立完畢。
第四步:
建立userName2使用者。
在命令視窗鍵入mosquitto_passwd /etc/mosquitto/pwfile.example userName2
輸入2次密碼,使用者建立成功
注意:第二次輸入使用者不用-c ,如果加上-c會將以前建立的使用者覆蓋。
至此使用者建立完畢。
開啟pwfile.example看一下結果,如下:
二、Mosquitto許可權
Mosquitto許可權是根據topci控制的,類似與目錄管理。您可以設定每個使用者訂閱/發布許可權,也可以設定每個使用者可訪問的topic範圍,從而達到許可權控制的目的。
這裡我們需要用到剛才建立的2個使用者。
userName 設定為訂閱許可權,並且只能訪問"root/123/#"這個topic。
userName2 設定為發布許可權,並且只能訪問"root/123/#"這個topic。
值得注意的是,如果用userName進行發布是不會成功的,反過來用userName2進行訂閱同樣不會接受到任何資訊。因為他們的許可權不同。
增加Mosquitto許可權:
開啟aclfile.example,在最下面鍵入如下文字:
user userName
topic read root/123/#
user userName2
topic write root/123#
--------------------------------
read 訂閱許可權
write 發布許可權
# 萬用字元,表示所有的
儲存退出。
三、測試
訂閱:
mosquitto_sub -t root/123/# -u userName -P 1
注意:-P中的P為大寫。
發布:
mosquitto_pub -t root/123/123 -u userName2 -P 2 -m "hello word!!!"
在訂閱端會收到hello word資訊。如:
Mosquitto搭建Android推送服務(四)Mosquitto伺服器使用者登入與許可權配置