在閱讀該教程之前,假定你已經了解 MQTT、EMQX 的簡單知識。
emqx_auth_username 它通過比對每個終端的接入的 username
和 password
與 EMQ X 中存儲的是否一致來實現終端接入的控制。其功能邏輯如下:
emqx_auth_username 目前版本僅提供了 連接認證 的功能。且提供了 CLI 和 REST API 來進行管理當前集群中的 Username 庫
插件配置項說明
在這里給出了其 3.1.0 版本默認的配置文件。其內容非常的簡單,主要包括:
1.Password 密文加密類型
終端在連接時,必須采用對用加密類型的密文才可以成功連接
## Password hash.
##
## Value: plain | md5 | sha | sha256
auth.user.password_hash = sha256
Username 管理
CLI 命令
在成功啟動 emqx_auth_username
該插件時,會向 EMQ X
注冊一些 CLI 命令以在運行時管理 username
:
$ ./bin/emqx_ctl users
users list
users add <Username> <Password>
users update <Username> <NewPassword>
users del <Username>
REST API
在成功啟動 emqx_auth_username
該插件時,會開啟對應的 REST API 用於在運行時管理 username
獲取所有的 username
# Request
GET api/v3/auth_username
# Response
{
"code": 0,
"data": ["username1"]
}
添加一個 username:
# Request
POST api/v3/auth_username
{
"username": "some_name",
"password": "password"
}
# Response
{
"code": 0
}
更新某 username 的密碼 :
# Request
PUT api/v3/auth_username/$NAME
{
"password": "password"
}
# Response
{
"code", 0
}
查看某 username 的密碼 (密文):
# Request
GET api/v3/auth_username/$NAME
# Response
{
"code": 0,
"data": {
"username": "some_username",
"password": "hashed_password"
}
}
刪除某 username:
# Request
DELETE api/v3/auth_username/$NAME
# Response
{
"code": 0
}