Most product teams treat device registration as a setup step. A checkbox on the way to the real work. The device gets credentials, talks to the platform, and everyone moves on to building the dashboard.
That's a mistake. And it's one that compounds silently until you're managing 10,000 devices in the field with a security model you can't change without recalling hardware.
The problem with "just get it connected"
Here's what typically happens. A team builds an IoT platform. They need devices to talk to it. So they generate an API key, hardcode it into firmware, and ship. It works. Devices connect, data flows, stakeholders are happy.
Then someone asks: what happens if that key leaks?
The answer, in most early-stage IoT platforms, is ugly. One compromised key means every device using it is compromised. There's no way to revoke access for a single unit without affecting the rest. There's no audit trail showing which device sent which message. And there's no path to fix it without a firmware update pushed to hardware that may or may not be accessible.
This is the cost of treating onboarding as plumbing instead of architecture.
What onboarding actually decides
The registration flow locks in your security posture for the lifetime of every device you deploy. Get it right early, and you have options later. Get it wrong, and you're doing damage control.
A well-designed onboarding process answers several questions that most teams skip past too quickly.
Who creates the device identity? Registration should happen during manufacturing or provisioning, not when the device first connects. The platform creates the identity using manufacturer credentials (not device credentials). This separation matters. The entity that registers devices is not the device itself, and those two roles need different permission levels.
What does the device actually receive? Each device gets a globally unique identifier and its own token. That token is stored in secure device storage and becomes the device's sole proof of identity. One device, one token, one identity. If a token is compromised, you revoke one device. The rest of your fleet is untouched.
When does a device become "real"? There's a lifecycle transition most teams don't model. A device goes from "manufactured" to "registered" only after its first valid communication with the platform. Until then, it exists in the system but hasn't proven it can actually talk. This distinction matters for fleet monitoring, because a device that was provisioned six months ago and never connected is a different problem than one that connected yesterday and went silent today.
Per-device auth changes everything downstream
Once every device has its own identity and token, the downstream effects are significant.
Authorization becomes granular. A device can only publish to its own topic namespace. It can't impersonate another device, and it can't access data outside its scope. If you're using MQTT, this means each device publishes to devices/{deviceUid} and nowhere else. If you're on HTTPS, the bearer token maps to exactly one device identity.
Fleet management becomes possible. You can see which specific device is misbehaving, revoke its access without a fleet-wide update, push firmware to targeted groups based on device type, and configure behavior per device or per device type.
Incident response becomes tractable. When something goes wrong (and with thousands of field devices, something always goes wrong), you need to answer "which device, when, and what did it send?" Per-device identity gives you that answer. Shared credentials don't.
Firmware and config updates inherit your security model
This is where early onboarding decisions either pay off or fall apart.
A device that needs a firmware update should request it through authenticated API access. The platform checks what firmware is assigned, provides a download URL, and the device validates integrity before applying it. After the update, the device reconnects and reports its new status.
None of that works safely without per-device authentication. Without it, you can't verify that the device requesting the update is the device you intended to update. You can't confirm the post-update status message came from a legitimate source. And you can't track which devices successfully updated and which didn't.
Configuration updates follow the same pattern. The platform holds a desired state for each device (reporting frequency, sensor thresholds, active vs. passive mode), and the device synchronizes against it. Override a setting for one device, or set defaults by device type. Again, this only works when each device has a distinct identity the platform can address individually.
What this means for your next IoT project
If you're scoping an IoT platform build, the temptation is to get data flowing first and figure out security later. That instinct is understandable but expensive.
The registration model is the one decision you can't easily change after devices are in the field. Everything else (your message processing pipeline, your storage layer, your dashboard) can be refactored. But device identity is baked into hardware and firmware. Changing it means touching every unit you've deployed.
Three things worth getting right from day one:
Separate manufacturer credentials from device credentials. The system that registers devices needs different permissions than the devices themselves. Mixing these roles creates a single point of compromise.
One device, one token, one identity. No shared keys. No fleet-wide credentials. The marginal effort of per-device provisioning is trivial compared to the cost of a security incident you can't contain.
Model the device lifecycle explicitly. Manufactured, registered, active, inactive, decommissioned. Each state has different implications for monitoring, alerting, and access control. If your platform doesn't know the difference between "never connected" and "stopped connecting," you're flying blind.
The boring, foundational decisions made during onboarding design are what determine whether your IoT platform is manageable at 10,000 devices or a liability. Getting them right isn't complex. It just requires treating registration as architecture instead of a ticket to close before sprint review.




