シーメンス#S7-1500-User LoginでMQTT Brokerアクセス

前回はS7-1500を使ってMQTT BrokerにTopicをPublishとSubscribeする方法紹介しました。そして今回はUser-loginの機能を追加しようと思います。つまり接続するときはBroker側からUser名とPasswordが求められるようになります。まぁ、セキュリティー上は少しだけ安全になったかな?

もしそのあたりが覚えてない方はこのLINKで参考してくださいね。

MQTTはなに?
MQTT#Brokerのセットアップ
シーメンス#S7-1500でMQTT BrokerにデータをPublishする
シーメンス#S7-1500でMQTT BrokerにTopicをSubscribeする

Broker側

まずUser名とPasswordを作ります。

touch password.txt
sudo nano password.txt

password.txtの中にUserName:PasswordのようなFormatになっています。

いまはテストなので適当でOKです。

そしてコマンドを使ってPasswordをHashします。

mosquitto_passwd -U password.txt

先のpassword.txtはこうになりますね。

s71500:$6$+WslwdBhwO0Fz6lR$R72WzInfmXyUP+YXMdoTq6TAlkCB6dfC7pKGdYmOV0xHEyZ/QgP0gvFOcQnojiaTzdNIcoUSGdhtxV6R/j1rwg==
s71200:$6$3iKgiCbBJojToAJ+$CBTWKTbSMAFe5Z2e/UoccTm1X7vuGvrDIEKsA0oko8p1XPUUCKuyC00NqhHPYKRSn615gXuTCiQ4pbiXY0zVvw==

次はpassword.txtを /etc/mosquitto/にCopyします。

sudo cp password.txt /etc/mosquitto/

 /etc/mosquitto/mosquitto.conf を編集します。

sudo  nano /etc/mosquitto/mosquitto.conf 

allow_anonymous trueをComment Outし、LoginされてないUserはアクセスできないように設定します。

#allow_anonymous true
allow_anonymous false

次はPassword fileのPathを指定します。

password_file /etc/mosquitto/password.txt

最後はBrokerをRestartします。

sudo systemctl restart mosquitto

試し

User名とPasswordを指定なしでやりますと接続拒否されます。

sudo mosquitto_pub -d- -t a -m hi

-u はUserNameで-Pはパスワードですね。そのように指定し接続するとBrokerに拒否されることがありませんね。(もちろんUser NameとPasswordが合ってる場合、ね)

sudo mosquitto_pub -d -u s71500 -P 12345678 -t Station/01/Unit2/Temp -m 41.1

サーバー側にもPublishされたことがあると分かります。それでBroker側準備完了。

シーメンス側

connectFlagのuserNameとpasswordのBoolをTrueにします。(Line2,3)

そしてuserNameとpasswordを設定します。(Line5-9)

やるのはそれだけです。

こちらはUser Name・Passwordが不正の場合、EnableのBoolをONするとErrorになり、Statusも16#0000_80A3になると分かります。

そしてこちらはUser Name・Passwordが正しい場合ですね。

以上になります。はーい、お疲れ様です。

Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする