概要
本資料では、Spotfireアカウントによって署名されたVisualization Mods利用時の注意事項について情報を整理します。
サードパーティーのコードサイニング証明書によって署名されたModsは本資料の対象外です。
動作確認環境
本記事は以下の環境で動作確認したうえで作成しています。
- Spotfire Server 14.0 LTS
- Spotfire Analyst 14.0 LTS
- Spotfire Web Player 14.0 LTS
証明書の有効期間
デフォルト設定では、Spotfireアカウントに発行されたコードサイニング証明書の有効期間は 90 日です。証明書が発行されてからその日数が過ぎると期限が切れてしまい、新しい証明書が自動的に再発行されます。
証明書の有効期限が切れた場合でもすでに署名したModsは引き続き利用できますが、余計に複数のコードサイニング証明書が発行されることを防ぐため、以下の手順でSpotfireアカウントに発行されたコードサイニング証明書の有効期間を長くすることができます。
Spotfireアカウントに発行されたコードサイニング証明書の有効期間の変更手順
Spotfire Server設定変更手順 に従って、下記のコマンドを実行して設定変更を行ってください。
下記例ではSpotfireアカウントに発行されたコードサイニング証明書の有効期間を 1825 日に変更しています。
config.bat set-config-prop -n security.code-trust.validity-period-code-signing-certs -v 1825
有効期間の変更は新たにコードサイニング証明書を発行する際に反映されますが、すでに発行済みの証明書の有効期限は変わりません。
Modsのバージョン管理
Modsからビジュアライゼーションを作成した場合、該当Modsが分析ファイル内に埋め込まれます。
ライブラリに保存されているModsが更新(バージョンアップ、再生成など)された場合、該当Modsを参照した分析を開く際にModsが自動的に同期されて、分析内に埋め込まれているModsがライブラリ内の新しいものによって置き換えられます。
- Analystがオフラインの場合はModsの同期は実施されません。
- ライブラリ内のModsのライブラリIDが分析から参照しているものと同じ、かつModsのID(mod-manifest.json内で定義)も一致している場合、Modsのハッシュ値が変わると該当Modsが自動的に分析へ同期されます。
- 分析内のModsが更新されても分析ファイルは変更状態にはなりません。
- Analystのメニュー「ファイル」⇒「保存」がグレー表示のままで、分析を閉じる際に「'xxx' への変更内容を保存しますか?」の警告メッセージは表示されません。
- 分析を開いた後にModsが正しく動作することを確認したうえで、「名前を付けて保存」を実施して既存分析ファイルを上書きして保存することを推奨します。
Modsが分析へ同期された場合にはAnalystのログに以下のような情報が出力されます。
2024-12-23T18:11:37,637+09:00 2024-12-23 09:11:37,637 admin [ProgressOperationThread] INFO Spotfire.Dxp.Application.Mods.ModManager [(null)] - The mod winx-vsmod1 exists at 'LibraryPath: /mods/Winx Vsmod1, LibraryId: 3bc0b1d6-2a95-43dc-8c04-2e07bc36e407' and the hash differs. An update will be attempted.
2024-12-23T18:11:37,637+09:00 2024-12-23 09:11:37,637 admin [ProgressOperationThread] INFO Spotfire.Dxp.Application.Mods.ModManager [(null)] - Update of winx-vsmod1 from 'LibraryPath: /mods/Winx Vsmod1, LibraryId: 3bc0b1d6-2a95-43dc-8c04-2e07bc36e407' scheduled. Replacing with mod version 1.0
2024-12-23T18:11:37,644+09:00 2024-12-23 09:11:37,644 admin [ProgressOperationThread] INFO Spotfire.Dxp.Application.Mods.ModManager [(null)] - Successfully updated winx-vsmod1 from 'LibraryPath: /mods/Winx Vsmod1, LibraryId: 3bc0b1d6-2a95-43dc-8c04-2e07bc36e407', replaced version 1.0 with 1.0
ローカルのModsファイルを参照した場合はModsが更新されても分析には同期されません。
Modsの環境移行
Spotfireアカウントに発行されたコードサイニング証明書は利用時に失効検証が行われます。失効検証は証明書を発行したSpotfire Serverへ接続して行いますので、接続できない場合は失効検証が失敗してしまい、Modsの署名が「無効な署名」とみなされます。
失効検証サーバー(証明書を発行したSpotfire Server)は証明書の固有情報として保持されています。
例:
Spotfireアカウントによって署名されたModsの失効検証が失敗した際(失効検証サーバーへ接続できないなど)のエラーメッセージン例は下記です。
証明書が取り消されているかを判別することができません。証明書サーバーがオフラインになっているか、使用できない可能性があります。
Spotfire環境バージョンアップの場合
リポジトリデータベースをUpgrade Tool(upgradetool.bat)でアップグレードして構築したSpotfire Server環境の場合、該当Spotfire Serverを従来通りに失効検証サーバーとして利用し続けることができます。アップグレード前に発行されたコードサイニング証明書の失効検証を行う際にはアップグレード前の環境のSpotfire Serverへアクセスしません。また、該当Spotfire ServerのサーバーURL(ホスト名、FQDN、ポート番号などを含む)が変わっても失効検証を正しく行えます(内部処理上は現在のSpotfire Serverを優先に利用するため)。
結論として、Spotfire環境をバージョンアップした場合、Spotfireアカウントによって署名されたModsは特に処置が不要で引き続き利用できます。
Modsを別環境へ移行の場合
Modsを完全に別のSpotfire環境(異なるリポジトリデータベースを参照)へ移行して利用する場合、失効検証は証明書を発行したSpotfire Serverへ接続して行いますので、移行先Spotfire環境(Analyst、Web Playerなど)からコードサイニング証明書を発行した移行元のSpotfire Serverへ接続できるようにしておかなければなりません。
移行先Spotfire環境から証明書を発行した移行元のSpotfire Serverへ接続できるようにすることが難しい場合、移行先Spotfire環境内のSpotfireアカウントで改めてModsを署名してください。
ModsをSpotfireアカウントで再署名するには、以下の手順に従って実施してください。
1.Modsを移行元環境のライブラリからエクスポートして、移行先環境のライブラリへインポートします。
2.Visualization Modsの開発手順に従って対象Modsのソースコードから開発サーバーを起動します。
3.Analystから開発サーバーへ接続してModsファイルを再度生成し、1.で移行先環境のライブラリへインポートしたModsを上書きして保存します。
※ソースコードからModsを作り直す(再署名する)と、Modsのハッシュ値が変わりますので、該当Modsを個別に信頼した場合は再度信頼する必要があります。
これで、該当Modsを参照する分析を開く際には自動的にライブラリから3.の新しいModsを同期して使用しますので、Modsの署名が正しく検証できるようになります。
Modsが同期された後に「名前を付けて保存」を実施して既存分析ファイルを上書きして保存することを推奨します。
上書き保存しない場合、分析内には古いModsが埋め込まれているため、分析を開く都度に古いModsに対して署名の検証(失効検証を含む)を行ってからModsの差し替えを行います。古いModsの失効検証は署名時のSpotfire Serverに接続して実施しますので、接続できない場合は接続タイマムアウトが発生してしまい分析が開けるまで時間がかかる可能性があります。
注意事項として、ローカルのModsファイルを参照する分析の場合はModsが同期されないため、分析を編集してModsを手動で差し替えてください。
Spotfire v14.0では、config.batを利用するなどでSpotfireアカウントによるModsの再署名を行うことはできません(機能改善要望)。