本資料は、SpotfireにKerberos認証を設定する方法について説明します。
SpotfireにKerberos認証を設定した場合、Analyst(インストールされたクライアントアプリケーション)やConsumer(ブラウザ)のいずれも利用時にはログインが不要となり、自動的にOSログインに使用したLDAPアカウントで認証されます。
環境構成
SpotfireにKerberos認証を設定するにはSpotfire Serverサーバー、Node ManagerサーバーやAnalyst/Consumer端末ともドメインに参加している必要があります。
以下のテスト環境(ドメイン:mydomain.local)を例に説明します。
・Domain Controller(本例:dc01.mydomain.local)
・Spotfire Serverサーバー(本例:tss02.mydomain.local)
・Node Managerサーバー(本例:tsnm02.mydomain.local)
※本資料はSpotfire Server 11.4.7で動作確認し作成しております。
事前準備
1.Spotfire Serverをインストールし、DB認証で環境を構成してください。
・Spotfire ServerにPublic Addressを設定してください。(本例:http://tss02.mydomain.local:1140)
2.Node Managerをインストールし、Spotfire Serverに信頼させてWeb Playerが正しく動作するまで確認してください。
ドメイン側の設定
以下はドメイン管理者(「Domain Admins」のメンバー)でDomain Controller(またはほかの管理用端末)へログインして実施してください。
1.「Active Directoryユーザーとコンピューター」を起動して、Spotfire専用のKerberos認証用アカウント(本例:spotsvc)を作成してください。
・「フルネーム」と「ユーザーログオン名」、「ユーザーログオン名(Windows 2000より前)」が完全に一致すること。
・「ユーザーは次回ログオン時にパスワード変更が必要」のチェックを外すこと。
・「パスワードを無期限にする」をチェックすること。
2.アカウント作成後にダブルクリックしてプロパティ画面を開いて、「アカウント」タブにて「このアカウントでKerberos AES 128ビット暗号化をサポートする」をチェックしてください。
※「このアカウントでKerberos AES 256ビット暗号化をサポートする」をチェックしないでください。
3.OSの管理者権限でコマンドプロンプトを起動して以下のコマンドを実行しService Principal Nameを登録してください。
※Spotfire Serverがポート「80」または「443」に動作している場合には下記の3つ目と4つ目のコマンドの実行は不要です。
setspn -s HTTP/tss02.mydomain.local spotsvc
setspn -s HTTP/tss02 spotsvc
setspn -s HTTP/tss02.mydomain.local:1140 spotsvc
setspn -s HTTP/tss02:1140 spotsvc
以下のコマンドを実行して上記で登録したService Principal Nameを再確認できます。
setspn -L spotsvc
4.Spotfire専用のKerberos認証用アカウント(本例:spotsvc)のプロパティ画面を再度開いて「委任」タブにて「任意のサービスへの委任でこのユーザーを信頼する(Kerberosのみ)」を選択してください。
※上記のステップ3.でService Principal Nameを登録しないと「委任」タブが表示されません。
5.コマンドプロンプトにて以下のコマンドを実行して、キータブファイル(本例:spotfire.keytab)を生成してください。
※引数「/pass MyPassword」にはSpotfire専用のKerberos認証用アカウント(本例:spotsvc)のパスワードを指定します。
ktpass /princ HTTP/tss02.mydomain.local:1140@MYDOMAIN.LOCAL /ptype krb5_nt_principal /crypto aes128-sha1 /mapuser spotsvc /out spotfire.keytab -kvno 0 /pass MyPassword
Spotfire Server側の設定(LDAP認証の設定)
Kerberos認証を設定するには先にLDAP認証を設定する必要があります。
以下はSpotfire Serverサーバー機内でローカル管理者権限のあるユーザーでログインして実施してください。
1.スタートメニュー:TIBCO Spotfire Server 11.4.7 LTS ⇒ Configure TIBCO Spotfire Server 11.4.7 LTSを起動してください。
※起動時にConfiguration Toolのパスワードが必要です。
2.起動後に「Configuration Start」にてLDAP認証を有効にしてください。
・Authentication:BASIC LDAP
・User directory:LDAP
3.「Authentication:LDAP」タブにて「New」ボタンを押して新規LDAP設定(本例:dc01、名前は任意文字列でOK)を作成してください。
・Enable for:Authentication(チェック)、User directory(チェック)
・Configuration type:Microsoft Active Directory
・LDAP username:上記「ドメイン側の設定」で作成したSpotfire専用のKerberos認証用アカウント(本例:spotsvc)を指定してください。
・LDAP password:Spotfire専用のKerberos認証用アカウント(本例:spotsvc)のパスワードを指定してください。
・LDAP server URL:「Lookup」ボタンを押して自動検知するか、Domain ControllerのLDAPアドレス(本例:ldap://dc01.mydomain.local:389)を手入力してください。
・Context names:「Browse」ボタンを押して、すべてのSpotfireユーザーのLDAPアカウントが所属しているコンテキスト(本例:OU=spotfire,DC=mydomain,DC=local)を1つまたは複数指定してください。
4.画面下方にある「Test connection」ボタンを押してLDAPサーバーへの接続テストを行ってください。
5.ステータスバーにある「Save configuration」を押して、「Database (recommended)」へ保存してください。
設定変更内容がわかるようにコメントを記入して保存を完了させてください。
6.「Administration」タブにて「Force synchronization」をチェックし「Search」ボタンを押してLDAPアカウントを同期させて検索してください。
検索結果からSpotfireの管理者として使用するLDAPアカウントを選択して「Promte」ボタンを押して管理者権限を付与してください。
7.Spotfire ServerのサービスやNode Managerのサービスを再起動してください。
・Spotfire Serverサービス(TIBCO Spotfire Server 11.4.7 LTS)
・Node Managerサービス(TIBCO Spotfire Node Manager 11.4.7 LTS)
8.上記6.で管理者権限を付与したLDAPアカウントを使って、AnalystやブラウザからSpotfire Serverへログインできることを確認してください。
9.Spotfire管理者以外のLDAPアカウントに適切なSpotfireライセンス(Analyst、Consumer)を付与してください。
10.AnaystユーザーやConsumerユーザーのそれぞれでAnaystとConsumer機能を正しく利用できることを確認してください。
Spotfire Server側の設定(Kerberos認証の設定)
LDAP認証が正しく動作していることを確認できた後に以下の手順でKerberos認証を設定してください。
以下はSpotfire Serverサーバー機内でローカルOS管理者権限のあるユーザーでログインして実施してください。
1.上記「ドメイン側の設定」のステップ5.で生成したキータブファイル(本例:spotfire.keytab)をSpotfire Serverサーバー機のフォルダ(C:\tibco\tss\11.4.7\tomcat\spotfire-config)にコピーしてください。
2.以下のファイル(krb5.conf)をテキストエディタで編集してください。
・C:\tibco\tss\11.4.7\tomcat\spotfire-config\krb5.conf
編集後の例は以下の通りです。
3.スタートメニュー:TIBCO Spotfire Server 11.4.7 LTS ⇒ Configure TIBCO Spotfire Server 11.4.7 LTSを起動してください。
※起動時にConfiguration Toolのパスワードが必要です。
4.「Configuration:Start」タブにてKerberos認証を有効にしてください。
・Authentication:Kerberos
・User directory:LDAPのままにしてください。
5.「Authentication: Kerberos」タブにて、Kerberos認証を設定してください。
・Service principal name:HTTP/tss02.mydomain.local:1140@MYDOMAIN.LOCAL
・Keytab file:${catalina.base}/spotfire-config/spotfire.keytab(本例ではデフォルトのままでOK)
・Kerberos configuration file:${catalina.base}/spotfire-config/krb5.conf(本例ではデフォルトのままでOK)
6.「Login Dialog」タブにてユーザーがログインダイアログに認証情報を指定できないように設定してください。
・Allow user provided credentials:No
7.ステータスバーにある「Save configuration」を押して、「Database (recommended)」へ保存してください。
8.Spotfire ServerのサービスやNode Managerのサービスを再起動してください。
※本例では、Spotfire ServerサービスやNode Managerサービスともサービスアカウントにはデフォルトの「Local System」を使っています。
・Spotfire Serverサービス(TIBCO Spotfire Server 11.4.7 LTS)
・Node Managerサービス(TIBCO Spotfire Node Manager 11.4.7 LTS)
Web Player側の設定(Kerberos認証の設定)
Web Playerを正しく利用する(ブラウザで分析を開く)には、Node Managerサーバー機のフォルダ(C:\tibco\tsnm\11.4.7\nm\services)に対してすべてのConsumerユーザーのLDAPアカウントに書き込み権限を付与する必要があります。
以下はNode Managerサーバー機内でローカルOS管理者権限のあるユーザーでログインして実施してください。
1.フォルダ(C:\tibco\tsnm\11.4.7\nm\services)のプロパティを開いてください。
2.プロパティ画面の「セキュリティ」タブにて「詳細設定」ボタンを押してください。
3.「アクセス許可の変更」ボタンを押してください。
4.「追加」ボタンを押してください。
5.「プリンシパルの選択」を押してください。
6.ConsumerユーザーのLDAPアカウントを検索するか、該当LDAPアカウントの所属グループを検索してください。
7.「変更」をチェックしてOKを押してください。
8.設定後のアクセス権限設定画面は以下のようになります。
※ステップ4.~7.を繰り返してほかのConsumerユーザーのLDAPアカウントも同様に設定してください。
9.設定後にOKを押して画面を閉じてください。
エンドユーザー側(Analyst)の設定
AnalystからKerberos認証でログインするには特に設定は不要です。Analystライセンスが付与されているLDAPアカウントを使ってドメインに参加している端末へログインすればAnalystへログインできます。
Analystを初回起動する時にはSpotfire ServerのURLを登録する必要がありますが、次回以降にAnalystを起動する際にはログインダイアログが表示されずに自動的に認証されてAnalystのメイン画面が表示されます。
エンドユーザー側(Consumer)の設定
Kerberos認証を設定した場合にはブラウザからSpotfire ServerのURLへアクセスする際にログイン画面が表示されずに自動的に認証された後の画面が表示されますが、ブラウザによって以下の設定変更が必要になります。
※すべてのConsumer端末上で実施してください。
Internet Explorer
1.コントロールパネル⇒インタネットオプションを開いて、「詳細設定」タブにて「統合Windows認証を使用する」をチェックしてください。(デフォルトではチェック済み)
2.コントロールパネル⇒インタネットオプションを開いて、「セキュリティ」タブにて「ローカルイントラネット」を選択して「サイト」ボタンを押してから「詳細設定」ボタンを押してSpotfire ServerのURLを追加してください。
「詳細設定」ボタンを押してください。
Spotfire ServerのURL(ポート番号の指定は不要)を追加してください。
Microsoft Edge(v101より前のバージョン)
上記の「Internet Explorer」部分と同様に設定してください。
Google Chrome(v101より前のバージョン)
上記の「Internet Explorer」部分と同様に設定してください。
Microsoft Edge(v101以降のバージョン)
OSの管理者権限でコマンドプロンプトを起動して以下のコマンドを実行しレジストリ項目を作成してください。
※引数「*.mydomain.local」の部分にはSpotfire Serverサーバー機が参加しているドメインの名前を指定してください。
reg add "HKLM\Software\Policies\Microsoft\Edge" /v AuthNegotiateDelegateAllowlist /t REG_SZ /d "*.mydomain.local" /f
reg add "HKLM\Software\Policies\Microsoft\Edge" /v AuthServerAllowlist /t REG_SZ /d "*.mydomain.local" /f
上記で作成したレジストリ項目は以下の通りです。
Google Chrome(v101以降のバージョン)
OSの管理者権限でコマンドプロンプトを起動して以下のコマンドを実行しレジストリ項目を作成してください。
※引数「*.mydomain.local」の部分にはSpotfire Serverサーバー機が参加しているドメインの名前を指定してください。
reg add "HKLM\Software\Policies\Google\Chrome" /v AuthNegotiateDelegateAllowlist /t REG_SZ /d "*.mydomain.local" /f
reg add "HKLM\Software\Policies\Google\Chrome" /v AuthServerAllowlist /t REG_SZ /d "*.mydomain.local" /f
上記で作成したレジストリ項目は以下の通りです。
Mozilla Firefox
アドレス欄に「about:config」を入力して設定画面を開き、以下の2つの項目を新規作成してください。
・network.negotiate-auth.delegation-uris 設定値(本例):mydomain.local
・network.negotiate-auth.trusted-uris 設定値(本例):mydomain.local