シングルサインオンをSAMLで連携してみた
証明書作成(WebFOCUS側)
SAMLアサーションで使用する証明書を作成します。WebFOCUS製品内にも初期状態で証明書は内包していますが、今回の連携用に新規作成します。
Keytoolコマンドを使用して作成します。作成した証明書は、キーストア[wfKeystore.jks]内へ格納します。
WebFOCUSがインストールされたサーバへログインして下記のコマンドを実行します。
# WebFOCUSインストール先のキーストア格納フォルダへ移動
cd C:\ibi\WebFOCUS82\config\was
# WebFOCUSインストール先のキーストア格納フォルダへ移動
cd /home/webfocus/ibi/WebFOCUS82/config/was
証明書の作成
# 既存のキーストア[wfKeystore.jks]へ証明書を作成・格納
keytool -genkey -alias webfocus2 -keyalg RSA -keysize 2048 -keypass <任意のパスワード> -storepass store10121 -validity 3650 -keystore wfKeystore.jks -dname "CN=B1911-43-01, OU=Information Infrastructure Group, O=K.K.Ashisuto, L=Chiyoda-ku, ST=Tokyo, C=JP"
新規のキーストアも作成することが可能です。キーストアの名称やパスワード、エイリアス名なども任意のものが指定できます。必要に応じて変更してみてください。
SPメタデータ生成(WebFCOUS側)
WebFOCUSのSAML認証用設定とSPメタデータの作成を実施します。
代替ゾーンを設定する
管理コンソールへアクセスする
http://WebFOCUS導入先/ibi_apps/admin
[セキュリティ]タブ – [セキュリティゾーン]を選択
[代替]を有効にする
代替ゾーンは、デフォルトの認証ゾーンとは別の認証圏として設定することができます。
代替ゾーンには、あらかじめ「127.0.0.1」からの接続が含まれていますので、デフォルトゾーンで、SAML認証を設定した場合でも、WebFOCUS導入先ホスト自身からの接続であれば、SAML認証連携が適用されないこととなります。
証明書の選択
管理コンソールへアクセスする
http://WebFOCUS導入先/ibi_apps/admin
[セキュリティ]タブ – [セキュリティゾーン] – [デフォルト] – [認証]を選択
画面右端の[キー管理…]を選択
キーストアファイルのパスが、証明書作成時に使用したキーストアのパスと一致しているかどうか確認
一致していない場合は、証明書作成時に指定したキーストアファイルのパスを指定
※パスワードを変更している場合は、キーストアのパスワードも指定
[追加…]ボタンをクリック
証明書作成時に指定したエイリアス名とパスワードを指定
デフォルト証明書エイリアスをチェック
[OK]ボタンをクリック
指定したエイリアスが追加されていることを確認して、[OK]ボタンをクリック
SPメタデータ生成
SP(WebFOCUS)のSAML設定をメタデータへ出力します。
引き続き、管理コンソールへアクセスする
http://WebFOCUS導入先/ibi_apps/admin
[セキュリティ]タブ – [セキュリティゾーン] – [デフォルト] – [認証] – [SAML認証]を選択して、[編集…]をクリック
[署名証明書エイリアス]と[暗号化証明書エイリアス]で、証明書作成時に指定したエイリアス名を選択する
※選択肢に期待するエイリアスが表示されない場合は、前述の証明書の選択を実施・再確認する
[メタデータの生成]をクリック
[エンティティID]と[エンティティベースURL]が、ユーザーから名前解決できて、接続できる名前となっていることを確認する
※「localhost」などになっていると連携できない
今回は「Email」のチェックを外して、[生成]ボタンをクリック
「wfspMetadata.xml」ファイルがダウンロードされるので保存する
保存が完了したら、[キャンセル]ボタンをクリック
[OK]ボタンをクリック
[保存]ボタンをクリックする
生成したSPメタデータの配置
ダウンロードしたメタデータファイルをWebFOCUS導入先の下記フォルダへ配置します。
■Windows
WebFOCUS導入先ドライブ\ibi\WebFOCUS82\config\was\saml
■Linux
WebFOCUS導入先ディレクトリ/ibi/WebFOCUS82/config/was/saml