概要
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のグループに割り当てる必要があります。
ただし、初回ログイン前にユーザーを事前に作成しておき所定の権限を持つグループに所属させておくことで、初回ログイン時に適切な権限を持つようにすることも可能です。