Licensing web and SaaS applications
Web and Software-as-a-Service (SaaS) applications operate entirely in the cloud and are accessed by users directly through a web browser. When implementing licensing for web and SaaS deployments, you can easily control access based on user seats, use count, or use time, providing a seamless experience while protecting your software.
10Duke Enterprise licensing solutions for web and SaaS applications
A web or SaaS application is used interactively by a person, so each user signs in through the 10Duke Login Application before consuming a license. The exact authentication flow depends on your application architecture:
-
For traditional server-side web applications, the backend web server coordinates a standard OpenID Connect (OIDC) authorization code grant flow.
-
For single-page applications, the browser-side frontend coordinates the OIDC authorization code grant flow with PKCE directly from the client side.
Once the user signs in, your application handles the token exchange and calls the 10Duke License Consumption API to verify that the user has a valid license. Because SaaS applications run on always-on cloud servers, these are direct backend-to-backend authorization calls made in real time.
The check runs against your configured license model, which restricts consumption based on a single credit type: seat count, use count, or use time. Choose the model that matches your billing structure.
Seat-based licensing (named user or concurrent)
Use a seat to control how many users can access the application. On its own, this caps the total number of seats consumed at once—which, in a concurrent model, is the limit on simultaneous active sessions across your organization.
Count-based metered licensing
Choose count-based metered licensing to restrict or track discrete actions, such as report exports, data-processing tasks, or AI feature triggers.
Time-based metered licensing
Choose time-based metered licensing to enforce cumulative active-session time across user accounts.
Combine seat access with consumption metering
If you need to license seat access separately from metering consumption, for example, giving a user a seat while also billing for report exports, create two separate product packages, each containing its own licensed item and license model.
Offline and on-premises deployments
Standard web and SaaS applications depend on a live connection between the user’s browser, your servers, and 10Duke Enterprise, so the offline license checkout and token workflows used by desktop, mobile, and device applications do not apply to a cloud SaaS deployment.
If an enterprise customer needs your software to run in a fully offline, private-cloud, or on-premises environment, the deployment shifts from a SaaS model to a self-hosted server model. For those scenarios, see licensing in virtualized environments.
Implement web and SaaS licensing
To implement web and SaaS licensing in 10Duke Enterprise, connect your application to the 10Duke License Consumption API with direct REST API calls.
If a consumption request exceeds the configured limits, the License Consumption API returns a specific error code, for example, licenseQuotaExceeded (no seats available), licenseAssignmentMissing (a named-seat model where the user has no seat assignment), maxConcurrentSessionsExceed, maxUseCountExceed, or maxAggregateUseTimeExceed, depending on the constraint applied. See error codes for the full list your application should handle.
For detailed instructions on configuring custom rules and tracking modes in 10Duke SysAdmin, see defining settings for custom license models.