A method performed by a trusted platform module which is disposed in a computing device, wherein the computing device is an Internet of Things (IoT) device, the method comprising: keeping privately and securely in the TPM an endorsement key, wherein the endorsement key is unique to the TPM and is a first trusted object; implementing a local counter on the TPM, wherein the local counter is a second trusted object; transmitting a request for an access token to a provisioning service wherein the request for the access token includes the endorsement key and a current state of the local counter; receiving, in response to the request for the access token, the access token and a policy generated by the provisioning service using the endorsement key and the current state of the local counter respectively, wherein: the access token and the policy are unique to the TPM of the computing device, and the policy includes an authorization counter and policy elements that include a first rule for the local counter to increment by a set value after each attempted use of the access token, and a second rule that the local counter be less than or equal in value to the authorization counter to use the access token; in response to the IoT device attempting to perform an operation that requires authorization by the access token, executing the elements of the policy; and in response to satisfaction of each element included in the policy, authorizing use of the access token to authorize the IoT device operation. keeping privately and securely in the TPM an endorsement key, wherein the endorsement key is unique to the TPM and is a first trusted object; implementing a local counter on the TPM, wherein the local counter is a second trusted object; transmitting a request for an access token to a provisioning service wherein the request for the access token includes the endorsement key and a current state of the local counter; receiving, in response to the request for the access token, the access token and a policy generated by the provisioning service using the endorsement key and the current state of the local counter respectively, wherein: the access token and the policy are unique to the TPM of the computing device, and the policy includes an authorization counter and policy elements that include a first rule for the local counter to increment by a set value after each attempted use of the access token, and a second rule that the local counter be less than or equal in value to the authorization counter to use the access token; the access token and the policy are unique to the TPM of the computing device, and the policy includes an authorization counter and policy elements that include a first rule for the local counter to increment by a set value after each attempted use of the access token, and a second rule that the local counter be less than or equal in value to the authorization counter to use the access token; in response to the IoT device attempting to perform an operation that requires authorization by the access token, executing the elements of the policy; and in response to satisfaction of each element included in the policy, authorizing use of the access token to authorize the IoT device operation.