2016-09-14 6 views
0

Javaで実装され、ライセンスを必要とする新しい製品を開発しています。ライセンスの検証はサーバーIDに基づいています。私はそれを直接Linuxサーバで実行すると問題はありません。ドッカー。ホストIDに基づいたライセンスでソフトウェアを実行する

しかし、ドッカー内でソフトウェアを実行するオプションを提供したいと思いますが、問題はドッキング用のコンテナからホストIDを取得する方法がわかりません。私はドッカーコンテナIDを使用したくないので、顧客はそれを再作成する必要があります(ソフトウェアアップデートなどのため)。そのため、ホストサーバーのIDを知る必要があります。

私はMACアドレスの使用について考えましたが、 " - net = host"オプションでコンテナを実行する必要があります。セキュリティ上の理由から、このオプションを使用しないでください。

+0

「サーバーID」とはどういう意味ですか?そして、あなたのJavaプログラムは、それが実行されているホストが「有効」であるとどのように判断しますか? – GhostCat

+0

ありがとう@GhostCat。 「サーバーID」とは、ホストサーバーが「ユニーク」であることを確認するものです。たとえば、Macアドレスや、多くのサーバーで同じライセンスが使用されていないことを確認するものです。私はライセンスが単一のサーバーに対して有効であることを望んでいます。 – mrt

答えて

2

たぶん、あなたはバックステップし、例えば、代替的なアプローチにコンポーネントと連携し、このシステムになります:

  1. ユーザーローカルに保存することができますID +プライベートキーのいくつかの並べ替えを持っていますファイルシステム
  2. アプリケーションはディスクからそのファイルを読み取ります。 "ホームサーバー"にコンタクトして、このID +キーが実際に "良い"ものであることを検証し、そうであればアプリケーションが起動します。それ以外の場合は停止する

このようなソリューションでは、ライセンスファイルをドッカーイメージに含めることさえできます。

そして、記録のために、あなたのアプリケーションを中央サーバと話さない他の解決策は、あなたに本当の頭痛を与えるかもしれません。

+0

ありがとう@GhostCat!私はそれについて考えてきました。最後に、私は可能な良い選択肢を見つけました。ホストIDを生成するだけのAPIを持つコンテナを作成し、 - net = hostオプションで起動すると思います。したがって、「一意の」ホストIDを生成することができます。したがって、メインコンテナからこのAPIを呼び出してホストIDを取得し、インストールされているライセンスが有効かどうかを確認します。どう思いますか? – mrt

関連する問題