快速入門:布建模擬對稱金鑰裝置

在本快速入門中,您將在 Windows 電腦上建立模擬裝置。 模擬裝置將會設定為使用 對稱金鑰證明 機制進行驗證。 設定裝置之後,您接著會使用 Azure IoT 中樞 裝置布建服務將它布建到 IoT 中樞。

如果您不熟悉布建的程式,請檢閱布 概觀。

本快速入門示範 Windows 型工作站的解決方案。 不過,您也可以在 Linux 上執行程式。 如需 Linux 範例,請參閱 教學課程:針對地理位置進行布建

必要條件

  • 在 Windows 電腦上安裝 .NET SDK 6.0 或更新版本。 您可以使用下列命令來檢查您的版本。

    dotnet --info
    
  • 在 Windows 電腦上安裝 Python 3.7 或更新版本。 您可以藉由執行 python --version 來檢查您的 Python 版本。
  • 安裝最新版的 Git。 請確定 Git 已新增至命令視窗可存取的環境變數。 請參閱 Software Freedom Conservancy 的 Git 用戶端工具 ,以取得要安裝的最新版 git 工具,包括 Git Bash,這是可用來與本機 Git 存放庫互動的命令列應用程式。

準備您的開發環境

在本節中,您將準備用來建置 Azure IoT C SDK的開發環境。 範例程式碼會在裝置的開機順序期間嘗試布建裝置。

  1. 下載最新的 CMake 建置系統

    重要

    在開始 CMake 安裝之前,請先確認 Visual Studio 必要條件 (Visual Studio 和「使用 C++進行桌面開發」工作負載) 。 在符合先決條件,並且驗證過下載項目之後,請安裝 CMake 建置系統。 此外,請注意,舊版 CMake 建置系統無法產生本文中使用的解決方案檔案。 請務必使用最新版的 CMake。

  2. 開啟網頁瀏覽器,並移至 Azure IoT C SDK 的 [發行] 頁面

  3. 選取頁面頂端的 [ 標記 ] 索引標籤。

  4. 複製最新版 Azure IoT C SDK 的標記名稱。

  5. 開啟命令提示字元或 Git Bash 殼層。 執行下列命令來複製最新版的 Azure IoT C SDK GitHub 存放庫, (將 取代 <release-tag> 為您在上一個步驟中複製的標記) 。

    git clone -b <release-tag> https://github.com/Azure/azure-iot-sdk-c.git
    cd azure-iot-sdk-c
    git submodule update --init
    

    此作業可能需要幾分鐘的時間才能完成。

  6. 當作業完成時,請從 azure-iot-sdk-c 目錄執行下列命令:

    mkdir cmake
    cd cmake
    
  7. 程式碼範例會使用對稱金鑰來提供證明。 執行下列命令,以建置開發用戶端平臺專屬的 SDK 版本,其中包含裝置布建用戶端:

    cmake -Dhsm_type_symm_key:BOOL=ON -Duse_prov_client:BOOL=ON  ..
    

    提示

    如果 cmake 找不到您的 C++ 編譯器,您可以在執行上述命令時收到建置錯誤。 如果發生這種情況,請嘗試在 Visual Studio 命令提示字元中執行命令。

  8. 建置成功完成時,最後幾個輸出行看起來會類似下列輸出:

    $ cmake -Dhsm_type_symm_key:BOOL=ON -Duse_prov_client:BOOL=ON  ..
    -- Building for: Visual Studio 16 2019
    -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19042.
    -- The C compiler identification is MSVC 19.29.30040.0
    -- The CXX compiler identification is MSVC 19.29.30040.0
    
    ...
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: E:/IoT Testing/azure-iot-sdk-c/cmake
    
  1. 開啟 Git CMD 或 Git Bash 命令列環境。

  2. 使用下列命令複製 適用于 C# GitHub 的 Azure IoT SDK 存放庫:

    git clone https://github.com/Azure/azure-iot-sdk-csharp.git
    
  1. 開啟 Git CMD 或 Git Bash 命令列環境。

  2. 使用下列命令複製適用於 Node.js 的 Azure IoT SDK GitHub 存放庫:

    git clone https://github.com/Azure/azure-iot-sdk-node.git --recursive
    
  1. 開啟 Git CMD 或 Git Bash 命令列環境。

  2. 使用下列命令複製 適用于 Python 的 Azure IoT SDK GitHub 存放庫:

    git clone https://github.com/Azure/azure-iot-sdk-python.git --recursive
    
  1. 開啟 Git CMD 或 Git Bash 命令列環境。

  2. 使用下列命令複製適用于 JAVA GitHub 的 Azure IoT SDK 存放庫:

    git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
    
  3. 移至根 azure-iot-sdk-java 目錄並建置專案以下載所有必要的套件。 此步驟可能需要幾分鐘的時間才能完成。

    cd azure-iot-sdk-java
    mvn install -DskipTests=true
    

建立裝置註冊

Azure IoT 裝置佈建服務支援兩種類型的註冊:

本文示範使用 IoT 中樞布建單一裝置的個別註冊。

  1. 登入 Azure 入口網站

  2. 在左側功能表或入口網站頁面上,選取 [所有資源]。

  3. 選取您的裝置布建服務。

  4. 在 [ 設定] 功能表中,選取 [管理註冊]。

  5. 在頁面頂端,選取 [+ 新增個別註冊]。

  6. 在 [ 新增註冊 ] 頁面中,輸入下列資訊。

    • 機制:選取 [對稱金鑰 ] 作為身分識別證明機制。

    • 自動產生金鑰︰選取此方塊。

    • 註冊識別碼:輸入註冊識別碼以識別註冊。 註冊識別碼是不區分大小寫的字串, (最多 128 個字元的英數位元長) 加上特殊字元: '-' 、、 '.''_'':' 、 。 最後一個字元必須是英數位元或虛線 ('-') 。 例如,symm-key-device-007

    • IoT 中樞裝置識別碼:輸入裝置識別碼。 裝置識別碼必須符合 裝置識別碼字串需求

    輸入裝置註冊資訊。

    輸入 C# 裝置註冊資訊。

    輸入Node.js裝置註冊資訊。

    輸入 Python 裝置註冊資訊。

    輸入 JAVA 裝置註冊資訊。

  7. 選取 [儲存]。 系統會產生 主要金鑰次要金鑰 ,並將其新增至註冊專案,並帶回 [管理註冊 ] 頁面。

  8. 若要檢視模擬對稱金鑰裝置註冊,請選取 [個別註冊] 索引標籤

  9. 選取您的裝置 (symm-key-device-007) 。

  10. 複製產生的 主鍵值。

    複製裝置註冊的主要金鑰

準備並執行裝置布建程式碼

在本節中,您將更新裝置範例程式碼,以將裝置的開機順序傳送至裝置布建服務實例。 此開機順序會導致裝置被辨識、驗證,並指派給連結至裝置布建服務實例的 IoT 中樞。

範例布建程式碼會依序完成下列工作:

  1. 使用下列三個參數向裝置布建資源驗證您的裝置:

    • 裝置布建服務的識別碼範圍
    • 裝置註冊的註冊識別碼。
    • 裝置註冊的主要對稱金鑰。
  2. 將裝置指派給已連結至裝置布建服務實例的 IoT 中樞。

若要使用您的裝置資訊更新並執行布建範例:

  1. 在裝置布建服務的主功能表中,選取 [ 概觀]。

  2. 複製 [ 識別碼範圍] 值。

    擷取裝置布建服務端點資訊

  3. 在 Visual Studio 中,開啟透過執行 CMake 而產生的 azure_iot_sdks.sln 方案檔案。 該方案檔案應位於下列位置:

    
    \azure-iot-sdk-c\cmake\azure_iot_sdks.sln
    
    

    提示

    如果檔案不是在您的 cmake 目錄中產生,請確定您使用的是最新版本的 CMake 組建系統。

  4. 在 Visual Studio 的[方案總管] 視窗中,移至[Provision_Samples] 資料夾。 展開名為 prov_dev_client_sample的範例專案。 展開 [來源檔案],然後開啟 prov_dev_client_sample.c

  5. id_scope尋找常數,並將值取代為您在步驟 2 中複製的識別碼範圍值。

    static const char* id_scope = "0ne00002193";
    
  6. 在相同的檔案中找出 main() 函式的定義。 確定 hsm_type 變數已設定為 SECURE_DEVICE_TYPE_SYMMETRIC_KEY,如下所示:

    SECURE_DEVICE_TYPE hsm_type;
    //hsm_type = SECURE_DEVICE_TYPE_TPM;
    //hsm_type = SECURE_DEVICE_TYPE_X509;
    hsm_type = SECURE_DEVICE_TYPE_SYMMETRIC_KEY;
    
  7. 在標記為批註的 prov_dev_client_sample.c中尋找 的呼叫 prov_dev_set_symmetric_key_info()

    // Set the symmetric key if using they auth type
    //prov_dev_set_symmetric_key_info("<symm_registration_id>", "<symmetric_Key>");
    

    取消批註函式呼叫,並將預留位置值取代 (包括角括弧) 為您稍早複製的註冊識別碼和主鍵值。

    // Set the symmetric key if using they auth type
    prov_dev_set_symmetric_key_info("symm-key-device-007", "your primary key here");
    
  8. 儲存檔案。

  9. 以滑鼠右鍵按一下 prov_dev_client_sample 專案,然後選取 [設定為啟始專案]。

  10. 在 Visual Studio 功能表中,選取 [偵錯]>[啟動但不偵錯] 以執行解決方案。 出現重新建置專案的提示時,選取 [是],以在執行前重新建置專案。

    下列輸出是裝置成功連線到佈建服務執行個體以準備指派給 IoT 中樞的範例:

    Provisioning API Version: 1.2.8
    
    Registering Device
    
    Provisioning Status: PROV_DEVICE_REG_STATUS_CONNECTED
    Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING
    
    Registration Information received from service:
    test-docs-hub.azure-devices.net, deviceId: device-007
    Press enter key to exit:
    

範例布建程式碼會完成下列工作:

  1. 使用下列三個參數向裝置布建資源驗證您的裝置:

    • 裝置布建服務的識別碼範圍
    • 裝置註冊的註冊識別碼。
    • 裝置註冊的主要對稱金鑰。
  2. 將裝置指派給已連結至裝置布建服務實例的 IoT 中樞。

  3. 將測試遙測訊息傳送至 IoT 中樞。

若要使用您的裝置資訊更新並執行布建範例:

  1. 在裝置布建服務的主功能表中,選取 [ 概觀]。

  2. 複製 [ 識別碼範圍] 值。

    擷取裝置布建服務端點資訊

  3. 開啟命令提示字元,然後移至複製的 SDK 存放庫中的 SymmetricKeySample

    cd '.\azure-iot-sdk-csharp\provisioning\device\samples\How To\SymmetricKeySample\'
    
  4. SymmetricKeySample 資料夾中,在文字編輯器中開啟 Parameters.cs 。 此檔案會顯示範例所支援的參數。 執行範例時,本文只會使用前三個必要參數。 檢閱此檔案中的程式碼。 不需要變更。

    參數 必要 描述
    --i--IdScope True DPS 實例的識別碼範圍
    --r--RegistrationId True 註冊識別碼是不區分大小寫的字串, (最多 128 個字元的英數位元長) 加上特殊字元: '-' 、、 '.''_'':' 、 。 最後一個字元必須是英數位元或虛線 ('-') 。
    --p--PrimaryKey True 個別註冊的主要金鑰或群組註冊的衍生裝置金鑰。 如需如何產生衍生金鑰,請參閱 ComputeDerivedSymmetricKeySample
    --g--GlobalDeviceEndpoint False 要連線之裝置的全域端點。 預設為 global.azure-devices-provisioning.net
    --t--TransportType False 要用來與裝置布建實例通訊的傳輸。 預設值為 Mqtt。 可能的值包括 MqttMqtt_WebSocket_OnlyMqtt_Tcp_OnlyAmqpAmqp_WebSocket_OnlyAmqp_Tcp_only 、 和 Http1
  5. SymmetricKeySample 資料夾中,開啟文字編輯器中的 ProvisioningDeviceClientSample.cs 。 此檔案顯示 SecurityProviderSymmetricKey 類別如何搭配 ProvisioningDeviceClient 類別來布建模擬的對稱金鑰裝置。 檢閱此檔案中的程式碼。 不需要變更。

  6. 使用下列命令建置和執行範例程式碼:

    • 將 取代 <id-scope> 為您在步驟 2 中複製的識別碼 範圍
    • 將 取代 <registration-id> 為您從裝置註冊複製的 註冊 識別碼。
    • 將 取代 <primarykey> 為您從裝置註冊複製的主
    dotnet run --i <id-scope> --r <registration-id> --p <primarykey>
    
  7. 您現在應該會看到類似下列輸出的內容。 「TestMessage」 字串會以測試訊息的形式傳送至中樞。

    D:\azure-iot-sdk-csharp\provisioning\device\samples\How To\SymmetricKeySample>dotnet run --i 0ne00000A0A --r symm-key-csharp-device-01 --p sbDDeEzRuEuGKag+kQKV+T1QGakRtHpsERLP0yPjwR93TrpEgEh/Y07CXstfha6dhIPWvdD1nRxK5T0KGKA+nQ==
    
    Initializing the device provisioning client...
    Initialized for registration Id symm-key-csharp-device-01.
    Registering with the device provisioning service...
    Registration status: Assigned.
    Device csharp-device-01 registered to ExampleIoTHub.azure-devices.net.
    Creating symmetric key authentication for IoT Hub...
    Testing the provisioned device with IoT Hub...
    Sending a telemetry message...
    Finished.
    Enter any key to exit.
    

範例布建程式碼會依序完成下列工作:

  1. 使用下列四個參數向裝置布建資源驗證您的裝置:

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. 將裝置指派給已連結至裝置布建服務實例的 IoT 中樞。

  3. 將測試遙測訊息傳送至 IoT 中樞。

若要使用您的裝置資訊更新並執行布建範例:

  1. 在裝置布建服務的主功能表中,選取 [ 概觀]。

  2. 複製 [ 識別碼範圍 ] 和 [ 全域裝置端點 ] 值。

    擷取裝置布建服務端點資訊

  3. 開啟命令提示字元來執行Node.js命令,然後移至下列目錄:

    cd azure-iot-sdk-node/provisioning/device/samples
    
  4. 在佈建/裝置/範例資料夾中,開啟 register_symkey.js 並檢閱程式碼。 請注意,範例程式碼會設定自訂承載:

    provisioningClient.setProvisioningPayload({a: 'b'});
    

    您可以批註化此程式碼,因為此快速入門不需要此程式碼。 您需要自訂承載,才能使用自訂配置函式將裝置指派給IoT 中樞。 如需詳細資訊,請參閱教學課程:使用自訂配置原則

    provisioningClient.register() 方法會嘗試註冊您的裝置。

    不需要進一步的變更。

  5. 在命令提示字元中,執行下列命令來設定範例所使用的環境變數:

    • 將 取代 <provisioning-global-endpoint> 為您在步驟 2 中複製的 全域裝置端點
    • 將 取代 <id-scope> 為您在步驟 2 中複製的識別碼 範圍
    • 將 取代 <registration-id> 為您從裝置註冊複製的 註冊 識別碼。
    • 將 取代 <primarykey> 為您從裝置註冊複製的主
    set PROVISIONING_HOST=<provisioning-global-endpoint>
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<primarykey>
    
  6. 使用下列命令建置和執行範例程式碼:

     npm install
    
    node register_symkey.js
    
  7. 您現在應該會看到類似下列輸出的內容。 「Hello World」 字串會以測試訊息的形式傳送至中樞。

    D:\azure-iot-samples-csharp\provisioning\Samples\device\SymmetricKeySample>dotnet run --s 0ne00000A0A --i symm-key-csharp-device-01 --p sbDDeEzRuEuGKag+kQKV+T1QGakRtHpsERLP0yPjwR93TrpEgEh/Y07CXstfha6dhIPWvdD1nRxK5T0KGKA+nQ==
    
    Initializing the device provisioning client...
    Initialized for registration Id symm-key-csharp-device-01.
    Registering with the device provisioning service...
    Registration status: Assigned.
    Device csharp-device-01 registered to ExampleIoTHub.azure-devices.net.
    Creating symmetric key authentication for IoT Hub...
    Testing the provisioned device with IoT Hub...
    Sending a telemetry message...
    Finished.
    Enter any key to exit.
    

範例布建程式碼會依序完成下列工作:

  1. 使用下列四個參數向裝置布建資源驗證您的裝置:

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. 將裝置指派給已連結至裝置布建服務實例的 IoT 中樞。

  3. 將測試遙測訊息傳送至 IoT 中樞。

若要使用您的裝置資訊更新並執行布建範例:

  1. 在裝置布建服務的主功能表中,選取 [ 概觀]。

  2. 複製 [ 識別碼範圍 ] 和 [ 全域裝置端點 ] 值。

    擷取裝置布建服務端點資訊

  3. 開啟命令提示字元,並移至範例檔案 provision_symmetric_key.py所在的目錄。

    cd azure-iot-sdk-python\samples\async-hub-scenarios
    
  4. 在命令提示字元中,執行下列命令來設定範例所使用的環境變數:

    • 將 取代 <provisioning-global-endpoint> 為您在步驟 2 中複製的 全域裝置端點
    • 將 取代 <id-scope> 為您在步驟 2 中複製的識別碼 範圍
    • 將 取代 <registration-id> 為您從裝置註冊複製的 註冊 識別碼。
    • 將 取代 <primarykey> 為您從裝置註冊複製的主
    set PROVISIONING_HOST=<provisioning-global-endpoint>
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<primarykey>
    
  5. 執行下列命令來安裝 azure-iot-device 程式庫。

    pip install azure-iot-device
    
  6. provision_symmetric_key.py中執行 Python 範例程式碼。

    python provision_symmetric_key.py
    
  7. 您現在應該會看到類似下列輸出的內容。 某些範例的風力發電速遙測訊息也會以測試的形式傳送至中樞。

    D:\azure-iot-sdk-python\samples\async-hub-scenarios>python provision_symmetric_key.py
    RegistrationStage(RequestAndResponseOperation): Op will transition into polling after interval 2.  Setting timer.
    The complete registration result is
    python-device-008
    docs-test-iot-hub.azure-devices.net
    initialAssignment
    null
    Will send telemetry from the provisioned device
    sending message #8
    sending message #9
    sending message #3
    sending message #10
    sending message #4
    sending message #2
    sending message #6
    sending message #7
    sending message #1
    sending message #5
    done sending message #8
    done sending message #9
    done sending message #3
    done sending message #10
    done sending message #4
    done sending message #2
    done sending message #6
    done sending message #7
    done sending message #1
    done sending message #5
    

範例布建程式碼會依序完成下列工作:

  1. 使用下列四個參數向裝置布建資源驗證您的裝置:

    • GLOBAL_ENDPOINT
    • SCOPE_ID
    • REGISTRATION_ID
    • SYMMETRIC_KEY
  2. 將裝置指派給已連結至裝置布建服務實例的 IoT 中樞。

  3. 將測試遙測訊息傳送至 IoT 中樞。

若要使用您的裝置資訊更新並執行布建範例:

  1. 在裝置布建服務的主功能表中,選取 [ 概觀]。

  2. 複製 [ 識別碼範圍 ] 和 [ 全域裝置端點 ] 值。 分別是您的 SCOPE_IDGLOBAL_ENDPOINT

    擷取裝置布建服務端點資訊

  3. 開啟 Java 裝置範例程式碼以供編輯。 裝置範例程式碼的完整路徑為:

    azure-iot-sdk-java/provisioning/provisioning-samples/provisioning-symmetrickey-individual-sample/src/main/java/samples/com/microsoft/azure/sdk/iot/ProvisioningSymmetricKeyIndividualEnrollmentSample.java

  4. 為您的 DPS 和裝置註冊設定下列變數的值:

    • 將 取代 <id-scope> 為您在步驟 2 中複製的識別碼 範圍
    • 將 取代 <provisioning-global-endpoint> 為您在步驟 2 中複製的 全域裝置端點
    • 將 取代 <registration-id> 為您從裝置註冊複製的 註冊 識別碼。
    • 將 取代 <primarykey> 為您從裝置註冊複製的主
    private static final String SCOPE_ID = "<id-scope>";
    private static final String GLOBAL_ENDPOINT = "<provisioning-global-endpoint>";
    private static final String SYMMETRIC_KEY = "<primarykey>";
    private static final String REGISTRATION_ID = "<registration-id>";
    
  5. 開啟命令提示字元以便建置。 移至 JAVA SDK 存放庫的布建範例專案資料夾。

    cd azure-iot-sdk-java\provisioning\provisioning-samples\provisioning-symmetrickey-individual-sample
    
  6. 建置範例。

    mvn clean install
    
  7. 移至 target 資料夾並執行已建立 .jar 的檔案。 在 命令中 java ,將 {version} 預留位置取代為您電腦上的檔案名中的 .jar 版本。

    cd target
    java -jar ./provisioning-symmetrickey-individual-sample-{version}-with-deps.jar
    
  8. 您現在應該會看到類似下列輸出的內容。

    Starting...
    Beginning setup.
    Initialized a ProvisioningDeviceClient instance using SDK version 1.11.0
    Starting provisioning thread...
    Waiting for Provisioning Service to register
    Opening the connection to device provisioning service...
    Connection to device provisioning service opened successfully, sending initial device registration message
    Authenticating with device provisioning service using symmetric key
    Waiting for device provisioning service to provision this device...
    Current provisioning status: ASSIGNING
    Device provisioning service assigned the device successfully
    IotHUb Uri : <Your IoT hub name>.azure-devices.net
    Device ID : java-device-007
    Sending message from device to IoT Hub...
    Press any key to exit...
    Message received! Response status: OK_EMPTY
    

確認您的裝置布建註冊

  1. 移至 Azure 入口網站

  2. 在左側功能表或入口網站頁面上,選取 [所有資源]。

  3. 選取指派裝置的 IoT 中樞。

  4. 在 [ 總管] 功能表中,選取 [IoT 裝置]。

  5. 如果已成功布建您的裝置,裝置識別碼應該會出現在清單中,且 狀態 設定為 已啟用。 如果您沒有看到您的裝置,請選取頁面頂端的 [ 重新 整理]。

    已向 IoT 中樞註冊裝置

    CSharp 裝置已向 IoT 中樞註冊

    Node.js裝置已向 IoT 中樞註冊

    Python 裝置已向 IoT 中樞註冊

    JAVA 裝置已向 IoT 中樞註冊

注意

如果您在裝置的註冊項目中變更了初始裝置對應項狀態 (變更自預設值),它即可從中樞提取所需的對應項狀態並採取適當的動作。 如需詳細資訊,請參閱了解和使用 Azure IoT 中樞的裝置對應項

清除資源

如果您打算繼續處理並探索裝置用戶端範例,請勿清除本快速入門中建立的資源。 如果您不打算繼續,請使用下列步驟來刪除本快速入門所建立的所有資源。

刪除您的裝置註冊

  1. 在您的電腦上關閉裝置用戶端範例輸出視窗。

  2. 從Azure 入口網站左側功能表中,選取[所有資源]。

  3. 選取您的裝置布建服務。

  4. 在 [ 設定] 功能表中,選取 [管理註冊]。

  5. 選取 [個別註冊] 索引標籤

  6. 選取您在本快速入門中 註冊之裝置 註冊識別碼旁的核取方塊。

  7. 在頁面頂端,選取 [刪除]。

從 IoT 中樞 刪除您的裝置註冊

  1. 從Azure 入口網站左側功能表中,選取[所有資源]。

  2. 選取您的 IoT 中樞。

  3. 在 [ 總管] 功能表中,選取 [IoT 裝置]。

  4. 選取您在本快速入門中註冊之裝置的 [裝置識別碼 ] 旁的核取方塊。

  5. 在頁面頂端,選取 [刪除]。

下一步

使用註冊群組布建多個對稱金鑰裝置: