概要
OpenID Connect(OIDC)を用いて認証を行うため設定方法について説明します。
本記事では、OpenID ProviderとしてKeycloakを利用する場合の手順を紹介します。
検証環境
| 製品 | バージョン |
|---|---|
| Windows Server | 2022 |
| Keycloak | 26.3.0 |
| Spotfire Server | 14.0.7 |
| Spotfire Analyst | 14.0.6 |
事前準備
Spotfire ServerにおけるOIDCの導入には、事前に以下の作業が必要です。
- Public Address設定
-
https://spotfire.example.com/のように、HTTPSプロトコルのPublic Addressを設定
-
- SSL設定
- Spotfire ServerもしくはSpotfire ServerへトラフィックをルーティングするロードバランサにSSL証明書をアタッチし、SSLを終端するようにします。
- 自己署名証明書を利用することも可能です。
Keycloak側の設定
クライアント作成
左のメニューからレルムの管理よりクライアントを作成したいレルムに移動しておきます。
管理 > クライアント > クライアントの作成をクリックします。
クライアントタイプはOpenID Connectを選択し、任意のクライアントIDを入力して次へをクリックします。
クライアント認証をオンにし、次へをクリックします。
リダイレクトURIはSpotfire ServerのConfiguration Toolから確認することができます。
OpenID Connect Redirect URIを有効なリダイレクトURIに追加し、保存します。
グループ作成
Keycloakのグループを作成します。
既存のグループを使用する場合は、この手順はスキップしてください。
左のメニューから管理 > グループをクリックします。
グループの作成をクリックします。
名前にグループ名を入力します。
グループが作成されたことを確認し、グループ名をクリックします。
既にユーザーが存在する場合は、上部タブ メンバー > メンバーの追加からユーザーをグループに追加します。
ユーザー作成
先ほど作成したグループにユーザーを作成します。
既にユーザーが存在する場合はこの手順はスキップしてください。
左のメニューから管理 > ユーザーをクリックします。
ユーザーの追加をクリックします。
必要な情報を入力して作成をクリックします。
この時、グループに参加で先ほど作成したグループを指定します。
ユーザーが作成されたことを確認し、ユーザー名をクリックします。
上部タブより クレデンシャル > パスワードを設定をクリックします。
パスワードを入力して保存をクリックします。
確認画面が表示されるのでパスワードを保存をクリックします。
Spotfire Server側の設定
OpenID Connect
Configuration Toolを起動し、ConfigurationタブのOpenID Connectを開き、Enable OpenID ConnectをYesに設定します。
Add new providerから任意の名前を入力します。
名前を入力後に以下のプロパティを入力します。
| 項目 | 内容 |
|---|---|
| Enabled | Yes |
| Provider name | 任意の名称 |
| Discovery document URL | https://<Keycloakドメイン>/realms/<レルム名>/.well-known/openid-configuration |
| Client ID | 以下手順を参照 |
| Client secret | 以下手順を参照 |
Client ID
Keycloakの左のメニューから管理 > クライアントをクリックし、先ほど作成したクライアントをクリックします。
クライアント IDの値をClient IDに入力します。
Client Secret
上部タブからクレデンシャルに移動し、クライアントシークレットの値をClient secretに入力します。
また、Advancedタブを展開し、以下の設定をします。
| 項目 | 内容 |
|---|---|
| Username claim | preferred_username |
| Display name claim | name |
| Email claim | |
| Domain claim | Option 2 を選択 |
| Domain name | <レルム名> |
| Scopes | openid |
| profile | |
Post Authentication Filter
Configuration Toolを開き、Post Authentication FilterのDefault filter modeをBlock(デフォルト値)からAuto-createに変更しておくことで、Keycloakに存在するユーザーをSpotfire Server側に事前に作成しておかなくても、初回ログイン時にユーザーが自動で作成されます。
OpenID ConnectによるSSO可能なユーザーをシステム管理者側で限定する必要がある場合は、Blockのままにしておくことを推奨します。ただし、この場合には、KeycloakのユーザーにマッチするユーザーをSpotfire Server側に事前に作成しておく必要があります。
Spotfire Serverの再起動
上記の設定を保存した後、設定を反映させるためSpotfireサービスを再起動します。
ログイン方法
ログイン画⾯にてユーザー名とパスワードを⼊⼒せずに、先ほど設定したドメイン名を押します。
Keycloakへのログインが求められるのでユーザー名とパスワードを入力し、サインインをクリックします。
Spotfireのライブラリ画⾯の表示が確認できたら、OpenID Connectによるログイン設定は完了です。
※Keycloakアカウントで初めてログインする際には「Everyone」グループに所属され、ライセンスは付与されていないため、「ライブラリ」画⾯しかアクセスできません。管理者権限を持つユーザで該当のユーザーをSpotfireのグループに割り当てる必要があります。
一方で、初回ログイン前にユーザーを事前に作成しておき所定の権限を持つグループに所属させておくことで、初回ログイン時に適切な権限を持つようにすることも可能です。
ユーザー作成
SSO認証に紐づいたユーザーアカウントを作成する方法は、以下の通りです。
- (Post Authentication Filterが「Auto-Create」の場合)SSO認証での自動ユーザーアカウント作成
- Spotfire Analystの「インポート」機能を利用した事前作成
1.(Post Authentication Filterが「Auto-Create」の場合)SSO認証での自動ユーザーアカウント作成
こちらの方法でユーザーアカウントを作成する場合は、以下の工程を実施してください。
- Spotfireユーザーにより、SSO認証でのSpotfire Serverへのログインを実施する
- 上記のログインにより、「Everyone Group」ログインしたユーザー用のアカウントが作成されていることを確認する
- 作成されたユーザーアカウントに適切なグループ、ライセンスを割り当てる
2.Spotfire Analystの「インポート」機能を利用した事前作成
ログインユーザーが事前に作成されたユーザーアカウントと一致しているかどうかは、「Username」および「Domain」を照合することで判定します。
上記をふまえつつ、ユーザーの事前作成を実施する場合は、公開記事「Spotfire Server ユーザー作成方法」の「3.Spotfire Analystの「インポート」機能を利用する方法」を参照しながらユーザー情報をインポートしてください。
ただし、以下の点に注意してください。
- Usernameには、Username claimで指定したクレームによって取得されるユーザー名に一致するようにしてください
- Domainには、Configuration toolにて設定したドメイン名(指定されているDomain claimから取得した情報、または固定の文字列など)に一致するようにしてください
- その他のユーザーアカウントに関するパラメタは、任意となります(ただし、メールアドレスの更新作業は煩雑のため、これらの情報もできる限り一致させることを推奨します)
- パスワードは空欄で構いません