10Duke Enterprise release 3 documentation is no longer being updated

Support offline usage

10Duke Enterprise helps you deliver software licensing for various offline use cases.

When your application makes a license consumption request for an end user, 10Duke Enterprise grants a license lease and returns a license token describing the lease.

Your client application will be able to run offline for as long as the license token is valid.

For background, see an overview of license consumption in 10Duke Enterprise.

Use cases

The following are the most common scenarios where offline licensing is used.

End users can check out a seat and go offline

You can provide an option for end users to “check out” a license seat and take your client application offline.

In the license model, you can set the maximum lease validity for offline consumption to whatever maximum value is required.

For example, let’s say you’re selling floating licenses, and you have set the maximum lease validity for offline consumption to 14 days. You provide a UI in the client application where the end user can check out a license seat. The UI informs the user that the maximum checkout time is 14 days, but you also allow them to check out the license for a shorter period of time if they want.

When the user has made their choice, the client application makes a license consumption request and includes the consumptionMode=checkout parameter to obtain the longer lease validity for offline consumption. If the end user specified how long they want to check out the license for, the client application also includes the consumeDuration parameter in the request.

This is an example HTTP GET request to consume a license offline for 4 days (specified in milliseconds in the request) for a licensed item Feature1 (line breaks added for display purposes):

https://customer.10duke.net/authz/.jwt
   ?Feature1
   &consumptionMode=checkout
   &consumeDuration=345600000
   &hw=868e1ab9-8530-4063-a7d9-6d6ed85550a3

See more on license consumption requests and responses.

No Internet access

To support use cases where your client application runs in an environment that is never connected to the Internet, you can download license tokens (JWT files) and deliver them where they are needed. For example, you can send a license token to a user by email, and the user can transfer it on a USB stick to the application.

For example, you might provide your customer with an installer for the client applications (desktop or mobile), and grant a 1-year fixed-term license per user. In this case, you could set the offline lease validity to be the same value as the license validity.

To download and distribute license tokens:

Your client application must support taking external license tokens into use, for example, by providing a feature for importing and storing the token.

Intermittent Internet access

There are use cases where an end user is connected to the Internet at irregular times and your client application is able to make license consumption calls, but mostly the application needs to run when the end user is completely offline.

In this case, you can configure the license model with a longer maximum lease validity (such as 30 days) for offline consumption, and have your client application renew the existing lease and obtain a new license token every time it connects to the Internet.

Frequently asked questions

How can a user transfer the license token from one offline device to another if the license token is matched to the hardware ID?

It is not possible to transfer a license token from one device to another. To consume the license from another device, you need a new license token specific to that device.

How can we prevent users from manipulating the clock on their device to illegally extend the use of the license token?

The license token includes an “issued at” (iat) claim. If the device’s current time is before the “issued at” time, the clock has likely been manipulated. The client application is responsible for checking this. It’s recommended to allow some seconds or minutes of skew.