2017-08-17 21 views
0

私は4台のトラックをmqttブローカに接続しています。私は4つのApps /デバイスを持っています。トラックはメッセージを公開し、Appsはこれらのメッセージを購読しますサブスクライバの公開メッセージへのアクセスを制限する方法

トラックによって公開されたメッセージへのデバイスのアクセスを制限する方法はありますか?言い換えれば、truck1が次のメッセージ(truck1_msg1、truck1_msg2、truck1_msg)を公開すると仮定します。App1が購読して、truck1からのメッセージのみを聞き取り、他のトラックによって発行された他のメッセージを購読することはできません。出来ますか?どうすればいいですか?

ノート:すべてのトラックとアプリが同じブローカに接続されており、それがMosquitto

答えて

0

ほとんどMQTTブローカーはので、各トラックがにメッセージを公開すると仮定すると、特定のユーザーのために、トピック・レベルのACLをサポートしていると仮定することができます個別のトピック(またはACLのようにトピック接頭辞はワイルドカードをサポートする傾向があります)、各トラックとアプリには独自のユーザーが必要です。必要なアクセスの分離を手配できるはずです。

各ブローカには、これらのACLを管理するためのさまざまなメカニズムがあります。たとえば、ここでは、蚊の詳細があります。

mosquittoのACL形式のドキュメントは、ここでのmanページで見つけることができますhttps://mosquitto.org/man/mosquitto-conf-5.html

あなたはacl_fileオプションでmosquitto.confにACLファイルを追加します。

acl_file /path/to/acl/file 

ACLファイル形式

user <username> 
topic [read|write|readwrite] <topic> 

ユーザーごとに複数のトピック行を設定できます。

ユーザー認証を有効にする方法の詳細は、マニュアルページにも記載されています。

+0

投票の理由は何ですか?これは質問に答えますか? – hardillb

関連する問題