I'm investigating using Azure IoT hub for communication between software clients and a backend. The software clients should act as devices in IoT hub parlance.
Is it possible to provision the software clients as devices with IoT Hub device provisioning service without each client having been given a unique identifier in a TPM module or a unique X.509 certificate?
I don't have a need for authenticating the clients before provisioning, I just want each client to be able to communicate securely with the IoT hub. After provisioning, the client must be uniquely identifiable. At that time, other clients should not be able to impersonate it.
At the moment, I believe that the client software needs to have an intermediate certificate embedded, which it can use to sign a certificate that it creates when it attempts to provision itself.
Are there other ways to let an IoT hub client-device provision itself without having been preprogrammed with a SAS, token, or other unique identifier?