概要
本資料はSpotfire Serverに二要素認証(two-factor authentication)を構成する手順について説明します。
Spotfireでサポートされている二要素認証は、従来の認証方式(DB認証、LDAP認証等)+クライアント証明書による認証のみになります。
二要素認証が構成されている場合、インストールされたクライアントまたはウェブクライアントからSpotfire Serverへログインする際に、従来の認証方式に加え、クライアント側にてインストールされているクライアント証明書による認証も実施されます。
二要素認証を利用するには、以下の設定が必要です。
- Spotfire ServerにHTTPS通信を有効に設定
- Spotfire Serverに二要素認証を有効に設定
- Spotfireアカウントに紐づくクライアント証明書をクライアント端末にインストール
HTTPS通信の有効化に必要なサーバー証明書や、二要素認証に必要なクライアント証明書は事前に入手する必要があります。証明書の入手方法は本記事の対象外です。
動作環境
本資料は以下の環境で動作確認したうえで作成しています。
- Spotfire Server 14.0 LTS
- Spotfire application for Windows (旧称:Spotfire Analyst)14.0 LTS
- 通称:インストールされたクライアント
- Spotfire Web Player 14.0 LTS
- Spotfire application for web(旧称:Spotfire Business Author、Spotfire Consumer)14.0 LTS
- 通称:ウェブクライアント
本記事の内容は、Spotfire Server 11.4 LTS 以降に適用できます。
サーバー側の構成手順
Spotfire Server端末内で、以下の手順に従って二要素認証を構成します。
1.二要素認証の有効化
スタートメニューから「Spotfire Server 14.0.X LTS」⇒「Configure Spotfire Server 14.0.X LTS」を押して Configuration Tool を起動し、「Configuration」タブにて「Configuration Start」ページを開き、「Enable two-factor authentication」のチェックを入れます。
その後に「Authentication: Certificate」ページが追加され、二要素認証に使うクライアント証明書からSpotfireアカウント名を抽出する方法を設定します。インストールされたクライアントまたはウェブクライアントでは該当名前に一致するSpotfireアカウントでログインします。
デフォルトでは「Name attribute from subject DN」が選択されています。
「Subject alternative name」を選択すると設定項目が以下の通りになります。
設定項目の詳細は下表の通りです。
| 設定項目 | デフォルト値 | 説明 |
|---|---|---|
| Name attribute from subject DN | クライアント証明書の発行先(サブジェクト)のDN(Distinguished Name)からSpotfireアカウント名を抽出する | |
|
CN | DN(例:CN=xxx,OU=yyy,O=zzz)のどの部分から抽出するかを指定する |
|
No |
抽出したSpotfireアカウント名にドメイン名が含まれているかどうかを指定する
|
| Subject alternative name | クライアント証明書の「Subject alternative name」(サブジェクト代替名)からSpotfireアカウント名を抽出する | |
|
|
左記のいずれのSubject alternative nameから抽出するかを指定する |
|
0 | 一致するSubject alternative nameが複数個存在する場合にどれを使用するかをインデックスで指定する(0:最初のもの) |
|
No | 抽出したSpotfireアカウント名にドメイン名が含まれているかどうかを指定する |
例:
2.Spotfire ServerのHTTPS通信の有効化
Spotfire ServerにHTTPS通信を有効化するには、事前に秘密鍵を含んでいるサーバー証明書(PKCS#12:*.pfx/*.p12、JKS:*.jks)を入手する必要があります。証明書の入手方法は本記事の対象外です。
サーバー証明書(本例:winx.pfx)を以下のフォルダに格納してください。
通常、ファイル名はサーバーのホスト名に設定します。
C:\spotfire\spotfireserver\14.0.X\tomcat\certs\winx.pfx
以下のファイルをテキストエディタで開いて編集します。
C:\spotfire\spotfireserver\14.0.X\tomcat\conf\server.xml
- 先頭や後ろにある<!--、-->を削除してコメントを外します。
- 下記の3行を削除します。次のステップで再設定しますが、ここでは不要です。
- truststoreFile="./certs/winx.jks"
- truststorePassword="changeit"
- truststoreType="jks"
- 下記の4行には実際のサーバー証明書(本例:winx.pfx)の情報を反映してください。
- certificateKeystoreFile="./certs/winx.pfx" :証明書ファイルのパス(tomcatフォルダの相対パスを記載)
- certificateKeystorePassword="certpass" :証明書ファイルのパスワード
- certificateKeystoreType="pkcs12" :証明書ファイルの種類(pkcs12、jks)
- certificateKeyAlias="winx" :証明書の別名、証明書ファイル内に証明書が1つのみある場合は記載不要
- 既知問題(詳細は後述を参照)への暫定対策として、以下の部分を指定してTLSv1.3を一時的に無効にします。
- protocols="TLSv1.2" ※2026/03/09追記:こちらの既知問題を対処したHotfixがリリースされました。
以下の部分をコメントアウトして、HTTP通信を無効にします。
Public AddressをHTTPS通信のURLに設定します。Configuration Toolの「Configuration」タブにて「Public Address」ページを開き、「Enable custom public address」に「Yes」を選択してSpotfire ServerのURLを https://<server>:<port、443の場合は省略可> の形式で指定してください。
設定が一通り完了した後には画面右下にある「Save configuration」を押して「Database」へ保存してください。
3.二要素認証に使用するクライアント証明書の設定
二要素認証を利用するには、クライアント証明書を発行したCAの証明書(ルート証明書、複数可)がSpotfire Server端末に配置されている必要があります。インストールされたクライアントまたはウェブクライアントからは、該当CA証明書によって発行されたクライアント証明書でのみ認証できます。
デフォルトでは Spotfire Server 14.0 に同梱されている Java 17 のトラストストア「cacerts」(パスは下記)に格納されているCA証明書が使用されます。クライアント証明書がこの中のCAによって発行された場合は特に設定は不要です。
C:\spotfire\spotfireserver\14.0.X\jdk\lib\security\cacerts
上記のトラストストア「cacerts」内にある証明書の一覧を確認するには以下のコマンドを実行してください。
トラストストア「cacerts」のパスワードは「changeit」です。
C:\spotfire\spotfireserver\14.0.X\jdk\bin\keytool.exe -list -cacerts -storepass changeit
一方で、クライアント証明書が上記以外のCAによって発行された場合、以下の手順で該当CAの証明書をSpotfire Serverに配置する必要があります。また、以下の手順で実施した場合、上記のトラストストア「cacerts」内にある証明書は使われなくなります。
①、以下のコマンドを実行してCAの証明書(PEM形式やDER形式のどちらも利用可)を新規キーストア(本例:myca.pfx)にインポートします。キーストアのパスワードは任意の文字列に設定して構いません。
C:\spotfire\spotfireserver\14.0.X\jdk\bin\keytool.exe -importcert -file <CAの証明書.crt> -alias <CA証明書の別名> -keystore myca.pfx -storepass mypassword -nopromptCAの証明書が複数個存在する場合上記のコマンドを繰り返して同じキーストアへインポートしてください。
②、作成したキーストア(本例:myca.pfx)を以下のフォルダに格納します。
C:\spotfire\spotfireserver\14.0.X\tomcat\certs\myca.pfx
③、以下のファイルをテキストエディタで開いて編集します。
C:\spotfire\spotfireserver\14.0.X\tomcat\conf\server.xml
下記の4行には、上記で作成したキーストアの情報を指定してください。
- certificateVerification="required" :「required」に変更する必要があります。
- truststoreFile="./certs/myca.pfx" :キーストアのパス(tomcatフォルダの相対パスを記載)
- truststorePassword="mypassword" :キーストアのパスワード
- truststoreType="pkcs12" :キーストアの種類(pkcs12、jks)
4.Spotfire Serverサービスの再起動
設定変更が一通り完了した後に、Spotfire Serverサービスを再起動して変更内容を反映させます。
クライアント側の利用手順
インストールされたクライアントまたはウェブクライアント側の利用手順は下記の通りです。
クライアント証明書のインストール
Spotfireアカウントに紐づくクライアント証明書をクライアント端末にインストールする必要があります。秘密鍵を持つ証明書が必要です。ファイルエクスプローラより証明書ファイル(*.pfx)をダブルクリックしてインストールを実施して下さい。
クライアント証明書(*.pfx)のインストール手順の例:
ウェブクライアントでのログイン
ウェブクライアントからSpotfire ServerのURLへアクセスすると、クライアント証明書を選択する画面が表示されます。
ここで選択できるクライアント証明書は、前述の手順でSpotfire Serverに配置した「myca.pfx」内のCA証明書によって発行されたものになります。
証明書を選択してOKを押します。証明書を選択しないとログインできません。
上記で選択したクライアント証明書に一致するSpotfireアカウントでログインします。
クライアント端末に、クライアント証明書がインストールされていない場合はHTTPS通信でSpotfire Serverへアクセスしようとすると下記のエラー(ERR_BAD_SSL_CLIENT_AUTH_CERT)が発生し、アクセスできません。
インストールされたクライアントでのログイン
クライアント端末内にクライアント証明書が1つのみインストールされている場合は証明書の選択画面が表示せず、通常通りにインストールされたクライアントを起動してログインできます。
ログインの前に事前に「Manage servers」よりSpotfire ServerのURL(HTTPS通信)を設定してください。
クライアント証明書と一致しないSpotfireアカウントではログインできません。
クライアント端末に複数のクライアント証明書がインストールされている場合はインストールされたクライアント起動時に証明書選択画面が表示されます。証明書を選択したうえで一致するSpotfireアカウントでログインしてください。
既知問題
2026/01現在、以下のバージョンにてTLSv1.3サポートがインストールされたクライアントに仕様追加されておりますが、二要素認証はTLSv1.3では正しく動作しません。
- Spotfire application for Windows 14.0.8 HF-035以降
- Spotfire application for Windows 14.6.0 HF-001以降
症状としてWindows 11端末上でインストールされたクライアントからログインしようとすると以下のエラーが発生します(ウェブクライアントからは問題なくログイン可能です)。
エラーメッセージの抜粋:
Error message: Could not connect to server 'https://winx/' to download manifest.
ManifestWebException at Spotfire.Dxp.Services:
Could not connect to server 'https://winx/' to download manifest. (HRESULT: 80131509)
・・・
WebException at System:
接続が切断されました: 受信時に予期しないエラーが発生しました。 (HRESULT: 80131509)
・・・
IOException at System:
暗号化解除の操作に失敗しました。内部例外を参照してください。 (HRESULT: 80131620)
・・・
Win32Exception at :
証明書の処理中に不明なエラーが発生しました。 (HRESULT: 80004005)
・・・
暫定対策として、Spotfire Serverの設定を変更してTLSv1.3を一時的に無効にしてください。設定変更後にSpotfire Serverサービスを再起動して変更を反映させてください。
C:\spotfire\spotfireserver\14.0.X\tomcat\conf\server.xml
補足:TLS 1.3 は、Windows 11 および Windows Server 2022 以降でサポートされています。
修正版リリース
2026/03/09追記:上記の既知問題を対処したHotfixがリリースされました。下記のHotfixを適用した場合は TLS 1.3 でも二要素認証が正しく動作するようになります。
Hotfix一覧(参考資料):
- Spotfire 14.0 LTS HF-041
- TS-84018 - Client certificate authentication, including two-factor authentication, does not work with TLS 1.3.
- Spotfire 14.6 LTS HF-007
- TS-84017 - Client certificate authentication, including two-factor authentication, does not work with TLS 1.3.
- Spotfire 14.7 HF-003
- TS-84016 - Client certificate authentication, including two-factor authentication, does not work with TLS 1.3.
参考資料
- Two-factor authentication
- Authentication using X.509 client certificates
- Configuring HTTPS
- Apache Tomcat 10 Configuration Reference