本方案不在裝置上燒錄裝置認證,而是裝置上電連網後,向廠商伺服器發起請求,擷取裝置認證(ProductKey、DeviceName和DeviceSecret)。本文介紹廠商雲端服務端開發方案。
裝置擷取裝置認證的方案介紹,請參見擷取裝置認證方案概述。
原理
本方案中,需要部署一個裝置認證散發者,開發相應的服務端API和裝置資訊資料庫表,用於裝置請求擷取裝置認證。
認證散發者收到來自裝置的擷取認證請求時,調用上述API。該API的商務邏輯為:根據請求中的裝置標識查詢裝置資訊資料表,根據查詢結果,進行以下後續操作。
沒有查到傳入的裝置標識,則返回裝置非法錯誤。
有對應的裝置標識,且已有裝置認證,則返回裝置認證。
有對應的裝置標識,但沒有裝置認證,則調用物聯網平台API RegisterDevice註冊裝置身份,擷取認證後,再發送給裝置。
裝置獲得認證之後,再使用該認證串連阿里雲物聯網平台。
參與該過程的各個角色的時序圖如下所示。
裝置需要能自動擷取IP地址,並串連您的認證散發者。
認證散發者由您自行設計實現。
您需要確保裝置串連到認證散發者的安全性和可靠性。
伺服器API設計建議
建議您按以下方法設計該API。
請求參數:
參數
說明
deviceId
裝置在您的系統中的唯一標識。自訂,可以是裝置MAC或者SN等。
返回參數:
參數
說明
productKey
對應物聯網平台頒發的裝置認證的ProductKey。
deviceName
對應物聯網平台頒發的裝置認證的DeviceName。
deviceSecret
對應物聯網平台頒發的裝置認證的DeviceSecret。
裝置資訊資料表設計建議
建議您按以下方法設計裝置資訊資料表。
表格屬性:
表格屬性 | 建議取值 |
資料表名稱 | device_table |
資料生命週期 | -1 |
最巨量資料版本 | 1 |
資料有效版本偏差 | 86400 |
主鍵 | deviceId,字串(String) ,分區鍵。 |
資料欄位:
欄位 | 說明 |
deviceId | 裝置唯一標識。自訂,可以是裝置MAC或者SN等。 |
registerTime | 裝置註冊時間。 |
activateTime | 裝置啟用時間。 |
productKey | 對應物聯網平台頒發的裝置認證的ProductKey。 |
deviceName | 對應物聯網平台頒發的裝置認證的DeviceName。 |
deviceSecret | 對應物聯網平台頒發的裝置認證的DeviceSecret。 |
IotId | 物聯網平台為該裝置頒發的裝置ID,該裝置在物聯網平台上的唯一標識。 |