概要
OpenID Connect(OIDC)を用いて認証を行うため設定方法について説明します。
本記事では、OpenID ProviderとしてMicrosoft Entra ID(旧称:AzureAD)を利用する場合の手順を紹介します。
検証環境
OS : Windows Server 2022
Spotfire バージョン: 14.0
事前準備
Spotfire ServerにおけるOIDCの導入には、事前に以下の作業が必要です。
-
Public Address設定
-
https://spotfire.example.com/
のように、HTTPSプロトコルのPublic Addressを設定
-
-
SSL設定
- Spotfire ServerもしくはSpotfire ServerへトラフィックをルーティングするロードバランサにSSL証明書をアタッチし、SSLを終端
- 自己署名証明書を利用することも可
Microsoft Entra ID側の設定
Microsoft Entra ID管理画面にてアプリケーションを登録し、リダイレクト URI には、Spotfire Serverに対して設定した、Public Address を含む OpenID Connect Redirect URI を設定します。
リダイレクトURIはSpotfireのConfiguration Toolから確認することができます。
ConfigurationタブのOpenID ConnectのOpenID Connect Redirect URIの値がリダイレクトURIにあたります。
例)https://spotfire.example.com/spotfire/auth/oidc/authenticate
登録したアプリケーションのアプリケーション(クライアント)IDを確認します
クライアント シークレットを作成し、値をコピーしておきます。
OpenID Connect メタデータ ドキュメントのURLをコピーしておきます。
Spotfire側の設定
OpenID Connect
1. Configuration Toolを起動し、ConfigurationタブのOpenID Connectを開き、Enable OpenID ConnectをYes
に設定します。
2. Add new providerから任意の名前を入力します。
3. 名前を入力後に以下のプロパティを入力します。
項目 | 内容 |
---|---|
Enabled | Yes |
Provider name | 任意の名称(例: Entra ID) |
Discovery document URL | OpenID Connect メタデータ ドキュメントのURL |
Client ID | アプリケーション (クライアント) ID |
Client secret | クライアントシークレット |
OpenID Connect メタデータ ドキュメントのURLとアプリケーション (クライアント) IDはAzureのコンソールにて確認することができます。
クライアントシークレットは管理コンソール上からは確認できません。
クライアントシークレットを作成した管理者に確認する必要があります。
補足)Username claim、Domainについて
Advancedの部分を開くと、Entra IDから取得されたIDトークン内のクレームをSpotfireにおいてどのように扱うかをより詳細に設定することができます。
Username claimにデフォルトで指定されているsubは、AzureアプリとAzureアカウントの組み合わせで⼀意となる、Azureが⽣成した乱数のような値となります。Azure管理画⾯ではこのsubの値を確認できないため、Spotfire アカウントがどのAzureアカウントに紐づいているか確認することができません。以上の理由から、Username claimには、sub以外のクレーム名を設定することを推奨します。
本記事では、sub以外のクレーム名として、upnやpreferred_usernameを使用することを推奨します。upnクレームは、通常、<ユーザー名>@<ドメイン名>
の形式となっているため、ユーザー情報がSpotfire Serverに連携された後の管理がしやすくなります。
また、それに加え、Spotfire Serverに連携されるEntra IDユーザーのドメイン名に関しても、Option 3: parse the username claimを指定することで、upnやpreferred_usernameの値から@<ドメイン名>
の<ドメイン名>
をパースしてドメイン名として連携されるようになります。
Configuration Toolにおける設定例とSpotfire Serverに連携されたEntra IDのユーザー情報の例を以下のスクリーンショットに示します。
Post Authentication Filter
Configuration Toolを開き、Post Authentication FilterのDefault filter modeをBlock(デフォルト値)からAuto-createに変更しておくことで、Entra IDに存在するユーザーをSpotfire Server側に事前に作成しておかなくても、初回ログイン時にユーザーが自動で作成されます。
OpenID ConnectによるSSO可能なユーザーをシステム管理者側で限定する必要がある場合は、Blockのままにしておくことを推奨します。ただし、この場合には、Entra IDのユーザーにマッチするユーザーをSpotfire Server側に事前に作成しておく必要があります。
Spotfire Serverの再起動
上記の設定を保存した後、設定を反映させるためSpotfireサービスを再起動します。
動作確認
本⼿順では、AzureADを⽤いた動作確認の例を掲載していますが、Oktaなどの各IDプロバイダーで認証が可能です。いずれの⽅法でも、最終的にSpotfire側で表⽰される画⾯は同⼀です。
1. ログイン画⾯にてユーザー名とパスワード(従来のDB認証)を⼊⼒せずに、「azure」を押します。
2. AzureADログイン画⾯が表⽰され、ログインを⾏います。
3. 以下の画面が表示されるので承認を選択します。
4. Spotfireのライブラリ画⾯が表⽰されます。表示表示が確認できればOpenID Connectによるログイン設定は完了です。
※Entra IDアカウントで初めてログインする際には「Everyone」グループに所属され、ライセンスは付与されていませんので、「ライブラリ」画⾯しかアクセスできません。管理者権限を持つユーザで該当のユーザーをSpotfireのグループに割り当てる必要があります。ただし、初回ログイン前にユーザーを事前に作成しておき所定の権限を持つグループに所属させておくことで、初回ログイン時に適切な権限を持つようにすることも可能です。