裝置上線之前您需要對裝置進行身份註冊,標識您的裝置。
概述
接入物聯網平台的裝置身份註冊有兩種方式:
一機一密:首先,在物聯網平台註冊裝置,擷取裝置認證資訊(ProductKey、DeviceName、DeviceSecret)作為裝置唯一標識。然後,將裝置認證資訊預燒錄到裝置韌體,裝置在完成上線建連後,即可向物聯網平台上報資料。具體內容,請參見一機一密。
裝置註冊認證的協議說明,見下表。
裝置
支援的協議
裝置端註冊開發
相關文檔
直連裝置
MQTT
HTTPS
網關子裝置
MQTT
一型一密:同一產品下裝置燒錄相同產品認證(ProductKey和ProductSecret)。裝置所屬產品需開通動態註冊功能。
支援動態註冊包含:
預註冊:在物聯網平台註冊裝置,裝置通過動態註冊擷取DeviceSecret。
免預註冊:無需在物聯網平台註冊裝置,裝置通過動態註冊擷取ClientID與DeviceToken的組合。
說明HTTPS協議不支援一型一密免預註冊方式。
裝置完成註冊的流程,請參見一型一密。其中,網關子裝置僅支援預註冊方式,註冊流程說明,請參見網關與子裝置。
裝置註冊認證的協議說明,見下表。
裝置
支援的協議
裝置端註冊開發
資料格式說明
直連裝置
MQTT
HTTPS
網關子裝置
MQTT
子裝置的MQTT動態註冊
請求Topic:
/sys/${productKey}/${deviceName}/thing/sub/register
響應Topic:
/sys/${productKey}/${deviceName}/thing/sub/register_reply
請求資料格式:
{
"id": "123",
"version": "1.0",
"sys":{
"ack":0
},
"params": [
{
"deviceName": "deviceName1234",
"productKey": "a1234******"
}
],
"method": "thing.sub.register"
}
響應資料格式:
{
"id": "123",
"code": 200,
"data": [
{
"iotId": "12344",
"productKey": "a1234******",
"deviceName": "deviceName1234",
"deviceSecret": "xxxxxx"
}
]
}
參數說明如下表。
參數 | 類型 | 說明 |
id | String | 訊息ID號。String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
version | String | 協議版本號碼,目前協議版本號碼唯一取值為1.0。 |
sys | Object | 擴充功能的參數,其下包含各功能欄位。 說明 使用裝置端SDK開發時,如果未設定擴充功能,則無此參數,相關功能保持預設配置。 |
ack | Integer | sys下的擴充功能欄位,表示是否返迴響應資料。
重要 該功能配置說明,請參見物模型使用樣本。 如果未配置該功能,則無此參數,雲端預設返迴響應資料。 |
params | List | 子裝置動態註冊的參數。 |
deviceName | String | 子裝置的名稱。 |
productKey | String | 子裝置的產品ProductKey。 |
iotId | String | 裝置的唯一標識ID。 |
deviceSecret | String | 裝置密鑰。 |
method | String | 要求方法,取值 |
code | Integer | 結果資訊。 |
錯誤碼說明如下表。
錯誤碼 | 訊息 | 描述 |
460 | request parameter error | 請求參數錯誤。 |
6402 | topo relation cannot add by self | 裝置不能將自己添加為自己的子裝置。 |
401 | request auth error | 簽名校正失敗。 |
直連裝置的HTTPS動態註冊
URL模板:
https://iot-auth.${YourRegionId}.aliyuncs.com/auth/register/device
HTTP方法:POST
請求資料格式:
POST /auth/register/device HTTP/1.1 Host: iot-auth.cn-shanghai.aliyuncs.com Content-Type: application/x-www-form-urlencoded Content-Length: 123 productKey=a1234******&deviceName=deviceName1234&random=567345&sign=adfv123hdfdh&signMethod=HmacMD5
響應資料格式:
{ "code": 200, "data": { "productKey": "a1234******", "deviceName": "deviceName1234", "deviceSecret": "adsfw******" }, "message": "success" }
參數說明如下表。
參數
類型
說明
Method
String
要求方法,只支援POST。
Host
String
HTTPS動態註冊的裝置接入地址,格式為
iot-auth.${YourRegionId}.aliyuncs.com
。${YourRegionId}
:請替換為您的物聯網平台裝置所在地區的Region ID。支援HTTPS動態註冊的地區:除華北2(北京)、華南1(深圳)以外的所有地區。
Region ID表達方法,請參見支援的地區。
Content-Type
String
裝置發送給物聯網平台的上行資料的編碼格式。
productKey
String
產品唯一標識。
deviceName
String
裝置名稱。
random
String
隨機數。
sign
String
簽名。
加簽方法:
將所有提交給伺服器的參數(sign、signMethod除外)按照字母順序排序,然後將參數和值依次拼接(無拼接符號)。
通過signMethod指定的加簽演算法,使用產品的ProductSecret,對加簽內容進行加簽。
加簽計算樣本如下:
hmac_sha1(productSecret, deviceNamedeviceName1234productKeya1234******random123)
signMethod
String
簽名方法,目前支援hmacmd5、hmacsha1、hmacsha256。
code
Integer
結果資訊。
deviceSecret
String
裝置密鑰。