Utilizza un file di licenza con firma digitale locale che codifica le regole aziendali
Ho diviso la mia risposta per coprire i requisiti generalmente accettati, una strategia aziendale corrispondente e gli aspetti tecnici del problema.
Requisiti generali
Poche cose infastidiscono gli utenti più che il loro lavoro interrotto a causa di un problema di licenza. A tal fine si desidera avere un sistema che:
- è resiliente contro gli errori di rete e hardware (nessun singolo punto di errore)
- si adatta bene (nuovi server e più utenti arrivano man mano che l'azienda cresce)
- è resistente contro la contraffazione delle licenze
- avvisa gli amministratori quando si avvicinano ai limiti della loro licenza
- non presenta mai un falso positivo (se l'accesso sicuro non è sicuro è la regola per un comportamento di licenza amichevole)
per citarne solo alcuni.
Strategia aziendale
La tua azienda vorrà il controllo totale sulla licenza, altrimenti il cliente manipolerà i valori a loro vantaggio. Tuttavia, il cliente non vorrà che la tua azienda guardi alle spalle e quindi il sistema dovrà essere autonomo sul loro sito.
Il cliente non vorrà fallire l'intero sistema se una licenza non può essere verificata. Questa ovvia richiesta esclude un approccio di autenticazione centralizzato in rete, poiché potrebbe non riuscire per una moltitudine di motivi (rete, codifica scadente, interruzione dell'alimentazione, guasto dell'hardware, ecc.). Mentre l'autenticatore della licenza centrale viene riparato (potrebbero essere giorni in cui farlo), il cliente non è in grado di fare nulla, assolutamente inaccettabile.
Tenendo presente quanto sopra, la strategia per mantenere i clienti soddisfatti è quella di ottenere un po 'di attenzione in termini di manutenzione utilizzando un file di licenza locale contenente le regole per il server specificato.
Implementazione tecnica
Per raggiungere questo obiettivo e ridurre al minimo il colpo, ti suggerisco di fare quanto segue:
-
Scrivi uno strumento di configurazione della licenza per la tua azienda. Questo file definisce il limite utente, le funzioni consentite e i tipi di utente per ciascun prodotto sotto forma di un file di licenza con firma digitale emesso dalla società utilizzando una chiave privata.
-
I server devono caricare il file di licenza e verificare la firma digitale utilizzando la chiave pubblica che è ospitata su un noto sito di chiavi pubbliche ( pgp.mit.edu ) o incorporato direttamente nel codice all'avvio o dopo la manutenzione
-
Ogni server verifica il carico, il tipo e le attività correnti dell'utente rispetto al file di licenza firmato mentre il traffico si verifica. Il caricamento che si avvicina al limite della licenza dovrebbe attivare un'email o un messaggio agli amministratori di sistema.
-
I server possono aggiornare il loro file di licenza in risposta a una richiesta PUT basata su socket che ha una firma digitale idonea (nuovamente verificata dal sito della chiave remota). Ciò consentirà a uno script automatico di fornire modifiche alle licenze quando uno dei tuoi ragazzi è sul posto che fornisce manutenzione.