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 憑證的裝置連線到您的應用程式:

  1. 建立使用憑證 (X.509) 證明類型的註冊群組
  2. 在註冊群組中新增及驗證 X.509 中繼憑證或根憑證。
  3. 透過註冊群組中的根憑證或中繼憑證產生分葉憑證。 在裝置上安裝分葉憑證,使其在連線到您的應用程式時使用。

每個註冊群組都應該使用唯一的 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 權杖連線到您的應用程式:

  1. 建立使用共用存取簽章 (SAS) 證明類型的註冊群組

  2. 從註冊群組複製群組的主要或次要金鑰。

  3. 使用 Azure CLI 從群組金鑰產生裝置權杖:

    az iot central device compute-device-key --primary-key <enrollment group primary key> --device-id <device ID>
    
  4. 當裝置連線到 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 憑證的裝置:

  1. 使用您新增至 X.509 註冊群組的根憑證或中繼憑證,為您的裝置產生分葉憑證。 使用裝置識別碼作為 CNAME 分葉憑證中的 。 裝置識別碼可以包含字母、數字和 - 字元。

  2. 作為 OEM,請以裝置識別碼、產生的 X.509 分葉憑證和應用程式識別碼 範圍 值來刷新每個裝置。 裝置的程式碼也應該傳送其所實作裝置型號的型號識別碼。

  3. 當您開啟裝置時,其會先連線到 DPS 以擷取其 IoT Central 連線資訊。

  4. 裝置會使用 DPS 的資訊來連線到 IoT Central 應用程式並向其註冊。

  5. IoT Central 應用程式會使用裝置所傳送的模型識別碼,將 已註冊的裝置指派給裝置範本

若要自動註冊使用 SAS 權杖的裝置:

  1. SAS-IoT-Devices 註冊群組複製群組主要金鑰:

    從 S A S - I o T - 裝置註冊群組將主鍵分組。

  2. 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>
    
  3. OEM 會以裝置識別碼、產生的裝置 SAS 金鑰和應用程式識別碼 範圍 值來刷新每個裝置。 裝置的程式碼也應該傳送其所實作裝置型號的型號識別碼。

  4. 當您開啟裝置時,其會先連線到 DPS 以擷取其 IoT Central 註冊資訊。

  5. 裝置會使用 DPS 的資訊來連線到 IoT Central 應用程式並向其註冊。

  6. IoT Central 應用程式會使用裝置所傳送的模型識別碼,將 已註冊的裝置指派給裝置範本

下一步

一些建議的後續步驟是: