As I continue to refine my working approach to deploying proprietary Mathematica code (see:
Prevent package from being opened in a notebook interface and
Run encoded package code through .NET/Link?).
I've gotten to wondering about a next step.
I currently create a pair of compiled Mathematica Libraries. One with my proprietary code and a second which supplies authorizations of machines or users designated to use the libraries. The first calls the second and if the user or the machine does not have permission it closes down the kernel.
This works ok, except since I don't develop in a Windows environment I have to do the compilation on a Windows machine in my client's offices. Not the best situation for code security.
I started wondering how Wolfram identifies authorized users. I further wondered if one could overload the Wolfram authorization functions for a specific authorized machine or user to use a specific compiled library.
Can one access this or use it in this way?
Alternatively, does any means exist where I could maintain authorizations in the "cloud"? I could readily update authorizations and I could then simply give the client read only access to the authorization list. This would work great as it could operate independently of platform and any specific libraries or code. It would also make for very easy license maintenance.
Mathematica Online, looks promising for this:
but I don't know when Wolfram will release it.
Can anyone suggest a currently viable way to do this?