Share via


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 設定為裝置識別碼。

    提示

    若要測試,您可以使用 適用於 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 憑證的裝置:

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

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

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

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

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

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

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

    螢幕擷取畫面顯示來自 SAS IoT 裝置註冊群組的群組主要金鑰。

  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 應用程式會使用裝置所傳送的模型識別碼,將已註冊的裝置指派給裝置範本

下一步

建議的一些後續步驟為: