Licenze

Le licenze sono il nucleo di LicenseChain. Ciascuna licenza rappresenta un'autorizzazione valida per l'utilizzo del software da parte di un utente.

Cosa sono le licenze?

A Licenza in LicenseChain è un'autorizzazione digitale che garantisce a un utente il diritto di utilizzare il software. Ogni licenza contiene informazioni sull'utente, il piano che ha, quando scade e a quali funzionalità può accedere.

Le licenze sono crittograficamente sicure e possono essere verificate in tempo reale tramite la nostra API. Supportano vari tipi di licenza, tra cui licenze permanenti, basate su abbonamento e di prova.

Struttura della licenza

Proprietà principali

  • Chiave di licenza - Identificatore univoco
  • Piano - Livello di licenza (FREE, PRO, BUSINESS, ENTERPRISE)
  • Tipo di verifica - Livello di verifica (base, avanzato, aziendale)
  • Stato - Stato attuale (ATTIVO, SCADUTO, SOSPESO)
  • Scadenza - Alla scadenza della licenza

Informazioni sull'utente

  • Rilasciato a - Nome o azienda del cliente
  • E-mail - Indirizzo e-mail del cliente
  • Caratteristiche - Funzionalità e capacità disponibili
  • Metadati - Dati e tag personalizzati

Tipi di licenza

Licenze perpetue

Licenze acquistabili una sola volta e che non scadono mai. Perfetto per le applicazioni desktop.

  • Nessuna data di scadenza
  • Pagamento una tantum
  • Accesso a vita
  • Perfetto per le app desktop

Licenze di abbonamento

Licenze ricorrenti che richiedono un rinnovo periodico. Ideale per applicazioni SaaS.

  • Rinnovo mensile/annuale
  • Scadenza automatica
  • Fatturazione ricorrente
  • Perfetto per le app SaaS

Licenze di prova

Licenze limitate nel tempo a scopo di valutazione. Ottimo da provare prima dell'acquisto.

  • Durata limitata (7-30 giorni)
  • Accesso completo alle funzionalità
  • Conversione automatica
  • Perfetto per le demo

Verifica della licenza

Verifica in tempo reale

Verifica le licenze in tempo reale con tempi di risposta inferiori a 100 ms. Utilizzo POST /v1/licenses/verify con il corpo { "key": "LICENSE-KEY" }. Opzionale hwuid (O hardwareId) abilita l'associazione hardware: quando la licenza ha associato uno o più dispositivi, l'hwuid fornito deve corrispondere altrimenti la risposta lo è valid: false con reason: "hardware_id_mismatch".

// License verification example
// Verify license key with client
// Check if license is valid and handle accordingly

Associazione hardware (HWUID)

L'associazione hardware/dispositivo opzionale (HWUID) limita una licenza a dispositivi specifici. Inviare hwuid In POST /v1/licenses/verify (ad esempio dal tuo SDK getHardwareId()). Se la licenza non ha ancora un dispositivo associato, la prima verifica riuscita con un hwuid esegue un'associazione al primo utilizzo. Utilizzo POST /v1/licenses/bind-hardware (autenticato) per associarsi esplicitamente e POST /v1/licenses/validate-hardware per convalidare chiave + ID hardware. Tutti gli SDK ufficiali supportano opzioni facoltative hwuid verificare e utilizzare HMAC-SHA256 con confronto in tempo costante per la verifica della firma del webhook.

Token di asserzione della licenza (verifica offline)

Dopo un online POST /v1/licenses/verify, l'API Core potrebbe restituire license_token (RS256 JWT), license_token_expires_at, E license_jwks_uri quando le chiavi di firma sono configurate sull'API. Conserva il token in modo sicuro, verificane la firma utilizzando GET /v1/licenses/jwks, richiedere token_use === "licensechain_license_v1", convalidare exp e (quando emetti licenze per app) quello aud corrisponde all'ID dell'app. Aggiorna chiamando nuovamente la verifica prima della scadenza; il livello influisce sul TTL (lc_vt: base/avanzato/personalizzato). Vedi il Guida alla sicurezza per la verifica asimmetrica e la memorizzazione nella cache JWKS.

Migliori pratiche

Sicurezza

  • Verifica sempre le licenze sul tuo server, non solo sul client
  • Utilizza HTTPS per tutte le comunicazioni API
  • Implementare un'adeguata limitazione della velocità per prevenire gli abusi
  • Registra tutti i tentativi di verifica della licenza per il controllo
  • Utilizza l'impronta digitale del dispositivo per impedire la condivisione delle licenze

Prestazione

  • Memorizza nella cache i risultati della verifica della licenza quando appropriato
  • Utilizza la verifica offline per una migliore esperienza utente
  • Implementare la corretta gestione degli errori e la logica dei tentativi
  • Monitora l'utilizzo dell'API e imposta avvisi
  • Utilizza operazioni in blocco per la gestione di più licenze

Esperienza dell'utente

  • Fornisci messaggi di errore chiari per le licenze non valide
  • Implementare il degrado graduale per i problemi di rete
  • Mostra gli avvisi di scadenza della licenza prima che scadano
  • Fornire percorsi semplici per il rinnovo della licenza e l'aggiornamento
  • Supporta più tipi di licenza per diversi casi d'uso