Somos una startup de TI que proporciona a algunos clientes un Kit de desarrollo de software, que puede ser utilizado por el cliente dentro de un entorno específico, de acuerdo con algunos términos y acuerdos legales. Especialmente, el cliente podría llamar a los servicios y métodos públicos de SDK desde su propio código fuente.
Por ejemplo, los acuerdos pueden requerir que el cliente utilice el SDK solo en UN entorno (en una aplicación, por ejemplo).
A continuación, nos gustaría monitorear el SDK para asegurarnos de que el cliente respeta esta restricción, y si usa el SDK en un entorno para el que no compró el SDK, queremos poder bloquear el acceso al SDK, por lo que no pudo usarlo.
Sé que varias compañías implementan tales características para los marcos y el SDK que proporcionan, pero no pude encontrar nada en la web sobre cómo configurar un mecanismo de este tipo ...
Nos gustaría usar alguna solución estándar, incluso si es de pago, en lugar de construir algo desde cero ...
¡Muchas gracias a cualquiera que nos ilumine!
Aclaración / actualización
Nuestro SDK no proporciona servicios web, solo proporciona métodos locales a los que el cliente puede llamar después de instalar el SDK.
En realidad, solo hay un método basado en la solicitud de http en el SDK.
Es el punto de entrada del SDK, un método llamado setUp()
que toma esencialmente dos parámetros: el nombre de usuario y contraseña del cliente.
Por lo tanto, lo más importante es que el cliente tenga que llamar a este método, que verifica sus credenciales a través de la solicitud de http a nuestro servidor. Si la autenticación es exitosa, entonces el cliente puede usar los métodos locales del SDK, de lo contrario no puede.
Editar
Acabo de descubrir el concepto de clave de API , al principio pensé que sería una solución potencial para este problema, pero parece que que no se adapta al contexto del problema que estoy tratando de resolver, gracias a @Matthew.
Ahora me pregunto si un cumplimiento de licencias sería una solución adecuada. En realidad estoy pensando en la forma en que el equipo Aspose gestiona las licencias que otorgan a sus clientes. Siguiendo este enlace, parece que administran el DRM de forma bastante estricta ...
Y una última cosa, ¿cuál es la diferencia entre una licencia y una clave de producto ? Conocer las ventajas y desventajas de cada una de estas soluciones podría ayudarme mucho a elegir el sistema de seguridad adecuado para mi API.