BINDING CONFIGURATION STATE TO A BLOCKCHAIN
Disclosed are various embodiments for binding the configuration state of client devices to the blockchain. A management agent can send a request to a smart contract hosted by a blockchain network for a configuration state for the computing device, the request comprising a device identifier for the computing device. The management agent can then receive the configuration state from the smart contract and apply the configuration state to the computing device.
1 . A system, comprising:
a computing device comprising a processor and a memory; and
machine-readable instructions stored in the memory that, when executed by the processor, cause the computing device to at least:
send a request to a smart contract hosted by a blockchain network for a configuration state for the computing device, the request comprising a device identifier for the computing device;
receive the configuration state from the smart contract; and
apply the configuration state to the computing device.
2 . The system of claim 1 , wherein the machine-readable instructions further cause the computing device to at least:
generate an attestation that indicates that a current state of the computing device complies with the configuration state specified for the computing device; and
publish the attestation to the blockchain network.
3 . The system of claim 2 , wherein the machine-readable instructions that cause the computing device to publish the attestation to the blockchain network further cause the computing device to call a function provided by the smart contract with the device identifier and the attestation as parameters for the function.
4 . The system of claim 1 , wherein the configuration state is a markup language file that specifies an application that should not be installed on the computing device, and the machine-readable instructions that cause the computing device to apply the configuration state further cause the computing device to at least:
determine that the application is installed on the computing device; and
uninstall the application on the computing device.
5 . The system of claim 1 , wherein the configuration state is a markup language file that specifies an application that should be installed on the computing device, and the machine-readable instructions that cause the computing device to apply the configuration state further cause the computing device to at least:
determine that the application is not installed on the computing device; and
install the application on the computing device.
6 . The system of claim 1 , wherein the configuration state is a markup language file that specifies a value for a setting for an operating system of the client device or for an application installed on the client device and the machine-readable instructions that cause the computing device to apply the configuration state further cause the computing device to modify the value for the setting.
7 . The system of claim 1 , wherein the blockchain network is a permissioned blockchain network.
8 . A method, comprising:
sending a request to a smart contract hosted by a blockchain network for a configuration state for the computing device, the request comprising a device identifier for the computing device;
receiving the configuration state from the smart contract; and
applying the configuration state to the computing device.
9 . The method of claim 8 , further comprising:
generating an attestation that indicates that a current state of the computing device complies with the configuration state specified for the computing device; and
publishing the attestation to the blockchain network.
10 . The method of claim 9 , wherein publishing the attestation to the blockchain network further comprises calling a function provided by the smart contract with the device identifier and the attestation as parameters for the function.
11 . The method of claim 8 , wherein the configuration state is a markup language file that specifies an application that should not be installed on the computing device, and applying the configuration state further comprises:
determining that the application is installed on the computing device; and
uninstalling the application on the computing device.
12 . The method of claim 8 , wherein the configuration state is a markup language file that specifies an application that should be installed on the computing device, and applying the configuration state further comprises:
determining that the application is not installed on the computing device; and
installing the application on the computing device.
13 . The method of claim 8 , wherein the configuration state is a markup language file that specifies a value for a setting for an operating system of the client device or for an application installed on the client device and applying the configuration state further comprises modifying the value for the setting.
14 . The method of claim 8 , wherein the blockchain network is a permissioned blockchain network.
15 . A non-transitory, computer-readable medium, comprising machine-readable instructions that, when executed by a processor of a computing device, cause the computing device to at least:
send a request to a smart contract hosted by a blockchain network for a configuration state for the computing device, the request comprising a device identifier for the computing device;
receive the configuration state from the smart contract; and
apply the configuration state to the computing device.
16 . The non-transitory, computer-readable medium of claim 15 , wherein the machine-readable instructions further cause the computing device to at least:
generate an attestation that indicates that a current state of the computing device complies with the configuration state specified for the computing device; and
publish the attestation to the blockchain network.
17 . The non-transitory, computer-readable medium of claim 16 , wherein the machine-readable instructions that cause the computing device to publish the attestation to the blockchain network further cause the computing device to call a function provided by the smart contract with the device identifier and the attestation as parameters for the function.
18 . The non-transitory, computer-readable medium of claim 15 , wherein the configuration state is a markup language file that specifies an application that should not be installed on the computing device, and the machine-readable instructions that cause the computing device to apply the configuration state further cause the computing device to at least:
determine that the application is installed on the computing device; and
uninstall the application on the computing device.
19 . The non-transitory, computer-readable medium of claim 15 , wherein the configuration state is a markup language file that specifies an application that should be installed on the computing device, and the machine-readable instructions that cause the computing device to apply the configuration state further cause the computing device to at least:
determine that the application is not installed on the computing device; and
install the application on the computing device.
20 . The non-transitory, computer-readable medium of claim 15 , wherein the configuration state is a markup language file that specifies a value for a setting for an operating system of the client device or for an application installed on the client device and the machine-readable instructions that cause the computing device to apply the configuration state further cause the computing device to modify the value for the setting.