Tutorial: User-Based Licensing
Cloud Licensing with Sentinel LDK CL Service and Sentinel EMS

Looking for a powerful, centralized, role-based solution for handling all of your software protection, licensing, and entitlement needs? You've come to the right place!

Sentinel LDK is a comprehensive, out-of-the-box software monetization solution that protects and licenses your applications and services, so that you can maximize revenues while introducing flexible and customer-centric offerings into the market.

Sentinel EMS entitlement management system has a straightforward design that walks you through the process of defining the various features and products that match the features and products in your back office system (ERP, CRM, billing system, or sales system).

The Sentinel LDK CL Service combines Sentinel LDK and Sentinel EMS to offer a user-centric approach to cloud licensing fulfillment in which Thales securely hosts the CL service for you on its servers. The CL service gives you and your customers granular control over who can access a cloud license. (You can optionally delegate end-user account management to customer administrator users.)

The CL service described in this tutorial consists of two primary components: Sentinel EMS, which handles license fulfillment, user management, and user-to-product associations, and Sentinel LDK, which manages cloud licenses and user authentication.

This tutorial focuses on user-based licensing. User-based licensing uses OAuth to enable end users to access the vendor's application or service using login credentials—for example, their user name or email address and their password. End users can log in to the application from any supported device without the need to activate a license or install anything special on the device. With user-based licensing, the user is authorized instead of the device. By associating products with users, vendors and customers can quickly enable or disable user access without the need for updating entitlements as long as other license details remain the same.

TIP    

Thales also offers identity-based licensing, in which credentials are installed directly on a device, so that anyone with access to that device can use the vendor's protected application or service. View the tutorial

To learn more about the various licensing methods that Sentinel LDK offers, see Choosing and Integrating Hardware-, Software-, and Cloud Licensing.

The Basics

The following are the foundation of Sentinel EMS with Sentinel LDK enforcement. It's important to understand these terms before you perform the steps in this tutorial.

Sentinel EMS

Sentinel® EMS™ is a web-based solution that provides you with a centralized interface for all your license and entitlement management functions. It offers an easy-to-use interface for all your back office systems and a variety of advanced data collection and reporting functions. Learn MoreClosed Sentinel EMS can help you in maximizing profitability by minimizing the internal costs and resources required for license fulfillment, improving operation processes, empowering channel partners, and improving the end user experience by streamlining license activation for end users. For more information, see the Sentinel EMS User Guide.

Sentinel LDK Envelope

Sentinel LDK Envelope provides both copy and reverse-engineering protection for applications on various platforms. Its easy-to-use user interface enables you to apply protection to executable files and DLLs in minutes. Learn MoreClosed For applications that require a single license (one feature per binary), you can handle both licensing and protection using Envelope. However, for the most flexible licensing and highest level of copy protection, Thales recommends implementing both Sentinel Licensing API and Sentinel LDK Envelope. For more information, see Sentinel LDK Envelope Protection.

ToolBox and Sentinel Licensing API

Sentinel LDK ToolBox is an interactive application that enables software developers to learn about the various Sentinel LDK APIs. With this tool, you can execute API functions, observe their behavior, and copy the corresponding source code for integration into your own applications. For more information, see the Sentinel LDK ToolBox User Guide.

Sentinel Licensing API enables you to integrate fine-grained license enforcement into your application for an unlimited number of features, thereby ensuring end-user compliance with licensing terms. Each feature in your application is integrated separately using a unique feature ID and login API call. For more information, see the Sentinel LDK Software Protection and Licensing Guide.

Features

Features are the basic building blocks of products and licenses. Each feature can represent anything from a functional component to an entire application. Learn MoreClosed  This means that you can create a separate feature for a specific functionality, such as "Print" or "Edit & Save", or you can create a feature for each module or for an entire application.

After you define at least one feature in the Sentinel EMS catalog, you can add that feature to a product. This enables you to sell a product with one or more licensed features.

Feature ID (Sentinel LDK) and Feature Identifier (Sentinel EMS). This unique number identifies the feature in your Sentinel LDK application and in Sentinel EMS. During runtime, your application utilizes the Sentinel Licensing API (login function) to consume a license with the specific feature ID. Sentinel LDK Runtime determines whether the user has a valid license to use the corresponding feature. Always ensure that the feature identifier in Sentinel EMS is identical to the feature ID in the Sentinel LDK application you are using to protect your application (Sentinel LDK Envelope or Sentinel Licensing API).

Products

A product represents a saleable item in your organization—such as a software application—usually with a SKU or similar unit. You can package products with individual features and memory files. Learn MoreClosed  Both features and memory files are optional.

License models and terms. Sentinel LDK enforcement provides configurable, out-of-the-box license models.

You assign a license model and license terms to a feature when you add the feature to a product.

Setting license terms per feature occurrence lets you vary the license terms as needed. This flexibility gives you full control over feature usage whether you include one feature per product, the same feature in multiple products, or multiple copies of a feature in a single product.

When ready, you add products to entitlements so that the vendor can generate licenses for distribution to customers.

Entitlements

An entitlement is a customer order for one or more products. Similar to orders in your back office system (ERP, CRM, billing system, or sales system), an entitlement specifies the products that a customer is entitled to use. Learn MoreClosed  It also includes contact details, the products ordered, the features and memory files bundled in the products, licensing terms, the number of copies of your product that are available to that customer (quantity), and the entitlement ID (EID). Each entitlement can also be mapped to an actual order or other reference ID in your system using the External ID or Ref ID fields in Sentinel EMS.

When an entitlement is ready to be processed, you mark it as complete. That enables the next step, which is generating a license and pushing it to the cloud using Produce and Push.

TIP   Want to learn more about any of the concepts and terminology used in Sentinel EMS with Sentinel LDK enforcement? Check out the Glossary at the end of this tutorial.



Tutorial Workflow

This tutorial showcases how to use Sentinel LDK and Sentinel EMS to protect and license an application. You will use a sample TextEditor application that has two separately licensable features: Edit & Save and Print. To simplify this tutorial, TextEditor is already integrated with the necessary Sentinel LDK Licensing API calls to manage and consume licenses for each feature.

ClosedLearn about the different personae in the Sentinel EMS and Sentinel LDK workflows

Vendors. Vendors develop and sell software. They use Sentinel LDK to protect their applications and services, and to enforce licensing. They use the Sentinel EMS vendor portal to generate and manage licenses and user accounts.   Closed View the different Sentinel LDK and Sentinel EMS personae in the vendor's organization

Administrator. Performs the initial setup and subsequent maintenance using the Sentinel EMS vendor portal.

Product Owner. Defines the features and products in the Sentinel EMS vendor portal catalog.

Developer. Utilizes Sentinel LDK Envelope and the Sentinel Licensing API for license integration and copy protection. Also performs additional development tasks, including generating the Sentinel Runtime Environment Installer.

Entitlement Manager (order taker). Uses the Sentinel EMS vendor portal to define entitlements.

Customer Manager.

Defines the customer and administrator users.

(Optional) Creates end-user accounts.

Activation Manager. Activates products using Produce and Push on the Sentinel EMS vendor portal.

Customer Administrator Users. (Optional) Vendors can delegate end-user account management directly to their customers by creating administrator users. The administrator user uses the Sentinel EMS customer portal to create end-user accounts

End users. The customers' end users use their licensed software.  

Typically, the product owner defines the features and products in the catalog, the order taker then defines the entitlement, and the vendor generates the license.

Initial Setup, License Integration, Application Protection, and Testing

This end-to-end workflow illustrates the license integration and application protection process for developers and product owners, focusing on testing and integration.

Production and License Fulfillment for a Vendor's Customers

This end-to-end workflow for Sentinel EMS personae occurs after testing is done, focusing on actual production and license fulfillment for a vendor’s customers.

ClosedSee what's not included in this workflow



Before You Begin

Review The Basics to learn about the Sentinel LDK and Sentinel EMS components.

Make sure that your Thales account enables you to access Sentinel EMS. At minimum, you need a role in Sentinel EMS that includes Customer Management permissions. Contact your Thales representative for assistance if needed.



Create a Catalog

In this section, you create a catalog that includes your saleable items—a feature and a product. Make sure that you are logged on to the Sentinel EMS vendor portal.  ClosedShow me how

1.Navigate to the Sentinel EMS vendor portal URL shared by Thales.

2.Log on using the user name and password provided by Thales.

1.Navigate to the Sentinel EMS vendor portal URL shared by Thales.

2.Log on using the user name and password provided by Thales.

Define a Customer and Administrator User

In this section, you define a customer for the entitlement that you will be creating later. At this stage, you will also create an administrator user for the customer. Adding an administrator user lets you delegate product-to-user association management directly to the customer. Without an administrator user, you, the vendor, would have the sole responsibility of associating products with your customers' end users. Make sure that you are logged on to the Sentinel EMS vendor portal.  ClosedShow me how

1.Navigate to the Sentinel EMS vendor portal URL shared by Thales.

2.Log on using the user name and password provided by Thales.

Generate a License and Push It to the Cloud

In this section, you generate a license and push that license to the Thales Hosted Cloud License Server using Sentinel EMS with Sentinel LDK enforcement.

First, you will generate an entitlement to fulfill an order for a specific customer. Then you will use Produce and Push to generate a cloud license for the product features included in the entitlement. The license will automatically be pushed to the Thales Hosted Cloud License Server, making it ready to share with the customer's end users. Make sure that you are logged on to the Sentinel EMS vendor portal.  ClosedShow me how

1.Navigate to the Sentinel EMS vendor portal URL shared by Thales.

2.Log on using the user name and password provided by Thales.

Define an End User and Associate a Product

In this section, you define an end user for the licensed application and associate a product with that end user.

In a real-life scenario, you would define as many end users as needed. To enable user-based licensing, each end user must be associated with a customer. After defining end users, you would then associate those users with the products for which they need access. This allows you to manage access by enabling or disabling products for each user as necessary.

Although you can perform this step from either the Sentinel EMS vendor portal or the Sentinel EMS customer portal, this tutorial explains the steps using the Sentinel EMS vendor portal. ClosedShow me how

1.Navigate to the Sentinel EMS vendor portal URL shared by Thales.

2.Log on using the user name and password provided by Thales.



Set an OAuth Client

In this section, you set OAuth client authentication to enable end users to access your application. The tasks related to configuring the OAuth client are not dependent on other steps performed in Sentinel EMS or Sentinel LDK and can be done at any time.

This tutorial assumes that you have a basic understanding of OAuth. If you are not familiar with OAuth, we recommend reviewing the section describing OAuth in the Sentinel EMS User Guide for Sentinel LDK. To learn more about the hasp_auth.ini file described below, see Sentinel LDK Software Protection and Licensing Guide.

Make sure that you are logged on to the Sentinel EMS vendor portal.  ClosedShow me how

1.Navigate to the Sentinel EMS vendor portal URL shared by Thales.

2.Log on using the user name and password provided by Thales.


Integrate Licensing and Protection

This section is intended only for developers. It's time to protect the TextEditor application by using Sentinel LDK Envelope. Sentinel LDK Envelope utilizes the Sentinel LDK Licensing API to establish a strong binding between the protected software and the license installed in the protection key.



End User Starts Using the Application / Test Your Application

Now that the application is ready to use and the customer's end user is associated with your protected application or service, you can launch TextEditor.

For the purposes of this training, let's assume that:

Your application is already packaged together with Sentinel Run-time Environment.

You, the developer, want to verify that the application is protected and that the licenses are working correctly.



Glossary

Let's review the concepts and terminology that you need to know to work with Sentinel LDK enforcement in Sentinel EMS.

ClosedShow the Glossary

Activation | Application | Batch Code | Burning a Key | Catalog | C2V | Cloud Licensing Permissions | Customers and Users | DEMOMA | Devices | Enforcement | Entitlements | Envelope | Feature | Feature ID and Feature Identifier | Feature ID 0 | License Model | Licensing API | Locking Type | Market Group | Memory | Namespace (Batch Code) | OAuth Client | Produce and Push | Role | ToolBox | Unlocked from Device (Product) | V2CP


Concept Description

Activation

(License Generation)

The process of generating a license package (V2CP file) for one or more products.

A license can be locked to a specific device, or it can be unlocked, as described in Unlocked from Device (Product).

Application

In the context of Sentinel LDK, application or protected application refers to the vendor's application or service, which is licensed and protected by the Sentinel LDK Licensing API (native or REST) and/or Sentinel Envelope, and optionally packaged with Sentinel Run-time Environment. For more details on these components, see Sentinel LDK and navigate to the relevant guide.

Batch Code See Namespace (Batch Code).
Burning a Key

Activates an entitlement by installing the license file directly on a Sentinel HL key (dongle).

Catalog

A container for all of your assets, including products, features, memory files, license models, and namespaces.

For more details, see Sentinel EMS User Guide for Sentinel LDK.

C2V

and

V2CP

files

C2V (Customer-to-Vendor). A file containing data about deployed Sentinel protection keys or data about the customer's device, such as its fingerprint. The customer sends the C2V file to the vendor through an automated process or by other means, such as email. The vendor or an automated backend process then uses the C2V file to generate a license for the customer when activating an entitlement.

V2CP (Vendor-to-Customer Package file). A package file from the software vendor that contains one or more license update files (V2C files) for the customer's Sentinel protection key.

Cloud Licensing Permissions

Cloud licensing permissions control access and usage permissions for CL keys. Permissions are set at global, customer, and machine account levels.

For more details, see Sentinel EMS User Guide for Sentinel LDK.

Customers and Users

A customer can be an organization that owns an entitlement or a current or potential buyer of an entitlement. Typically, you generate entitlements for a customer who has placed an order. A customer can have one or more users.

DEMOMA

Batch Code/Namespace used for evaluation purposes. DEMOMA's corresponding Vendor Code is available in the VendorCodes folder of your Sentinel LDK installation. This batch code is useful for evaluating all Sentinel LDK workflows but cannot be used for production as any Sentinel LDK customer or evaluator can generate such licenses.

Devices

In Sentinel EMS with Sentinel LDK, a device is any hardware on which customers can install your licensed application, including, but not limited to, computers, tablets, phones, and watches.

See also: Tutorial: User-Based Licensing Cloud Licensing with Sentinel LDK CL Service and Sentinel EMS

Enforcement

Licensing technology, such as Sentinel LDK, that controls and secures your software by controlling usage terms and conditions for specific functionalities, and by applying security measures to prevent bypassing these terms and conditions.

Entitlement

An entitlement grants an end user the right to use a software package or service. It defines the product details, the authorized users, and the order's validity period.

Envelope

(Sentinel LDK Envelope)

Sentinel LDK Envelope provides both copy and reverse-engineering protection for applications on various platforms. Envelope utilizes the Sentinel LDK Licensing API and numerous anti-cracking technologies to establish a strong binding between the protected software and the license installed in the protection key.

For more information, see Sentinel LDK Envelope Protection.

Feature

Features are the basic building blocks of products and licenses. A feature can represent anything from a functional component to an entire application. After you define at least one feature in the Sentinel EMS catalog, you can add that feature to a product. This enables you to sell a product with one or more licensed features.

Feature ID and Feature Identifier

A unique number that identifies the feature in both your Sentinel LDK application and Sentinel EMS. During runtime, Sentinel Licensing API acts on behalf of your application to validate feature licenses. It does this by specifying the feature ID as part of the login call to the license for that feature ID. Therefore, the identical number must be used in both the feature identifier in Sentinel EMS and the feature ID in the relevant Sentinel LDK application (Sentinel LDK Envelope or Sentinel Licensing API).

Feature ID 0

(Default Feature)

A default feature ID that is always available in a Sentinel protection key and can be used to provide copy protection without the need to fulfill a Sentinel LDK license. This feature's license model is always Perpetual and cannot be modified to use other licensing terms. When you protect an application with Envelope, Feature ID 0 is applied by default if you do not choose any other feature ID for licensing the application.

In Sentinel SL and CL keys, any key produced by the vendor includes Feature ID 0, regardless of whether other features or memory are defined.

In Sentinel HL keys, all keys that leave the Thales factory already contain Feature ID 0 enabled. If no additional licenses are needed (for example, if only Envelope protection is used), these keys can be distributed directly to users to enforce copy protection of the software.

License Model

The license terms for a feature. You set the license model when adding a feature to a product, or when modifying a feature in an entitlement. License models:

Define in Entitlement. Enables the order taker to define the license type when creating an entitlement (when each individual order is processed). (Available only when creating a Product.)

Execution Count. The maximum number of times the feature may be used.
(Not relevant for products that are not locked to a device. See Unlocked from Device (Product).)

Expiration Date. The date on which the license for the feature will expire.

Perpetual. Default license model. The license can be used an unlimited number of times and for an unlimited period of time.

Time from First Use. (Also known as Time Period.) The number of days until the license expires. The number of days is counted from the date on which the licensed feature is first used.

Time from License Generation. The number of days until the license expires. The number of days is counted from the date on which the license is generated.
(Not relevant for products that are not locked to a device. See Unlocked from Device (Product).)

For more details, see Sentinel EMS User Guide for Sentinel LDK.

Licensing API

Sentinel LDK Licensing API is the interface for inserting calls to a Sentinel protection key from your application source code.

Locking Type

The level of protection for a product according to the type of Sentinel protection key supplied with the product. You set the locking type when defining a product. Locking types can be hardware-based (Sentinel HL keys) or software-based (Sentinel SL keys). When using the Cloud Licensing service, you must select one of the SL AdminMode options, such as the default HL or SL AdminMode or SL UserMode option.

The following locking types are available:

HL. Use for burning licenses on physical, Sentinel HL keys (dongles).

SL UserMode. Use for activating licenses on Sentinel SL UserMode keys (software).

Does not require the installation of Sentinel Run-time Environment (RTE).

Provides limited security for products that are not locked to a device than SL Admin mode.

Provides the highest level of compatibility with future operating system updates.

SL AdminMode. Use for activating licenses on Sentinel SL AdminMode keys (software).

Requires the installation of Sentinel Run-time Environment (RTE).

Supports all license terms, including concurrency and detachable licenses.

Provides a high level of compatibility with future operating system updates.

HL or SL AdminMode. Use for either Sentinel HL keys or Sentinel SL AdminMode keys.

HL or SL AdminMode or SL UserMode. (Default) Use this locking type if the decision on which type of Sentinel protection key is to be shipped with the product is made when each order is processed.

For more details, see Sentinel EMS User Guide for Sentinel LDK.

Market Group

A market group applies data access control for specific catalog elements and their entitlements. Typically, a target group of users share common characteristics, such as geographical locations or business units.

For more details, see Sentinel EMS User Guide for Sentinel LDK.

Memory

Memory files let you store sensitive data in the Sentinel protection key. For example, you might want to store user data or your own customized license code.

You create memory files from the Memory tab. You associate memory files when creating a product. For more details, see Sentinel EMS User Guide for Sentinel LDK.

Namespace (Batch Code)

A namespace, which is known as a "batch code" in Sentinel LDK, represents your company's unique vendor code.

When you order Sentinel protection keys from Thales, you specify your namespace, which is both written to the keys before dispatch and printed on the outside of each Sentinel HL key. Your company can have one or more namespaces. The namespace for Sentinel protection keys with a demo vendor code is DEMOMA.

In Sentinel EMS, a namespace also acts as a workspace, differentiating between separate storage locations. If you have multiple namespaces, the features, memory files, and products in each namespace are available only to those users who have permissions for that namespace. Users with roles that have entitlement-related permissions (such as order takers) can access these items from all namespaces.

For more details, see Sentinel EMS User Guide for Sentinel LDK.

OAuth Client

An OAuth client refers to an application or service that can make requests for protected resources on behalf of the resource owner after the resource owner grants authorization.

For more details, see Sentinel EMS User Guide for Sentinel LDK.

Produce and Push

"Produce and Push" generates a cloud license and pushes the license to the Thales service-hosted, cloud license manager server in a single step.

You use produce and push to activate an entitlement, which generates a CL (cloud licensing) key for the relevant products.

For more details, see Sentinel EMS User Guide for Sentinel LDK.

Role

A role is a set of permissions for using specific entities in Sentinel EMS.

For more details, see Sentinel EMS User Guide for Sentinel LDK.

ToolBox

(Sentinel LDK ToolBox)

Sentinel LDK ToolBox is a GUI application that helps software engineers use Sentinel LDK APIs and generate source code.

For more details, see Sentinel LDK ToolBox User Guide.

Unlocked from Device (Product)

A product that is distributed with a license that is not locked to a specific device and can therefore be installed freely by any user on any device. Typical uses include:

Trial licenses (free for up to 90 days), which can start from the date of license generation or first use, depending on the License Model. (The Execution Count and Time From License Generation license models are not relevant for products that are not locked to a device.)

"Unlimited" products in an application for which you use Envelope to protect your intellectual property (IP). These products may or may not contain licensing restrictions. For example, you might decide to apply a Perpetual license, limit the time period in which the license can be used, use another mechanism to license the application, or not impose any licensing restrictions at all.

When you create an entitlement, you can include products that are either locked to a device or unlocked from a device, but not both.

For more details, see Sentinel EMS User Guide for Sentinel LDK.