はじめに
WingArc1st社のDatalizer for Webに、Open AMのSAML認証でSSOする仕組みを構築したのでメモしておきます。
SAMLについて簡単なおさらい
SAMLには「SP Initiated」と「IdP Initiated」の2種類があります。
それぞれの違いは以下の通り。
SP Initiatedとは
SP(Service Provider)が起点となるSAML認証のフローです。
1-2. ログインアクション (Datalizer for WebのSAML URLをブラウザで開く等)
3. SPからIdPに対してSAML Requestを送る
4. IdP上でユーザ認証 (認証できていなければユーザに認証画面を表示)
5. IdPがSAML Requestと4.の認証情報を元にSAML Responseを生成してSPに送る
6. SAML Responseを検証し、SAML Responseに記述されているユーザ情報を元にログイン処理を行う
7. ログイン
Datalizer for WebのSAML認証設定
前提
Datalizerは SP Initiated に対応しているようです。
マニュアルにSAML認証を設定する際の前提条件が記載されています。
・外部システムがADFS(Active Directoryフェデレーションサービス)やOpenAMなど、SAMLに対応した認証サーバーを利用している必要があります。
・IdPがADFSの場合、WebブラウザーからDatalizerサーバーにHTTPS接続できる必要があります。
・IdPとDr.SumまたはMotionBoard([MotionBoardのドメイン名]で指定したドメイン)に、同じIDのユーザーが登録されている必要があります。
・IdPとDatalizerサーバーのシステム日時が一致している必要があります。
・DatalizerサーバーからIdPへ渡したRelayStateを、IdPから認証結果と共にDatalizerサーバーへ送り返すように設定する必要があります。
気になるのはIdPがADFSの場合、WebブラウザーからDatalizerサーバーにHTTPS接続できる必要がある
の部分。
HTTPS接続が必要になるのはADFS側の仕様だと思いますが、Google Workspaceも同様にSPに対してHTTPS接続を要求しているので、クラウドのIdPを利用する際はHTTPS接続が基本になってくるのでしょう。
環境
項目 | 内容 |
---|---|
SP | Dr.Sum Datalizer for Web |
IdP | Open AM |
設定の流れ
1. [Datalizer] SAML認証設定の作成
2. [IdP] DatalizerサーバとIdPの信頼関係の構築
3. [Datalizer] 証明書ファイルの登録
4. [Datalizer] 外部認証処理用IDとパスワードの設定
5. [Datalizer] ログインの確認
1. [Datalizer] SAML認証設定の作成
a. 画面左側のメニューから[システム管理]-[設定]-[SAML認証設定]をクリックします。
b. [SAML認証の利用]で[利用する]を選択します。
c. [ターゲットURL]に、認証サーバーのHTTP POSTバインディングのURLを入力します。
d. [適用]をクリックします。
e. [フェデレーションメタデータ]の[ダウンロード]をクリックして、IdPにDatalizerサーバーの情報を登録するためのファイルをダウンロードします。
2. [IdP] DatalizerサーバとIdPの信頼関係の構築
IdPに対してDatalizerサーバをSPとして登録します。
登録時には先述のフェデレーションメタデータを指定するか、以下のパラメータを設定します。
項目 | 設定値 |
---|---|
ACS URL | フェデレーションメタデータの"Location" (例:http://localhost:8180/datalizer/sso/saml/callback) |
エンティティID | フェデレーションメタデータの"entityID" (例:http://localhost:8180/datalizer) |
開始URL | DatalizerのSAML URL (例:http://localhost:8180/datalizer/sso/saml) |
3. [Datalizer] 証明書ファイルの登録
Datalizerサーバーの[SAML認証設定]画面に戻り、IdPから取得した証明書ファイルを登録します。
a. 画面左側のメニューから[システム管理]-[設定]-[SAML認証設定]をクリックします。
b.[証明書ファイル]の[参照]をクリックし、IdPから取得した証明書ファイルを選択して、[アップロード]をクリックします。
4. [Datalizer] 外部認証処理用IDとパスワードの設定
Datalizerサーバーと認証サーバー(Dr.SumまたはMotionBoard)の間で、外部認証処理用IDでの代理認証を実施します。
a. 画面左側のメニューから[システム管理]-[設定]-[認証設定]をクリックします。
b. [接続設定]をクリックします。
c. [外部認証処理用ID]と[外部認証処理用パスワード]を設定します。
5. [Datalizer] ログインの確認
Webブラウザーを起動し、先述の開始URL (DatalizerのSAML URL) に接続すると、ログイン先のページが表示されます。
まとめ
Open AMとのSAML認証では問題なくSSOの仕組みを構築できました。
ADFSやGoogle Workspaceとの連携ではDatalizer for WebをHTTPS接続に変える必要があるため、リバースプロキシやSSLアクセラレータといった構成を追加で準備する必要がありそうです。