カスタム MQTT クライアントを使用してデバイスを IoT Platform に接続する際は、MQTT 署名認証パラメーター(ユーザー名、パスワード、mqttClientId)を提供する必要があります。本トピックでは、これらのパラメーターを取得する方法について説明します。
概要
ビジネス要件に応じて、以下のいずれかの方法で MQTT 署名パラメーターを取得できます。
|
方法 |
説明 |
|
サポートされる署名アルゴリズムは hmacsha256 です。 デバイスのクライアント ID はデフォルトで |
|
|
サポートされる署名アルゴリズムは hmacsha256 です。 デバイスのクライアント ID はデフォルトで |
IoT Platform コンソールから取得
IoT Platform コンソールにログインします。
概要ページで、管理対象のインスタンスを見つけ、インスタンス ID またはインスタンス名をクリックします。
-
左側のナビゲーションウィンドウで、を選択し、デバイスページに移動します。
-
ご利用のデバイスを見つけ、表示をクリックしてデバイス詳細ページに移動します。
-
デバイス情報タブで、MQTT 接続パラメーターの横にある表示をクリックし、MQTT 署名パラメーターを確認します。
重要ここで表示されるclientIdパラメーターは、
mqttClientIdに対応しています。デバイスのクライアント ID と混同しないでください。MQTT 接続パラメーターの詳細については、「MQTT-TLS 通信」をご参照ください。MQTT 接続パラメーターダイアログボックスが表示され、clientId、username、passwd、mqttHostUrl、およびportの値が表示されます。すべてコピーをクリックすると、すべてのパラメーターをコピーできます。
Node.js スクリプトを使用して計算
-
signTool.zipパッケージをダウンロードして解凍し、mqttSignTool.jsファイル内の以下のパラメーターを編集して保存します。
パラメーター
例
説明
productKey
a1Ee***
デバイス追加後に保存したデバイス証明書です。詳細については、「デバイス証明書情報」をご参照ください。
コンソールのデバイスデバイス詳細ページで情報を確認できます。
deviceName
8Co5***
deviceSecret
bcabcf***
timestamp
2524608000000
現在時刻(ミリ秒単位)。
briefId
12345
デバイスのクライアント ID です。このパラメーターは省略可能です。
デフォルトでは、ツールパッケージによりこのパラメーターは
${ProductKey} + '.' + ${DeviceName}に設定されますが、必要に応じて値を変更できます。例:var briefId = '12345'。重要最大 64 文字の任意の値を指定できます。識別しやすいように、デバイスの MAC アドレスまたはシリアル番号 (SN) を使用することを推奨します。
-
Windows または Linux オペレーティングシステムで、Node.js をダウンロードしてインストールします。以下の例では、Ubuntu 16.04 64 ビット Linux システムと事前コンパイル済みパッケージ
node-v16.5.0-linux-x64.tar.gzを使用しています。-
Linux 仮想マシン (VM) にログインします。
-
以下のコマンドを実行して、パッケージをダウンロードおよび解凍します。
wget https://nodejs.org/dist/v16.5.0/node-v16.5.0-linux-x64.tar.gz tar xf node-v16.5.0-linux-x64.tar.gz cd node-v16.5.0-linux-x64 ./bin/node -v以下のバージョン番号が返された場合、Node.js は正常にインストールされています。
v16.5.0 -
node-v16.5.0-linux-x64/binディレクトリには node および npm コマンドが含まれています。以下のコマンドを実行して、これらをグローバル環境変数として設定します。
ln -s /root/node-v16.5.0-linux-x64/bin/npm /usr/local/bin/ ln -s /root/node-v16.5.0-linux-x64/bin/node /usr/local/bin/
-
-
node-v16.5.0-linux-x64ディレクトリから退出し、JavaScript ファイルおよび署名ライブラリ用のsignToolプロジェクトフォルダを作成します。
cd.. mkdir signTool cd signTool/ -
ステップ1で編集したmqttSignTool.jsファイルを、Linux VM 上のsignToolディレクトリにアップロードします。
-
signToolディレクトリで、以下のコマンドを実行して署名ライブラリをダウンロードし、ディレクトリの内容を一覧表示します。
npm install crypto-js lsダウンロードされたライブラリファイルは以下のとおりです。
mqttSignTool.js node_modules package.json package-lock.json -
以下のコマンドを実行してmqttSignTool.jsスクリプトを実行します。
node mqttSignTool.jsこのコマンドにより、MQTT 経由で IoT Platform に接続するために必要な署名認証パラメーターが返されます。
重要ここで表示されるclientIdパラメーターは、
mqttClientIdに対応しています。デバイスのクライアント ID と混同しないでください。MQTT 接続パラメーターの詳細については、「MQTT-TLS 通信」をご参照ください。username: xxx clientId: xxx|securemode=2,signmethod=hmacsha256,timestamp=2524608000000| passwd: xxx