Babel Licensing ツール Server
Babel.Licensing.Tool は、lic コマンドラインを dotnet ツールとしてパッケージ化したものです。.NET SDK さえインストールされていれば、Windows、Linux、macOS のターミナルやスクリプトからライセンスを生成、管理できます。
パッケージの内容
Babel.Licensing.Tool は、lic コマンドをインストールする .NET ツール パッケージです。Babel の zip パッケージに含まれているものと同じコマンドラインツールで、オプションも同じです。Babel Licensing のエディションである Server と Data Center に付属しています。パッケージには、サポートされるランタイム(.NET 6.0 から .NET 10.0)ごとにツールのビルドが 1 つずつ含まれており、dotnet CLI がコンピューター上の SDK に合ったビルドを選択します。
ほかの Babel パッケージと同様に、このツールパッケージは nuget.org にはありません。パッケージのホスティングの説明に従って独自のフィードでホストするか、クライアントコンポーネントに示すようにローカルフォルダーのフィードに追加してください。
ツールを使用する場面
このツールは、Babel Desktop で人が操作するのではなく、プロセスがライセンスを作成する場面で使用します。
- 注文パイプライン、サポート用スクリプト、ビルドから、任意のオペレーティングシステムでライセンスを発行する場合。
- 署名キーペアを生成およびローテーションし、アプリケーションに埋め込む公開キーをエクスポートする場合。
- 顧客から返送されたライセンスを検証し、作り直すことなく更新する場合。
- コンピューターのハードウェアキーを計算し、そのコンピューターのハードウェアに紐付けたライセンスを発行する場合。
- AI に適したモードを使って、エージェント主導で自動化する場合。このモードは、
licツールと難読化ツールで共通です。
このツールが生成するのは、アプリケーションが Babel.Licensing クライアントライブラリを使ってオフラインで検証するライセンスです。アクティベーションライセンスやフローティングライセンスなど、Babel Licensing Service が管理するライセンスは、サービスのツールである Babel Desktop、Web アプリケーション(Data Center)、REST API、MCP サーバーのいずれかで作成します。
ツールのインストール
グローバルツール
グローバルツールは、ユーザーごとに 1 回インストールすれば、どのターミナルからでも使用できます。
dotnet tool install Babel.Licensing.Tool -gフィードが NuGet.config ファイルに登録されていない場合は、明示的に指定します。ソースには、フィードの URL またはローカルフォルダーを指定できます。
dotnet tool install Babel.Licensing.Tool -g --add-source ~/NuGetLinux と macOS では、ツールのフォルダーがパスに含まれていることを確認してください。含まれていないと、lic コマンドが見つかりません。
export PATH="$PATH:$HOME/.dotnet/tools"ローカルツール
ローカルツールは、ツールマニフェストによってリポジトリに固定されるため、すべての開発者と CI エージェントが同じバージョンを実行します。
dotnet new tool-manifest
dotnet tool install Babel.Licensing.Toolこれにより、ツールが .config/dotnet-tools.json に記録されます。このファイルはコミットしてください。ほかのコンピューターでは、dotnet tool restore が固定されたバージョンをインストールします。ローカルツールは dotnet CLI を通じて呼び出します。
dotnet lic --versionアップデートと削除
dotnet tool update Babel.Licensing.Tool -g
dotnet tool list -g
dotnet tool uninstall Babel.Licensing.Tool -gローカルツールの場合は -g を省きます。dotnet tool list は、インストールされているパッケージ、そのバージョン、パッケージが提供する lic コマンドを表示します。難読化ツールもインストールされている場合は、babel と並んで表示されます。同じコマンドはインストールでも説明しています。
ツールのライセンス
このツールには Babel Licensing のライセンスが必要です。dotnet ツールには babel.licenses をコピーできるインストールフォルダーがないため、次のいずれかの方法で lic にライセンスを渡します。
BABEL_LICENSE_PATH環境変数に、ライセンスファイルの完全なパスを設定します。開発用のコンピューターとビルドエージェントでは、この方法をお勧めします。
export BABEL_LICENSE_PATH=~/Babel/babel.licenses- 呼び出しのたびに
--licenseを指定し、ライセンスファイルのパス、または検索するフォルダーのパスを渡します。 --license env:BABEL_LICENSEを指定します。この変数にはライセンスキーを格納します。キーをシークレットに保存するビルドサーバーに適した方法です。
引数なしの lic --license は、使用中のライセンスを表示します。ライセンスファイルは 1 つの製品バージョンに対してのみ有効です。ツールと同じバージョンに付属していたファイルを使用し、両方を一緒にアップデートしてください。
ツールの使用
lic コマンドは、コマンドラインツールとリファレンスで説明している構文とスイッチを受け付けます。一般的な呼び出しでは、ライセンスの対象となるアセンブリ、キー、ライセンスの内容、出力ファイルを指定します。
lic MyApp.dll --keyfile keys.pem --sign --licensee name="Contoso" --product name="MyApp" --expiredate 365 --feature Pro=1 --trial days=30 --output MyApp.licenses --encoding utf-8ローカルツールの場合は、コマンドの前に dotnet を付けます。
スクリプトとオートメーション
バージョン 11.8 以降、lic コマンドラインには、スクリプトとエージェント向けに設計された AI に適したモードがあります。
lic MyApp.dll --keyfile keys.pem --sign --licensee name="Contoso" --expiredate 365 --format json --quiet --strict-exit--format json または ndjson は、出力を機械可読のストリームに変え、人が読むための診断メッセージを標準エラーに送ります。--quiet はバナーを省き、対話型プロンプトがあればすぐに失敗させます。--strict-exit は、無効な引数、入力の欠落、ライセンスの処理、ツールのライセンス、署名のそれぞれの失敗に対して、異なる終了コードを返します。終了コードは難読化ツールと同じなので、1 つのスクリプトが 1 つの表で両方のツールを扱えます。
ビルドサーバーでの実行
このツールは、ステップの 1 つとしてライセンスを発行するパイプラインに適しています。たとえば、統合テストを実行する前に、アプリケーションのテストビルドにライセンスを付与する場合です。ツールマニフェストをリポジトリにコミットし、フィードを NuGet.config で設定しておけば(GitHub Packages に対して認証する構成については、GitHub Actions のサンプルを参照してください)、GitHub Actions のジョブは次のようになります。
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0.x'
- name: Restore tools
run: dotnet tool restore
env:
PACKAGES_TOKEN: ${{ secrets.PACKAGES_TOKEN }}
- name: Write the signing key
run: echo "$SIGNING_KEY" > keys.pem
env:
SIGNING_KEY: ${{ secrets.LICENSE_SIGNING_KEY }}
- name: Issue the test license
run: dotnet lic artifacts/MyApp.dll --license env:BABEL_LICENSE --keyfile keys.pem --sign --licensee name="CI" --expiredate 7 --output artifacts/MyApp.licenses --quiet --strict-exit
env:
BABEL_LICENSE: ${{ secrets.BABEL_LICENSE_SECRET }}秘密キーはシークレットに保存し、リポジトリには決して置かないでください。秘密キーを持つ人は誰でも、お使いの製品のライセンスを発行できます。
トラブルシューティング
lic: command not found:グローバルツールのフォルダーがパスに含まれていません。~/.dotnet/toolsをPATHに追加するか、ローカルツールを使用してdotnet licを実行します。- .NET のインストールを求めるメッセージ:選択されたツールのビルドには、対応する .NET ランタイム(6.0 から 10.0)が必要です。そのランタイムをインストールするか、
DOTNET_ROLL_FORWARD=Majorを設定して、より新しいランタイムでツールを実行します。 - 「A valid license could not be found」と表示される:
BABEL_LICENSE_PATHまたは--license引数を確認してから、lic --licenseを実行して、ツールが読み込んだライセンスを確認します。別のバージョン用のライセンスファイルは、有効でないと報告されます。 - アプリケーションがライセンスを有効でないと報告する:ライセンスが
--signなしで書き出されたか、公開キーがアプリケーションに埋め込まれたものと一致しないキーペアで署名された可能性があります。lic <file> --verify --keyfile <key>を実行して、想定しているキーで署名を確認してください。 Unrecognized option:パス上にある古いlicが応答しています。dotnet tool list -gとlic --versionを実行して、どのビルドを呼び出しているかを確認してください。--format json、--quiet、--strict-exitには、バージョン 11.8 以降が必要です。