関連記事。
- Azure_IoT_Central_ESP32をSeeed Studio XIAO ESP32C3で動かしてみた(グループSAS)
- Azure_IoT_Central_ESP32をSeeed Studio XIAO ESP32C3で動かしてみた(個別X.509)
- Azure_IoT_Central_ESP32をSeeed Studio XIAO ESP32C3で動かしてみた(個別SAS)
- Azure_IoT_Central_ESP32をSeeed Studio XIAO ESP32C3で動かしてみた(グループX.509)
- Azure_IoT_Central_ESP32をSeeed Studio XIAO ESP32C3で動かしてみた(グループX.509 その2)
これの続き。
Azure IoT CentralのグループSASを試しました。
個別SASの個別って何?
Azure_IoT_Central_ESP32をSeeed Studio XIAO ESP32C3で動かしてみた(グループSAS)では、Azure IoT CentralのDevices > Connect > Device connection groupsで、Authentication type = SASとしたときに表示されているSAS Keyを使いました。このSAS KeyはGroup enrollmentのSAS KeyとDevice IDから生成されています。わたしは"グループSASから生成されたデバイスSAS"、略してグループSASと呼んでいます。
Group enrollmentのSAS Keyは、Permissions > Device connection groups > SAS-IoT-Devicesで確認できます。
一方、Azure IoT CentralのDevices > Connect > Device connection groupsで、Authentication type = Individual enrollment, Authentication method = SASにもSAS Keyがあります。このSAS Keyは生成、表示されていません。デバイス毎に、自分でSAS Keyを作ってAzure IoT Centralのデバイスに設定することで使えるようになります。これを個別SASと呼んでいます。
箇条書きにするとこんな感じ。
個別SASのSAS Keyを作る
Keyは、ランダムなデータをbase64でエンコードすればOKです。openssl
コマンドを使うと一発で作成できます。
WSLのUbuntu:
echo `openssl rand -base64 64 | tr -d '\n'`
Azure IoT Centralのデバイスに個別SASを設定
作成したSAS KeyをAzure IoT Centralのデバイスに設定します。
- Authentication Type = Individual enrollment
- Authentication method = Shared access signature (SAS)
- Primary key = 作成したSAS Key
- Secondary key = 作成したSAS Key
Secondaryが未設定だとSaveをクリックできないので、Primaryと同じものを設定しました。
iot_configs.h
への設定に必要なID scope
、Device ID
、Primary key
をコピっておきます
さあ、動かそう
Wi-FiとAzure IoT Centralの接続情報をiot_configs.h
にハードコードします。
iot_configs.h:
#define DPS_ID_SCOPE "0ne0014D070" #define IOT_CONFIG_DEVICE_ID "device1" #define IOT_CONFIG_DEVICE_KEY "HlYYGLpVQx7XgDRDxvkhl8MF2dG8gAnwJp8o1cY2o84b3VLDVtxjeQ/HB9qhwr8d5HVuEr0vfSfHjsXtFTZVug=="
Uploadすると、、、すんなり動いた。
わかったこと、気づいたこと
- SAS Keyはopensslコマンドで楽々作成
- Azure IoT CentralのグループSAS/個別SASの画面や用語がややこしい
- 64バイトのSAS KeyだとAzure_IoT_Central_ESP32動かない←解決済み