私たちの製品のライセンス スキーマを実装するように依頼されました。それらは非常に高価な製品であり、世界中にまばらに分散している少数の顧客がおり、基本的にすべての製品に設計環境 (単一の Windows マシンにインストールされた Windows アプリケーション、顧客ごとに 1 ~ 150 のクライアント マシン) と、運用環境をホストする Web サーバーがあります。 (顧客ごとに 1 ~ 8 台のマシン)。当社の製品はサーバーでの使用が許可されているため、顧客は任意の数のクライアントを使用できます。サーバー部分は (SLA 契約の対象となるため) ライセンスを取得せず、クライアントのみをライセンス付与することにしました。これは、しばらくクライアントを使用できなくなると、システムが基本的に役に立たなくなるためです。
私たちの基本的な前提は、顧客が「正直」であり、期限付きライセンスで適切にライセンスされていない場合にクライアントの設計環境を停止することだけです。
さまざまなライセンス製品を評価しましたが、それらは高すぎるか、管理が難しすぎるため、次の簡単な解決策を考え出しました。
- ライセンスは単純な署名付き XML ファイルであり、w3c の標準 XML 署名機能を使用して署名され、USB キーで管理部門に提供される秘密鍵を使用します。彼らがそれを紛失した場合、ライセンススキーマは失敗しますが、それは彼らのせいです
- クライアントは起動時にライセンス ファイルを開き、バイナリに埋め込まれた公開鍵を使用してその有効性を確認します。
- ライセンス XML が有効であり、その中のデータ (有効期限と製品名) がデザイナーの作業よりも正しい場合。そうでない場合は、適切なメッセージが表示されます
考えられる問題やシナリオを改善する方法についてのアイデアはありますか?