こんにちは。セシオスサポートチームです。
「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認証やワンタイムパスワード認証を混ぜることで
更にセキュアな利用が可能になるかと思います。
今後共セシオスリンクをよろしくお願いいたします。
以上、セシオスサポートチームでした。