IoT Central 中的裝置驗證概念
本文說明裝置如何向IoT Central 應用程式進行驗證。 若要深入了解整個連線程序,請參閱連線裝置。
裝置會使用共用存取簽章 (SAS) 權杖或 X.509 憑證向 IoT Central 應用程式進行驗證。 生產環境中建議使用 X.509 憑證。
您可以使用 註冊群組 來管理 IoT Central 應用程式中的裝置驗證選項。
本文說明下列裝置驗證選項:
每個驗證選項都需要每個裝置都有唯一的裝置標識碼。 裝置標識碼是您用來管理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 應用程式的每個裝置都必須有唯一的裝置識別碼。 上述命令會為每個裝置產生唯一的令牌。
當裝置連線到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 設定為裝置識別碼。
提示
若要進行測試,您可以使用 適用於 azure IoT 裝置布建裝置 SDK 的工具,Node.js產生自我簽署憑證:
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