연습 - 그룹 등록 프로비전 해제

완료됨

이 연습에서는 DPS(Device Provisioning Service)에서 등록을 취소하고 IoT Hub에서 디바이스 등록을 취소하는 것을 포함하여 전체 등록 그룹의 프로비전을 해제합니다.

작업 1: DPS에서 등록 그룹 등록 취소

이 작업에서는 DPS에서 등록 그룹을 등록 취소하여 등록된 디바이스를 사용하지 않도록 설정합니다. 디바이스를 일시적으로 등록 취소하려면 등록 그룹을 사용하지 않도록 설정하면 됩니다. 영구적으로 등록을 취소하려면 등록 그룹을 삭제합니다.

  1. Azure 샌드박스에서 등록 그룹을 사용하지 않도록 설정하거나 삭제합니다.

    다음 항목을 사용하지 않도록 설정하세요.

    az iot dps enrollment-group update --dps-name dps-$suffix --enrollment-id enrollgroup-sensors --provisioning-status disabled
    

    삭제:

    az iot dps enrollment-group delete --dps-name dps-$suffix --enrollment-id enrollgroup-sensors
    

지금 sensor-thl-001 시뮬레이션된 디바이스를 실행하면 사용하지 않도록 설정된 개별 등록에서 본 것과 유사한 오류 메시지가 표시됩니다.

참고 항목

인증서에 대한 등록 그룹을 삭제하는 경우 인증서 체인에 인증서가 있는 디바이스는 루트 인증서 또는 인증서 체인의 상위에 있는 다른 중간 인증서에 대해 활성화된 다른 등록 그룹이 여전히 존재하는 경우에도 등록할 수 있습니다.

작업 2: IoT Hub에서 디바이스 등록 취소

등록 그룹이 DPS(Device Provisioning Service)에서 제거된 후에도 Azure IoT Hub 내에 디바이스 등록이 계속 존재합니다. 디바이스의 프로비전을 완전히 해제하려면 해당 등록도 제거해야 합니다.

  1. Azure 샌드박스의 IoT Hub 디바이스 레지스트리에서 디바이스를 삭제합니다.

    az iot hub device-identity delete --hub-name hub-$suffix --device-id sensor-thl-001
    

작업 3: 디바이스의 프로비전이 해제되었는지 확인합니다.

이전 작업에서 Device Provisioning Service에서 그룹 등록을 삭제하고 Azure IoT Hub 디바이스 레지스트리에서 디바이스를 삭제하여 디바이스를 솔루션에서 완전히 제거했습니다.

  1. sensor-thl-001-device 코드 프로젝트가 포함된 Visual Studio Code 창으로 전환합니다.

  2. 시뮬레이션된 디바이스 앱을 실행하고 다음 명령을 입력합니다.

    dotnet run
    
  3. 디바이스에서 프로비전할 때 나열된 예외를 확인합니다.

    이제 그룹 등록 및 등록된 디바이스가 삭제되었으므로 시뮬레이션된 디바이스는 더 이상 프로비전하거나 연결할 수 없습니다. 애플리케이션이 구성된 X.509 인증서를 사용하여 DPS에 연결하려고 하면 ProvisioningTransportException 오류 메시지가 반환됩니다.

    Found certificate: AFF851ED016CA5AEB71E5749BCBE3415F8CF4F37 CN=sensor-thl-001; PrivateKey: True
    Using certificate AFF851ED016CA5AEB71E5749BCBE3415F8CF4F37 CN=sensor-thl-001
    RegistrationID = sensor-thl-001
    ProvisioningClient RegisterAsync . . . Unhandled exception. Microsoft.Azure.Devices.Provisioning.Client.ProvisioningTransportException: {"errorCode":401002,"trackingId":"df969401-c766-49a4-bab7-e769cd3cb585","message":"Unauthorized","timestampUtc":"2019-12-20T21:30:46.6730046Z"}
       at Microsoft.Azure.Devices.Provisioning.Client.Transport.ProvisioningTransportHandlerAmqp.ValidateOutcome(Outcome outcome)
       at Microsoft.Azure.Devices.Provisioning.Client.Transport.ProvisioningTransportHandlerAmqp.RegisterDeviceAsync(AmqpClientConnection client, String correlationId, DeviceRegistration deviceRegistration)
       at Microsoft.Azure.Devices.Provisioning.Client.Transport.ProvisioningTransportHandlerAmqp.RegisterAsync(ProvisioningTransportRegisterMessage message, CancellationToken cancellationToken)
    

이 랩에서는 Device Provisioning Service를 통해 IoT 디바이스 수명 주기의 일부로 등록, 구성 및 프로비전 해제를 완료했습니다.

작업 확인

  1. 등록 그룹이 DPS에서 사용하지 않도록 설정되었거나 삭제되었는지 확인합니다.

    az iot dps enrollment-group show --dps-name dps-$suffix --enrollment-id enrollgroup-sensors
    

    등록 그룹이 사용하지 않도록 설정된 경우 provisioningStatus가 사용하지 않도록 설정되었다는 명령 출력이 표시되어야 합니다.

    "provisioningStatus": "disabled"
    

    등록 그룹이 삭제되면 다음과 유사한 메시지가 표시됩니다.

    {'code': 404204, 'message': 'Not Found.', 'trackingId': '3a1badb5-c1db-4dff-a001-69a5e6e252f4'}
    
  2. sensor-thl-001 디바이스가 IoT 허브에서 등록 취소(삭제)되었는지 확인합니다.

    az iot hub device-identity show --hub-name hub-$suffix --device-id sensor-thl-001
    

    다음과 유사한 DeviceNotFound 오류 메시지가 표시됩니다.

     {'Message': 'ErrorCode:DeviceNotFound;sensor-thl-001', 'ExceptionMessage': 'Tracking ID:06e0221675514160850421f0b3b787a9-G:0-TimeStamp:10/24/2023 16:57:00'}