1.內置數據源
- Username認證
- Cliend ID 認證
使用配置文件與 EMQ X 內置數據庫提供認證數據源,通過 HTTP API 進行管理,足夠簡單輕量。
2.外部數據庫
- LDAP 認證
- MySQL 認證
- PostgreSQL 認證
- Redis 認證
- MongoDB 認證
外部數據庫可以存儲大量數據,同時方便與外部設備管理系統集成。
3.其他認證
- HTTP 認證
- JWT 認證
JWT 認證可以批量簽發認證信息,HTTP 認證能夠實現復雜的認證鑒權邏輯。
更改插件配置后需要重啟插件才能生效,部分認證鑒權插件包含 ACL 功能
4.認證結果
認證成功:經過比對客戶端認證成功
認證失敗:經過比對客戶端認證失敗,數據源中密碼與當前密碼不一致
忽略認證(ignore):當前認證方式中未查找到認證數據,無法顯式判斷結果是成功還是失敗,交由認證鏈下一認證方式或匿名認證來判斷
5.匿名認證

6.密碼加鹽規則與哈希方法
7.如何生成認證信息
為每個客戶端分用戶名、Client ID、密碼以及 salt(鹽)等信息
使用與 MySQL 認證相同加鹽規則與哈希方法處理客戶端信息得到密文
將客戶端信息寫入數據庫,客戶端的密碼應當為密文信息
8.EMQ X身份認證流程

9.認證鏈