Tutorial: User-Based Licensing

Sentinel LDK Cloud Licensing (CL) with 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!

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. 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.

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. In this tutorial, you will use Sentinel LDK to manage cloud licenses and user authentication.

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). In this tutorial, you will use Sentinel EMS to handle license fulfillment, user management, and user associations with Sentinel keys.

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 device-based licensing, which authorizes a device instead of a user. This enables anyone using the device to access your protected applications and services. To use device-based licensing, Identity string credentials must be installed on the device. For cloud licensing, the vendor or customer administrator must also set cloud licensing permissions for each device using machine accounts. These permissions can be set at the global, customer, or individual device level for enhanced flexibility. 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 Getting Started Guide.

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 for Sentinel LDK.

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 finely 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 guide.



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.

Customer Manager or Entitlement Manager (order taker). Uses the Sentinel EMS vendor portal:

Defines the customer and administrator users.

Defines entitlements.

(Optional) If the vendor's organization handles end-user machine accounts:

-  Creates end-user machine accounts, and

-  Provides end users with unique identity credentials to access cloud licenses.

Activation Manager. Generates licenses using the Sentinel EMS vendor portal.

Customer Administrator Users. (Optional) Vendors can delegate end-user machine account management directly to their customers by creating administrator users. The administrator user uses the Sentinel EMS customer portal.  ClosedLearn what the customer's administrator user does

Creates end-user machine accounts, and

Provides end users with unique identity credentials to access cloud licenses.

End users. The customers' end users use their work or personal devices (machines).  ClosedLearn what the end user does

a. Receives a unique identity string that provides access to one or more cloud licenses. This string identifies the relevant machine account and may be shared by the vendor or customer.

b.Installs the identity string on one or more devices. This enables the vendor's protected application to access the cloud licenses from the end user's device as needed.

How does the end user receive and install the identity string? In most cases, the end user receives an email containing an installation link. The end user must click that installation link from the device on which they plan to run the vendor's application. This automatically installs the identity string on the relevant device.

c.Uses the vendor's application on those devices. Typically, when the application starts, it sends a request to the cloud license manager server, which validates the device's identity and grants permission to use the licensed features or services.

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.



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. You can also use single sign-on, if available (not shown).

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 user association management directly to the customer. Without an administrator user, you, the vendor, would have the sole responsibility of managing 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. You can also use single sign-on, if available (not shown).

Generate a License and Push It to the Cloud

In this section, you generate a license and push that license to Thales' cloud license server manager 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 Thales's service-hosted, cloud license manager 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. You can also use single sign-on, if available (not shown).

Define an End User and Associate a Sentinel Key

In this section, you define an end user for the licensed application and associate a Sentinel key with that end user to grant them usage rights. In user-based licensing, the user association process is essential for managing software access, tracking usage, enforcing compliance, and controlling access for each individual 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 entities for which they need access—Sentinel keys or products—or disassociate them from these entities as necessary.

Although this tutorial describes associating users with Sentinel keys, you can also associate users with products. This option is available if the Enable User-Product Association attribute in the Administration Console > General Settings section is set to Yes. You decide whether to associate users with Sentinel keys or products based on your business needs.

Associate users with Sentinel Keys to achieve the highest level of granular control over user access by tying a user's product access to that unique key. This is the approach used in this tutorial.

Associate users with products to provide consolidated access to those product across all associated entitlements. All associated users automatically gain access to and can use the products as long as at least one activated entitlement line item includes those products.

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. You can also use single sign-on, if available (not shown).



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. You can also use single sign-on, if available (not shown).

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 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 | 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) | Produce and Push | OAuth Client | Role | ToolBox | Unlocked from Device (Product) | User Association | 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

(Not relevant for cloud licensing.)

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.

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.

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.

For more details, see the Sentinel LDK API References section on Sentinel LDK guides.

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.
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.

After produce and push is performed, the vendor or administrator user can create accounts for end users, so that end users can access the protected application or service.

On the Sentinel EMS customer portal, an administrator user can create and manage end user accounts, and associate users with products and/or Sentinel keys. The vendor can also perform these tasks on the Sentinel EMS vendor portal.

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.

User Association

User association connects a customer's users with the entities that grant them usage rights, such as Sentinel Keys and, optionally, products. This process enables users to access any associated entity without needing to create a new entitlement when changes are made.

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