Siamo una startup IT che fornisce ad alcuni clienti un kit di sviluppo software, che può essere utilizzato dal cliente all'interno di un ambiente specifico, secondo alcuni termini e accordi legali. Soprattutto, il client potrebbe chiamare i servizi e i metodi pubblici di SDK dal proprio codice sorgente.
Ad esempio, gli accordi potrebbero richiedere che il client possa utilizzare l'SDK solo in UN ambiente (ad esempio in un'applicazione).
A questo punto, vorremmo monitorare l'SDK per garantire che il client rispetti questo vincolo e, se usa l'SDK in un ambiente per il quale non ha acquistato l'SDK, vogliamo essere in grado di bloccare l'accesso al SDK, quindi non poteva usarlo.
So che diverse aziende implementano tali funzionalità per i framework e l'SDK che forniscono, ma non sono riuscito a trovare nulla sul Web su come impostare un meccanismo del genere ...
Vorremmo utilizzare una soluzione standard, anche se è a pagamento, piuttosto che creare qualcosa da zero ...
Grazie infinite a chiunque ci possa illuminare !!!
Chiarimento / Aggiornamento
Il nostro SDK non fornisce servizi Web, fornisce solo metodi locali che il client può chiamare dopo aver installato l'SDK.
In realtà c'è un solo metodo basato su richiesta http in SDK.
È il punto di ingresso dell'SDK, un metodo chiamato setUp()
che richiede essenzialmente due parametri: nome utente del client e password .
Quindi il cliente deve chiamare questo metodo, che controlla le sue credenziali tramite la richiesta http al nostro server. Se l'autenticazione ha esito positivo, il client può utilizzare i metodi locali dell'SDK, altrimenti non può.
Modifica
Ho appena scoperto il concetto di chiave API , all'inizio pensavo che sarebbe stata una potenziale soluzione per questo problema, ma sembra che non si adatta al contesto del problema che sto cercando di risolvere, grazie a @Matthew.
Ora mi chiedo se una applicazione della licenza sarebbe una soluzione adeguata ?? In realtà sto pensando al modo in cui il team Aspose gestisce le licenze che danno ai loro clienti. Seguendo questo link, sembrano gestire i DRM piuttosto strettamente ...
E un'ultima cosa, qual è la differenza tra una licenza e una chiave del prodotto ? Conoscere i vantaggi e gli svantaggi di ciascuna di queste soluzioni potrebbe aiutarmi molto a scegliere il giusto sistema di sicurezza per la mia API.