1. A method for provisioning a device, the method comprising: at a registration device, receiving authentication information from a user interface, wherein the authentication information corresponds to a user; sending the authentication information from the registration device to an identity provider device; receiving a token at the registration device from the identify provider device, wherein the token corresponds to the user; sending the token, new device information, and a first provisioning request from the registration device to a provisioning device; at a user interface of the new device, receiving an activation code; sending the activation code and the token from the user interface of the new device to the provisioning device; at the new device, receiving a key from the provisioning device, wherein the key is associated with a device identifier of the new device; signing the new device information, a new device configuration, new device applications, and new device data using the key and an API secret, thereby generating signed device information; and sending the device identifier and the signed device information from the new device to the provisioning device.