IoT Central 中的裝置驗證概念
本文說明裝置如何向 IoT Central 應用程式進行驗證。 若要深入了解整個連線程序,請參閱連線裝置。
裝置使用「共用存取簽章 (SAS) 權杖」或「X.509 憑證」向 IoT Central 應用程式進行驗證。 生產環境中建議使用 X.509 憑證。
您使用「註冊群組」來管理 IoT Central 應用程式中的裝置驗證選項。
本文說明下列裝置驗證選項:
X.509 註冊群組
在生產環境中,建議的 IoT Central 裝置驗證機制是使用 X.509 憑證。 若要深入了解,請參閱使用 X.509 CA 憑證進行裝置驗證。
X.509 註冊群組包含根或中繼 X.509 憑證。 如果裝置具有衍生自根或中繼憑證的有效分葉憑證,則可以進行驗證。
若要將具有 X.509 憑證的裝置連線到您的應用程式:
- 建立使用憑證 (X.509) 證明類型的「註冊群組」。
- 在註冊群組中新增及驗證 X.509 中繼憑證或根憑證。
- 透過註冊群組中的根憑證或中繼憑證產生分葉憑證。 在裝置上安裝分葉憑證,供裝置在連線到您的應用程式時使用。
每個註冊群組都應該使用唯一的 X.509 憑證。 IoT Central 不支援跨多個註冊群組使用相同的 X.509 憑證。
若要深入了解,請參閱如何連線具有 X.509 憑證的裝置
僅供測試
在實際執行環境中,請使用來自憑證提供者的憑證。 若只是測試,您可以使用下列公用程式來產生根、中繼和裝置憑證:
- Azure IoT 裝置佈建裝置 SDK 的工具:可用來產生及驗證 X.509 憑證和金鑰的一組 Node.js 工具。
- 管理範例和教學課程的測試 CA 憑證:一組 PowerShell 和 Bash 指令碼,用於:
- 建立憑證鏈結。
- 將憑證儲存為 .cer 檔案,以上傳至 IoT Central 應用程式。
- 使用 IoT Central 應用程式的驗證碼來產生驗證憑證。
- 使用裝置識別碼作為工具的參數,為您的裝置建立分葉憑證。
SAS 註冊群組
SAS 註冊群組包含群組層級 SAS 金鑰。 如果裝置具有衍生自群組層級 SAS 金鑰的有效 SAS 權杖,則可以進行驗證。
若要將具有裝置 SAS 金鑰的裝置連線到您的應用程式:
建立使用共用存取簽章 (SAS) 證明類型的「註冊群組」。
從註冊群組複製群組的主要或次要金鑰。
使用 Azure CLI 從群組金鑰產生裝置權杖:
az iot central device compute-device-key --primary-key <enrollment group primary key> --device-id <device ID>
當裝置連線到 IoT Central 應用程式時,請使用所產生的裝置權杖。
注意
若要使用註冊群組中現有的 SAS 金鑰,請停用 [自動產生金鑰] 切換,並手動輸入您的 SAS 金鑰。
如果您使用預設的 SAS-IoT-Devices 註冊群組,IoT Central 會為您產生個別的裝置金鑰。 若要存取這些金鑰,請在裝置詳細資料頁面上選取 [連線]。 此頁面會顯示您在裝置程式碼中使用的 [識別碼範圍]、[裝置識別碼]、[主要金鑰] 和 [次要金鑰]。 此頁面也會顯示 QR 代碼,其中包含相同的資料。
個別申請
一般而言,裝置會使用衍生自註冊群組 X.509 憑證或 SAS 金鑰的認證來連線。 不過,如果您的裝置各自有自己的認證,您可以使用個別註冊。 個別註冊是指登記允許連線的單一裝置。 個別註冊可以使用 X.509 分葉憑證或 SAS 權杖 (來自實體或虛擬信賴平台模組) 作為證明機制。 如需詳細資訊,請參閱 DPS 個別註冊。
注意
當您為裝置建立個別註冊時,其優先順序高於 IoT Central 應用程式中的預設註冊群組選項。
建立個別註冊
IoT Central 可針對個別註冊支援下列證明機制:
對稱金鑰證明:對稱金鑰證明是向 DPS 執行個體驗證裝置的一種簡單方法。 若要建立使用對稱金鑰的個別註冊,請開啟裝置的 [裝置連線] 頁面,選取 [個別註冊] 作為驗證類型,並選取 [共用存取簽章 (SAS)] 作為驗證方法。 輸入 base64 編碼的主要和次要金鑰,並儲存您的變更。 使用 [識別碼範圍]、[裝置識別碼] 及主要或次要金鑰來連線您的裝置。
提示
若要測試,您可以使用 OpenSSL 來產生 base64 編碼金鑰:
openssl rand -base64 64
X.509 憑證:若要建立使用 X.509 憑證的個別註冊,請開啟 [裝置連線] 頁面,選取 [個別註冊] 作為驗證類型,並選取 [憑證 (X.509)] 作為驗證方法。 與個別註冊項目搭配使用的裝置憑證需要將簽發者和主體 CN 設定為裝置識別碼。
提示
若要測試,您可以使用 適用於 Node.js 的 Azure IoT 裝置佈建裝置 SDK 的工具來產生自我簽署憑證:
node create_test_cert.js device "mytestdevice"
信賴平台模組 (TPM) 證明:TPM 是一種硬體安全性模組。 使用 TPM 是與裝置連線的最安全方式之一。 本文假設您使用的是個別、韌體或整合式 TPM。 模擬軟體的 TPM 非常適合用來建立原型或測試,但是其不提供與個別、韌體或整合式 TPM 相同的安全性等級。 請勿在生產環境中使用軟體 TPM。 若要建立使用 TPM 的個別註冊,請開啟 [裝置連線] 頁面,選取 [個別註冊] 作為驗證類型,並選取 [TPM] 作為驗證方法。 輸入 TPM 簽署金鑰並儲存裝置連線資訊。
自動註冊裝置
此案例可讓 OEM 大量製造不必先在應用程式中註冊即可連線的裝置。 OEM 會產生適當的裝置認證,並在工廠中設定裝置。
若要自動註冊使用 X.509 憑證的裝置:
使用您新增到 X.509 註冊群組的根或中繼憑證,為裝置產生分葉憑證。 在分葉憑證中使用裝置識別碼作為
CNAME
。 裝置識別碼可以包含字母、數字和-
字元。身為 OEM,請以裝置識別碼、產生的 X.509 分葉憑證和應用程式識別碼範圍值來刷新每個裝置。 裝置的程式碼也應該傳送其所實作裝置型號的型號識別碼。
當您開啟裝置時,其會先連線到 DPS 以擷取其 IoT Central 連線資訊。
裝置會使用 DPS 的資訊來連線到 IoT Central 應用程式並向其註冊。
IoT Central 應用程式會使用裝置所傳送的模型識別碼,將已註冊的裝置指派給裝置範本。
若要自動註冊使用 SAS 權杖的裝置:
從 SAS-IoT-Devices 註冊群組複製群組主要金鑰:
使用
az iot central device compute-device-key
命令來產生裝置 SAS 金鑰。 使用上一個步驟中的群組主要金鑰。 裝置識別碼可以包含字母、數字和-
字元:az iot central device compute-device-key --primary-key <enrollment group primary key> --device-id <device ID>
身為 OEM,請以裝置識別碼、產生的裝置 SAS 金鑰和應用程式識別碼範圍值來刷新每個裝置。 裝置的程式碼也應該傳送其所實作裝置型號的型號識別碼。
當您開啟裝置時,其會先連線到 DPS 以擷取其 IoT Central 註冊資訊。
裝置會使用 DPS 的資訊來連線到 IoT Central 應用程式並向其註冊。
IoT Central 應用程式會使用裝置所傳送的模型識別碼,將已註冊的裝置指派給裝置範本。
下一步
建議的一些後續步驟為:
- 檢閱開發裝置的最佳做法。
- 檢閱教學課程:建立用戶端應用程式並連線至 Azure IoT Central 應用程式中示範如何使用 SAS 權杖的一些範例程式碼
- 了解如何使用適用於 IoT Central 應用程式的 Node.js 裝置 SDK 來連線具有 X.509 憑證的裝置
- 了解如何使用 Azure CLI 監視裝置連線能力
- 請參閱 Azure IoT Edge 裝置和 Azure IoT Central