ブログ|株式会社セシオス

イントラネットにあるwebサービスへSSOしてみよう-後編

作成者: 株式会社セシオス|May 25, 2020 9:00:39 AM

 

 

こんにちは。セシオスサポートチームです。

 

「Secioss Identity Suite Cloud Edition SP」を使ったSSO 後編です。

 

前回記事でサンプルのwebアプリをデプロイしました。

前回記事:イントラネットにあるwebサービスへSSOしてみよう-前編

 

今回は IDSuiteSP の構築と、SeciossLink との連携設定を行って
実際にサンプルWebアプリへログインするところまでやってみたいと思います。

 

構築状況は以下を想定しています。適宜読み替えてください。
SSOを行いたいwebアプリのドメイン:https://testservlet.test.secioss.com
IDSuiteSPサーバーのドメイン:https://idsuitesp.test.secioss.com

 

IDSuiteSP ダウンロード

 

ダウンロード方法については弊社までお問い合わせください

 

「Secioss Identity Suite Cloud Edition SP」をダウンロードします。
最新版は v4.0.3 です。

secioss-idsuite-cloud-sp-4.0.3.zip をダウンロードしたら
IDSuiteSPを構築するサーバーへscpなりftpなりで送って下さい。

 

※サンプルのwebアプリを構築したサーバーとは別のサーバーです。

 

 

必須パッケージのインストール

 

解凍

 

IDSuiteSPに同梱されているファイルを適切なパスへ配置します。

 

 

 

独自パッケージのインストール

 

IDSuiteSPに同梱されているパッケージをインストールします。

※依存関係の問題でインストールする順番は必ずlibmemcacheからインストールして下さい。

 

シングルサインオンのログは、それぞれsyslogのlocal5に出力します。
syslogの設定もやっておきましょう。

 

下記記述をファイル末尾に追加してください。

 

syslogを再起動します。

 

phpのセッション管理を memcached に変更する必要があるのでphpの設定を変えます。

変更対象のファイルですがデフォルトでは /etc 配下にあるphp.iniを変更します。

設定が反映されないなどの場合、設定ファイルの場所が違う可能性があります。

その場合はphpinfoなどで確認し環境に合わせ適宜変更して下さい。

 

 

下記の設定を施します。

 

 

デフォルトでsession.save_handlerの記述が存在していますので、ファイル内で検索し値を更新して下さい。
※2重にパラメータを定義しないよう注意です。

 

IDSuiteSPはSAML通信を行うソフトウェアですので、
SAML通信に使用する秘密鍵とX.509 証明書を作成します。

 

秘密鍵作成(RSA)

※パスフレーズはなしで作成します。

 

証明書作成

 

 

 

以下実行例

 

 

鍵と証明書の作成が終わったら、以下のフォルダへ配置します。

※この証明書はSeciossLink - IDSuiteSP 間のSAML認証で使用します。

 


PublicKey.pemはSeciossLink管理画面で後ほどリバプロサーバーの設定で使用しますので、ローカルのパソコンなどにダウンロードしておいてください。

 

IDSuiteSPでは apache を使用するのでfirewallの穴あけもしておきます。

 

 

各種デーモン起動

 

設定ツールを用いてseciosslinkへの連携設定を行います。

 

以下実行例

 

 

以上でIDSuiteSPのインストールは完了です。

 

システム>テナント情報よりリバースプロキシ(IDSuiteSP)の設定を行います。

 

入力する内容は下記の通りです。

 

テナント設定-リバースプロキシサーバー設定
項目
リバースプロキシサーバーのホスト名 IDSuiteSPを構築したサーバーのホスト名
IPアドレス 上記ホスト名を名前解決した際に取得できるIPアドレス
暗号化用証明書 IDSuiteSPにSAML通信用証明書として登録した
公開鍵証明書ファイルを選択してください

 

 

入力が完了したら、最下部の保存を押下します。

 

次にイントラネットにあるWebアプリに対するSSO連携設定を行います。
シングルサインオン>リバースプロキシ より設定を行ってください。

 

入力する内容は下記の通りです。

 

リバースプロキシ設定
項目
アプリケーションID 任意のID
アプリケーション名 任意の名前
プロキシサーバーのホスト名 IDSuiteSPを構築したサーバー
プロキシのパス /LoginServlet/
プロキシ先 https://testservlet.test.secioss.com/LoginServlet/
ログインフォームの取得 無効
認証方式 フォーム認証
セッションのクッキー名 JSESSIONID
クッキーのパス /LoginServlet
ログインURL https://testservlet.test.secioss.com/LoginServlet/Login
アクセス先パス /LoginServlet/Welcome
ユーザーIDの属性名 サービス個別のログインID
アプリケーションのパスワード サービス個別のパスワード
ユーザーIDのパラメータ userName
パスワードのパラメーター password

 

連携を行うユーザを作成し、許可するサービスに先程作成したサービスを追加してください。

 

 

そのままではアクセス権限がないので、
アクセス権限設定を開き、先程作成したサービスにチェックを入れてください。

 

 

最後に、SeciossLinkで作成したリバースプロキシ設定をIDSuiteSPへ同期します。


再度IDSuiteSPを構築したサーバーにて、以下のスクリプトを実行してください。

 

必要に応じてcronに登録しておくとスクリプトを手動で実行する必要がなく、おすすめです。

 

ここまでで管理者としての作業は終了です。

 

 

サービスを付与したユーザでユーザーポータルへログインしてください。

 

サブメニューより「連携サービス用のID登録」と「連携先サービス用のパスワード登録」を行います。


 

設定が完了したら一度ログアウトしてください。


ここまでの設定で準備完了です。お疲れさまでした。

 

 

再度ユーザポータルへログインし、表示されているアイコンを選択してください。


うまく設定ができていればログインが必要なサンプルのWebアプリでID、パスワードを求められず、ログイン後のページが表示されるはずです。

 

 

いかがでしたでしょうか。
社内ネットワークからしか入れないwebアプリに対してSSOできる様になりました。


この設定の他にFIDO認証やワンタイムパスワード認証を混ぜることで
更にセキュアな利用が可能になるかと思います。


今後共セシオスリンクをよろしくお願いいたします。

 

以上、セシオスサポートチームでした。