中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

EMQX-AUTH-LDAP使用的實例分析

發布時間:2022-01-06 16:25:44 來源:億速云 閱讀:121 作者:柒染 欄目:互聯網科技

本篇文章為大家展示了EMQX-AUTH-LDAP使用的實例分析,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

emqx_auth_ldap,它通過比對每個嘗試接入 EMQX 的終端的 usernamepassword 是否與 OpenLDAP 服務器存儲的用戶名和密碼一致,以此實現對接入終端的控制,同時它還可以為已通過認證的客戶端做 ACL 檢查,通過檢查 OpenLDAP 中對應用戶的 mqttPublishTopicmqttSubscriptionTopic 來判斷客戶端是否有發布和訂閱權限。其功能邏輯見下圖: EMQX-AUTH-LDAP使用的實例分析

emqx_auth_ldap 目前版本僅支持 OpenLDAP,不支持 Microsoft Active Directory,提供了 連接認證訪問控制 的功能。不過用戶只能自行通過第三方工具去管理 OpenLDAP 中的數據,emqx_auth_ldap 自身不提供這樣的管理功能。

插件配置項說明

這里給出最新版的 emqx_auth_ldap 的默認配置文件,主要包括:

配置項說明
auth.ldap.serversldap 服務器地址
auth.ldap.portldap 端口號
auth.ldap.poolldap 地址池數量
auth.ldap.bind_dnldap 的綁定專有名稱(DN)
auth.ldap.bind_passwordldap 的綁定密碼
auth.ldap.timeoutldap 的查詢超時時間
auth.ldap.device_dnldap 的設備專有名
auth.ldap.match_objectclassldap 的匹配對象類
auth.ldap.username.attributetypeldap 的用戶名屬性類型
auth.ldap.password.attributetypeldap 的密碼屬性類型
auth.ldap.sslldap 的 ssl 選項

此處需要注意的是,用戶對 open ldap 的要有基本的理解,才能正確地配置這些參數。

OpenLDAP 配置說明

當用戶將所有 emqx_auth_ldap 的配置選項配置好后,還需要再配置 OpenLDAP 服務器。

首先,需要將 emqx.schema 拷貝到 ldap 的配置目錄,如果是 Mac 用戶,將 emqx.schema 拷貝到 /etc/openldap/schema/emqx.schema 然后編輯 ldap 的配置文件 slapd.conf

/etc/openldap/schema/emqx.schema

attributetype ( 1.3.6.1.4.1.11.2.53.2.2.3.1.2.3.1.3 NAME 'isEnabled'
EQUALITY booleanMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
SINGLE-VALUE
USAGE userApplications )

attributetype ( 1.3.6.1.4.1.11.2.53.2.2.3.1.2.3.4.1 NAME ( 'mqttPublishTopic' 'mpt' )
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
USAGE userApplications )
attributetype ( 1.3.6.1.4.1.11.2.53.2.2.3.1.2.3.4.2 NAME ( 'mqttSubscriptionTopic' 'mst' )
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
USAGE userApplications )
attributetype ( 1.3.6.1.4.1.11.2.53.2.2.3.1.2.3.4.3 NAME ( 'mqttPubSubTopic' 'mpst' )
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
USAGE userApplications )

objectclass ( 1.3.6.1.4.1.11.2.53.2.2.3.1.2.3.4 NAME 'mqttUser'
AUXILIARY
MAY ( mqttPublishTopic $ mqttSubscriptionTopic $ mqttPubSubTopic) )

objectclass ( 1.3.6.1.4.1.11.2.53.2.2.3.1.2.3.2 NAME 'mqttDevice'
SUP top
STRUCTURAL
MUST ( uid )
MAY ( isEnabled ) )

objectclass ( 1.3.6.1.4.1.11.2.53.2.2.3.1.2.3.3 NAME 'mqttSecurity'
SUP top
AUXILIARY
MAY ( userPassword $ userPKCS12 $ pwdAttribute $ pwdLockout ) )

/etc/openldap/slapd.conf

include  /etc/openldap/schema/core.schema
include  /etc/openldap/schema/cosine.schema
include  /etc/openldap/schema/inetorgperson.schema
include  /etc/openldap/schema/ppolicy.schema
include  /etc/openldap/schema/emqx.schema

database bdb
suffix "dc=emqx,dc=io"
rootdn "cn=root,dc=emqx,dc=io"
rootpw {SSHA}eoF7NhNrejVYYyGHqnt+MdKNBh5r1w3W

directory       /etc/openldap/data

編輯完配置文件后可以通過 sudo slapd -d 3 去啟動 OpenLDAP 服務,如果出現以下錯誤:

Unrecognized database type (bdb)
5c4a72b9 slapd.conf: line 7: <database> failed init (bdb)
slapadd: bad configuration file!

那么還需要在 slapd.conf 中添加這一條

modulepath /usr/lib/ldap
moduleload back_bdb.la

這個時候啟動 OpenLDAP 服務。然后通過命令

./bin/emqx_ctl plugins load emqx_auth_ldap

如果返回

Start apps: [emqx_auth_ldap]
Plugin emqx_auth_ldap loaded successfully.

那么插件就啟用成功了

測試

如果需要對 emqx-auth-ldap 做功能測試,可以通過 sudo slapadd -l schema/emqx.io.ldif -f slapd.conf 命令去將 emqx-auth-ldap 提供的測試數據導入到 OpenLDAP 服務器中。

此時,再去重新 load emqx_auth_ldap 插件。

1.使用正確的用戶名和密碼進行連接,并訂閱 "mqttuser0001/pubsub/1" 主題。

mosquitto_sub -p 1883 -u mqttuser0001 -P mqttuser0001 -t 'mqttuser0001/pubsub/1' -d
Client mosqsub|34863-Gilberts- sending CONNECT
Client mosqsub|34863-Gilberts- received CONNACK (0)
Client mosqsub|34863-Gilberts- sending SUBSCRIBE (Mid: 1, Topic: mqttuser0001/pubsub/1, QoS: 0)
Client mosqsub|34863-Gilberts- received SUBACK
Subscribed (mid: 1): 0

結果:連接并成功訂閱主題

2.使用錯誤的用戶名或密碼進行連接,并訂閱 "mqttuser0001/pubsub/1" 主題。

mosquitto_sub -p 1883 -u mqttuser0001 -P mqttuser0002 -t 'mqttuser0001/pubsub/1' -d
Client mosqsub|34884-Gilberts- sending CONNECT
Client mosqsub|34884-Gilberts- received CONNACK (4)
Connection Refused: bad user name or password.
Client mosqsub|34884-Gilberts- sending DISCONNECT

結果:連接被拒絕

3.使用正確的用戶名和密碼進行連接,并訂閱"mqttuser0001/req/+/mqttuser0002"主題。

mosquitto_sub -p 1883 -u mqttuser0001 -P mqttuser0001 -t 'mqttuser0001/req/+/mqttuser0002' -d Client mosqsub|34897-Gilberts- sending CONNECT Client mosqsub|34897-Gilberts- received CONNACK (0) Client mosqsub|34897-Gilberts- sending SUBSCRIBE (Mid: 1, Topic: mqttuser0001/req/+/mqttuser0002, QoS: 0) Client mosqsub|34897-Gilberts- received SUBACK Subscribed (mid: 1): 128

結果:連接成功,訂閱失敗,錯誤原因碼 128

4.訂閱者和發布者使用正確的用戶名和密碼進行連接 訂閱者訂閱到主題 'mqttuser0001/sub'

  $ mosquitto_sub -p 1883 -u mqttuser0001 -P mqttuser0001 -t 'mqttuser0001/sub' -d   Client mosqsub|34991-Gilberts- sending CONNECT   Client mosqsub|34991-Gilberts- received CONNACK (0)   Client mosqsub|34991-Gilberts- sending SUBSCRIBE (Mid: 1, Topic: mqttuser0001/sub, QoS: 0)   Client mosqsub|34991-Gilberts- received SUBACK   Subscribed (mid: 1): 0

發布者向主題 'mqttuser0001/sub' 發布消息。

  mosquitto_pub -p 1883 -u mqttuser0001 -P mqttuser0001 -t 'mqttuser0001/sub' -m "hello"

結果:訂閱者未接收到任何消息,發布被拒絕。

做完所有測試, 驗證完 emqx_auth_ldap 的所有功能,就可以正式地使用該插件了。

上述內容就是EMQX-AUTH-LDAP使用的實例分析,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

周口市| 盐边县| 沙田区| 寿宁县| 邛崃市| 雷波县| 兖州市| 罗源县| 芮城县| 那坡县| 阿坝| 绥宁县| 沁源县| 罗平县| 普宁市| 嵊州市| 宾阳县| 深圳市| 甘泉县| 卓尼县| 九龙城区| 乌兰县| 宽甸| 贡山| 容城县| 抚顺县| 铁力市| 肇源县| 鄂托克前旗| 沧源| 班戈县| 武鸣县| 上杭县| 台安县| 洪雅县| 眉山市| 黄山市| 武功县| 彭州市| 洛南县| 长阳|