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