Logo

Get Started

Node-Lock Software Licenses to a Device

yt thumbnail
Node-Lock Licenses

Node-Lock Software Licenses

Key-based as well as user-based license authorization methods can be used to bind a license to a device

All license models can be node-locked

Deactivation will unbind the license from a device so that it can be transferred to another device

Manage license transfers between devices

What is Software License Node-Locking?

From a software licensing perspective, node-Locking a license refers to specifying the number and type of devices or computers which can be authorized to bind to and to use a given software license. The device is uniquely recognized in order to authorize common license-related operations, such as checking the license status, reading the entitlements associated to a license, as well as sending or retrieving data concerning the license.

There are many approaches to node-locking a license which typically include a software solution (such as requiring a unique device identifier for any license API requests), a hardware solution (using a hardware token to run an application), or a combination of both. Licensespring provides a software-only solution to node-locking licenses at this time.

Why Node-Lock Licenses to a Device?

There are many reasons why node-locking is common-practice when it comes to issuing licenses for end-users:

Key-based as well as user-based license authorization methods can be used to bind a license to a device

All license models can be node-locked

Deactivation will unbind the license from a device so that it can be transferred to another device

Manage license transfers between devices

How Does LicenseSpring Node-Lock Licenses to a Device?

At LicenseSpring, we provide a software-only approach to node-locking licenses to a computer. There aren’t any hardware dongles to worry about.

How does it work?

When the client application makes calls to the server (activations, license checks, adding consumptions for metered usage etc.), a hardwareID is always passed with the API request. For example, if the end user is activating a license key, the API request requires the license key, the product code, and the device fingerprint. For User-based licenses, the API request requires the username, password, product code and the device fingerprint.

Our SDKs compute a device fingerprint that uniquely identifies a computer and sends this identifier with all license-related requests back to the server. This hardwareID can be used to recognize a device without sending any identifiable data.

No information on the device itself is embedded in the hardwareID. Furthermore, this hardwareID can be overridden if the software vendor prefers to use their own device identifier.

Payload

JSON
{
  "product": "XY",
  "hardware_id": "Jh4iy23h42hJui2h34uh2i",
  "license_key": "FB86-QJLV-4LAF-89TP"
}

For Virtual Machine control support:

JSON
{
  "is_vm": true,
  "product": "XY",
  "vm_info": "some VM info",
  "hardware_id": "Jh4iy23h42hJui2h34uh2i",
  "license_key": "FB86-QJLV-4LAF-89TP"
}

For user-based licenses:

JSON
{
  "product": "XY",
  "password": "somepassword'",
  "username": "test@email.com",
  "hardware_id": "Jh4iy23h42hJui2h34uh2i"
}

Parameters required for activating licenses that are locked to a device include the license authorization, the product code, and the hardwareID. For more information, please visit our documentation.

When issuing licenses, the software vendor defines the number of computers that a license can be used on by setting a number of maximum activations for a license. The total activations is the number of machines that are currently bound to a license.

Response

Code: 200

User is in response data only for user-based license

JSON
{
  "user": {
    "email": "user@user.com",
    "last_name": "user_lastname",
    "first_name": "user_firstname"
  },
  "customer": {
    "email": "test@customer.com",
    "phone": "+1565123123123",
    "last_name": "Smith",
    "reference": "ref_user_321",
    "first_name": "John",
    "company_name": "Acme Inc."
  },
  "is_trial": false,
  "license_key": "GGD6-UKEX-DFJK-NKTP",
  "license_type": "subscription",
  "max_overages": 1,
  "custom_fields": [
    {
      "name": "a custom field",
      "value": "some value",
      "data_type": null
    }
  ],
  "allow_overages": true,
  "max_activations": 1,
  "product_details": {
    "short_code": "prodtest",
    "product_name": "Product Test",
    "authorization_method": "user"
  },
  "times_activated": 0,
  "validity_period": "2022-07-10 13:48:20",
  "max_consumptions": 42,
  "product_features": [
    {
      "code": "F3",
      "name": "feature 3",
      "expiry_date": "2022-02-25",
      "feature_type": "activation"
    },
    {
      "code": "F4",
      "name": "feature 4",
      "expiry_date": null,
      "feature_type": "consumption",
      "max_consumption": 10,
      "total_consumptions": 0
    }
  ],
  "license_signature": "3f4bf59edc0486dea01f3533de6120da49195664d0bec64e2d04a97783de107e",
  "reset_consumption": true,
  "consumption_period": "weekly",
  "maintenance_period": "2018-07-10 13:48:20",
  "total_consumptions": 0
}

When checking or activating a license, the server returns license entitlements, including total activations allowed for the license (max_activations), as well as the number of devices currently bound to a license (times_activated).

From the LicenseSpring platform, the software vendor can retrieve more information on the devices using a license, reset, or blacklist specific devices. The next time these devices attempt to perform a license check, the server will return an error.

Device Information

How to Transfer a License From One Device to Another?

Transfering Node Locked Software License

With LicenseSpring, transferring a node-locked software license from one device to another is flexible and straightforward. The license needs to be either completely reset, which would unbind it from any device that activated the license. Alternatively, a device can individually be deactivated from a license.

There are a few ways this can be done:

Deactivate using the SDK

The vendor could add functionality in their application so that the end user could deactivate the license from one computer. This could be a self-serve option for the end user.

Deactivate from the LicenseSpring platform

Manually enter the platform and reset or blacklist a device. This could be useful if the end user’s computer no longer works for example.

Deactivate from the user portal

A license manager can log into the user portal and manager their own licenses, including deactivating a device so that the license can then be transferred to another device.

Deactivate using the Management API

Device deactivation can also be done programmatically using the management API.